[PATCH v3] usb: quirks: Add ShanWan gamepad to quirk list

Ishaan Dandekar <[email protected]> Sun, 2 Aug 2026 17:31:29 +0530
Newsgroups org.kernel.vger.linux-usb
Message-ID <[email protected]>
The ShanWan Wireless Gamepad (dongle ID 2563:0575) crashes with a -71
EPROTO error during standard enumeration because it expects a 255-byte
initial configuration request. Add this device to the quirk list to
use the USB_QUIRK_WINDOWS_CONFIG_REQ_SIZE flag.

Signed-off-by: Ishaan Dandekar <[email protected]>
---
Changes in v3:
- Sent as a standalone patch instead of a series.
- Dropped Nikhil Solanke's core patch from the submission to avoid duplication.

Note: This patch depends on Nikhil Solanke's updated patchset:
https://lore.kernel.org/linux-usb/[email protected]/

Note: While these USB patches keep the device stable in X-Input mode, a 
companion patch is submitted separately to the linux-input subsystem 
(drivers/input/joystick/xpad.c) to ensure the device is routed correctly 
and retains full haptic feedback and functionality.

 drivers/usb/core/quirks.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 87ee2d938..b1e7e6071 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -589,6 +589,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 
 	{ USB_DEVICE(0x2386, 0x350e), .driver_info = USB_QUIRK_NO_LPM },
 
+	/* ShanWan Wireless Gamepad */
+	{ USB_DEVICE(0x2563, 0x0575), .driver_info = USB_QUIRK_WINDOWS_CONFIG_REQ_SIZE },
+
 	/* UGREEN 35871 - BOS descriptor fetch hangs at SuperSpeed Plus */
 	{ USB_DEVICE(0x2b89, 0x5871), .driver_info = USB_QUIRK_NO_BOS },
 
-- 
2.34.1