[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250517105045.70998-2-apparle@gmail.com>
Date: Sat, 17 May 2025 03:50:45 -0700
From: Apoorv Parle <apparle@...il.com>
To: dmitry.torokhov@...il.com
Cc: linux-input@...r.kernel.org,
linux-kernel@...r.kernel.org,
Apoorv Parle <apparle@...il.com>
Subject: [PATCH 1/1] Input: xpad - add disable_xboxone module parameter
This parameter skips probing for XTYPE_XBOXONE devices, allowing
out-of-tree drivers like xone to handle newer Xbox controllers
without conflicts.
Signed-off-by: Apoorv Parle <apparle@...il.com>
---
drivers/input/joystick/xpad.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 57a5ff3d1992..5bab5c2250d2 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -121,6 +121,10 @@ static bool auto_poweroff = true;
module_param(auto_poweroff, bool, S_IWUSR | S_IRUGO);
MODULE_PARM_DESC(auto_poweroff, "Power off wireless controllers on suspend");
+static bool disable_xboxone;
+module_param(disable_xboxone, bool, 0644);
+MODULE_PARM_DESC(disable_xboxone, "Disable all Xbox One devices (XTYPE_XBOXONE)");
+
static const struct xpad_device {
u16 idVendor;
u16 idProduct;
@@ -2089,6 +2093,14 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
xpad->mapping |= MAP_STICKS_TO_NULL;
}
+ if (xpad->xtype == XTYPE_XBOXONE && disable_xboxone) {
+ /*
+ * Disable XTYPE_XBOXONE based on module parameter.
+ */
+ error = -ENODEV;
+ goto err_free_in_urb;
+ }
+
if (xpad->xtype == XTYPE_XBOXONE &&
intf->cur_altsetting->desc.bInterfaceNumber != GIP_WIRED_INTF_DATA) {
/*
--
2.48.1
Powered by blists - more mailing lists