Input: xpad - use correct product id for x360w controllers
authorPavel Rojtberg <rojtberg@gmail.com>
Tue, 27 Dec 2016 19:44:51 +0000 (11:44 -0800)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:17:08 +0000 (13:17 +0000)
commit b6fc513da50c5dbc457a8ad6b58b046a6a68fd9d upstream.

currently the controllers get the same product id as the wireless
receiver. However the controllers actually have their own product id.

The patch makes the driver expose the same product id as the windows
driver.

This improves compatibility when running applications with WINE.

see https://github.com/paroj/xpad/issues/54

Signed-off-by: Pavel Rojtberg <rojtberg@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/input/joystick/xpad.c

index 685e125d6366001a2c2442e105a2961a84b8c3c4..24e5683d6c914f33139d853045e02e07f29b8eb6 100644 (file)
@@ -901,6 +901,12 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
        input_dev->name = xpad_device[i].name;
        input_dev->phys = xpad->phys;
        usb_to_input_id(udev, &input_dev->id);
+
+       if (xpad->xtype == XTYPE_XBOX360W) {
+               /* x360w controllers and the receiver have different ids */
+               input_dev->id.product = 0x02a1;
+       }
+
        input_dev->dev.parent = &intf->dev;
 
        input_set_drvdata(input_dev, xpad);