Re: [PATCH] Input: xpad: Remove a conflicting Razer Sabertooth using the VID/PID for the Razer DeathAdder 2013 mouse
From: Cameron Gutman <hidden>
Date: 2020-07-31 05:54:59
On 7/30/20 8:44 AM, Ismael Ferreras Morezuelas wrote:
quoted hunk ↗ jump to hunk
While doing my research to improve the xpad device names I also noticed that the 1532:0037 VID/PID seems to be used by the DeathAdder 2013, so that Razer Sabertooth instance looked wrong and very suspect to me. I didn't see any mention in the official drivers, either. After doing more research, it turns out that the xpad list is used by many other projects (like Steam) as-is, this issue was reported and Valve/Sam Lantinga fixed it: https://steamcommunity.com/app/353380/discussions/0/1743392486228754770/ (With multiple Internet users reporting similar issues, not linked here) After not being able to find the correct VID/PID combination anywhere on the Internet and not receiving any reply from Razer support I did some additional detective work, it seems like it presents itself as "Razer Sabertooth Gaming Controller (XBOX360)", code 1689:FE00. Leaving us with this: * Razer Sabertooth (1689:fe00) * Razer Sabertooth Elite (24c6:5d04) * Razer DeathAdder 2013 (1532:0037) [note: not a gamepad] So, to sum things up; remove this conflicting/duplicate entry: { 0x1532, 0x0037, "Razer Sabertooth", 0, XTYPE_XBOX360 }, As the real/correct one is already present there, even if the Internet as a whole insists on presenting it as the Razer Sabertooth Elite, which (by all accounts) is not: { 0x1689, 0xfe00, "Razer Sabertooth", 0, XTYPE_XBOX360 }, That's it. No other functional changes intended. Fixes: f554f619b70 ("Input: xpad - sync device IDs with xboxdrv") Signed-off-by: Ismael Ferreras Morezuelas <redacted> --- drivers/input/joystick/xpad.c | 1 - 1 file changed, 1 deletion(-)diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index c77cdb3b62b5..1510438c5578 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c@@ -249,7 +249,6 @@ static const struct xpad_device { { 0x1430, 0x8888, "TX6500+ Dance Pad (first generation)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, { 0x1430, 0xf801, "RedOctane Controller", 0, XTYPE_XBOX360 }, { 0x146b, 0x0601, "BigBen Interactive XBOX 360 Controller", 0, XTYPE_XBOX360 }, - { 0x1532, 0x0037, "Razer Sabertooth", 0, XTYPE_XBOX360 }, { 0x1532, 0x0a00, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, { 0x1532, 0x0a03, "Razer Wildcat", 0, XTYPE_XBOXONE }, { 0x15e4, 0x3f00, "Power A Mini Pro Elite", 0, XTYPE_XBOX360 },
The list here doesn't actually affect which devices that xpad will attach to. xpad_table[] is what determines the devices that xpad's probe() will be called for. It does this using the VID + vendor-defined interface subclass and interface number, not the VID+PID combos. xpad_device[] just provides a friendly name and quirk flags for some supported gamepads. Gamepads that aren't in the list will just show up as "Generic X-Box pad" with no quirk flags applied. If 1532:0037 is actually a mouse, it's unlikely we'd even reach the probe() in the first place. The device would lack the expected vendor-defined Xbox interface that is required for xpad to attach to the device. All that said, I'm definitely not opposed to removing the entry if it isn't a real gamepad. Given the difficulty you had finding information about this device, I take it you don't have any 'lsusb -v' output for this device, right? Regards, Cameron