浏览代码

Input: xpad - use correct product id for x360w controllers

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>
Pavel Rojtberg 8 年之前
父节点
当前提交
b6fc513da5
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      drivers/input/joystick/xpad.c

+ 6 - 0
drivers/input/joystick/xpad.c

@@ -1377,6 +1377,12 @@ static int xpad_init_input(struct usb_xpad *xpad)
 	input_dev->name = xpad->name;
 	input_dev->name = xpad->name;
 	input_dev->phys = xpad->phys;
 	input_dev->phys = xpad->phys;
 	usb_to_input_id(xpad->udev, &input_dev->id);
 	usb_to_input_id(xpad->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 = &xpad->intf->dev;
 	input_dev->dev.parent = &xpad->intf->dev;
 
 
 	input_set_drvdata(input_dev, xpad);
 	input_set_drvdata(input_dev, xpad);