drivers/input/joystick/xpad.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
Hi, This patch adds a `disable_xboxone` module parameter to the xpad driver, allowing users to prevent xpad from binding to Xbox One and Series X|S devices (XTYPE_XBOXONE). This is especially useful for users who wish to use the out-of-tree `xone` driver (https://github.com/dlundqvist/xone) . Currently, there is no in-tree driver that supports Xbox wireless dongles; the only option is the out-of-tree `xone` project which implements the GIP protocol. The `xone` project itself, or similar functionality cannot be easily upstreamed due to the unclear legality of redistributing the required Microsoft firmware. This patch lets users avoid device conflicts and run both drivers side by side, without having to patch or fork xpad (eg: https://github.com/medusalix/xpad-noone) for each kernel update. Tested on kernel version 6.14.0 with both legacy Xbox 360 controllers and a Microsoft Xbox Wireless Adapter Dongle + Xbox Controller Model 1914 Thanks for your consideration. Best, Apoorv Parle Apoorv Parle (1): Input: xpad - add disable_xboxone module parameter drivers/input/joystick/xpad.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) -- 2.48.1
Hi Apoorv, On Sat, May 17, 2025 at 03:50:44AM -0700, Apoorv Parle wrote: > Hi, > > This patch adds a `disable_xboxone` module parameter to the xpad driver, > allowing users to prevent xpad from binding to Xbox One and Series X|S > devices (XTYPE_XBOXONE). This is especially useful for users who wish to > use the out-of-tree `xone` driver (https://github.com/dlundqvist/xone) . > > Currently, there is no in-tree driver that supports Xbox wireless dongles; > the only option is the out-of-tree `xone` project which implements the GIP > protocol. The `xone` project itself, or similar functionality cannot be > easily upstreamed due to the unclear legality of redistributing the > required Microsoft firmware. This patch lets users avoid device conflicts > and run both drivers side by side, without having to patch or fork xpad > (eg: https://github.com/medusalix/xpad-noone) for each kernel update. I believe this can be achieved from userspace by unbinding the original xbox driver and binding the alternative driver via sysfs, no kernel changes needed. Thanks. -- Dmitry
The goal is to not blacklist the xpad driver completely, because I still need that driver for other controllers (older Xbox 360 controller or 3rd party controllers) when using multiple controllers (couch multiplayer) on the same machine. Today I'm forced to blacklist xpad altogether to get xone up because they conflict on the device IDs, and then I can only use 1 controller, not both. Or I have to create a copy of xpad with Xbox-One device IDs stripped out (i.e. xpad-noone) to keep both drivers active side-by-side, so my new XboxOne can use xone and my old Xbox 360 can use the xpad driver. This patch is trying to make that seamless. And it'll have the added benefit of making distro packaging easier as xpad can just stay upstream with no separate builds needed, and xone driver can be a non-free opt-in installation with this module param enabled. On Mon, May 19, 2025 at 9:32 AM Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > > Hi Apoorv, > > On Sat, May 17, 2025 at 03:50:44AM -0700, Apoorv Parle wrote: > > Hi, > > > > This patch adds a `disable_xboxone` module parameter to the xpad driver, > > allowing users to prevent xpad from binding to Xbox One and Series X|S > > devices (XTYPE_XBOXONE). This is especially useful for users who wish to > > use the out-of-tree `xone` driver (https://github.com/dlundqvist/xone) . > > > > Currently, there is no in-tree driver that supports Xbox wireless dongles; > > the only option is the out-of-tree `xone` project which implements the GIP > > protocol. The `xone` project itself, or similar functionality cannot be > > easily upstreamed due to the unclear legality of redistributing the > > required Microsoft firmware. This patch lets users avoid device conflicts > > and run both drivers side by side, without having to patch or fork xpad > > (eg: https://github.com/medusalix/xpad-noone) for each kernel update. > > I believe this can be achieved from userspace by unbinding the original > xbox driver and binding the alternative driver via sysfs, no kernel > changes needed. > > Thanks. > > -- > Dmitry
© 2016 - 2025 Red Hat, Inc.