HID: LG: Prevent the Logitech Gaming Wheels deadzone
authorSimon Wood <simon@mungewell.org>
Wed, 20 Feb 2013 03:25:12 +0000 (20:25 -0700)
committerJiri Kosina <jkosina@suse.cz>
Wed, 20 Feb 2013 09:19:10 +0000 (10:19 +0100)
This patch ensures that the Logitech wheels are not initialised with
default fuzz/flat values, by marking them as multiaxis devices (rather
than joysticks).

Signed-off-by: Simon Wood <simon@mungewell.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-lg.c

index c065598..5d3c861 100644 (file)
@@ -479,6 +479,26 @@ static int lg_input_mapped(struct hid_device *hdev, struct hid_input *hi,
                         usage->type == EV_REL || usage->type == EV_ABS))
                clear_bit(usage->code, *bit);
 
+       /* Ensure that Logitech wheels are not given a default fuzz/flat value */
+       if (usage->type == EV_ABS && (usage->code == ABS_X ||
+                       usage->code == ABS_Y || usage->code == ABS_Z ||
+                       usage->code == ABS_RZ)) {
+               switch (hdev->product) {
+               case USB_DEVICE_ID_LOGITECH_WHEEL:
+               case USB_DEVICE_ID_LOGITECH_MOMO_WHEEL:
+               case USB_DEVICE_ID_LOGITECH_DFP_WHEEL:
+               case USB_DEVICE_ID_LOGITECH_G25_WHEEL:
+               case USB_DEVICE_ID_LOGITECH_DFGT_WHEEL:
+               case USB_DEVICE_ID_LOGITECH_G27_WHEEL:
+               case USB_DEVICE_ID_LOGITECH_WII_WHEEL:
+               case USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2:
+                       field->application = HID_GD_MULTIAXIS;
+                       break;
+               default:
+                       break;
+               }
+       }
+
        return 0;
 }