HID: Add NOGET quirk for all NCR devices
authorJiri Kosina <jkosina@suse.cz>
Mon, 18 Jun 2007 15:41:14 +0000 (17:41 +0200)
committerJiri Kosina <jkosina@suse.cz>
Mon, 9 Jul 2007 12:13:33 +0000 (14:13 +0200)
Devices manufactured by NCR have userspace hiddev-based drivers,
which do all the necessary device querying by themselves. The devices
must not be queried directly by the generic HID driver, as reported by
NCR engineers.

Cc: Petr Ostadal <postadal@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/usbhid/hid-quirks.c

index ad8a4ac..a78f518 100644 (file)
 #define USB_VENDOR_ID_MICROSOFT                0x045e
 #define USB_DEVICE_ID_SIDEWINDER_GV    0x003b
 
+#define USB_VENDOR_ID_NCR              0x0404
+#define USB_DEVICE_ID_NCR_FIRST                0x0300
+#define USB_DEVICE_ID_NCR_LAST         0x03ff
+
 #define USB_VENDOR_ID_NEC              0x073e
 #define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301
 
@@ -688,6 +692,12 @@ u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct)
                                idProduct <= USB_DEVICE_ID_CODEMERCS_IOW_LAST)
                        return HID_QUIRK_IGNORE;
 
+       /* NCR devices must not be queried for reports */
+       if (idVendor == USB_VENDOR_ID_NCR &&
+                       idProduct >= USB_DEVICE_ID_NCR_FIRST &&
+                       idProduct <= USB_DEVICE_ID_NCR_LAST)
+                       return HID_QUIRK_NOGET;
+
        down_read(&dquirks_rwsem);
        bl_entry = usbhid_exists_dquirk(idVendor, idProduct);
        if (!bl_entry)