aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/hid-input.c2
-rw-r--r--drivers/hid/usbhid/hid-quirks.c4
-rw-r--r--include/linux/hid.h1
3 files changed, 6 insertions, 1 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index ce6d7644e6a1..70bf54167083 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -997,7 +997,7 @@ int hidinput_connect(struct hid_device *hid)
997 if (IS_INPUT_APPLICATION(hid->collection[i].usage)) 997 if (IS_INPUT_APPLICATION(hid->collection[i].usage))
998 break; 998 break;
999 999
1000 if (i == hid->maxcollection) 1000 if (i == hid->maxcollection && (hid->quirks & HID_QUIRK_HIDINPUT) == 0)
1001 return -1; 1001 return -1;
1002 1002
1003 if (hid->quirks & HID_QUIRK_SKIP_OUTPUT_REPORTS) 1003 if (hid->quirks & HID_QUIRK_SKIP_OUTPUT_REPORTS)
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index f6c4145dc202..62a7f1e9b58c 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -209,6 +209,9 @@
209#define USB_DEVICE_ID_MGE_UPS 0xffff 209#define USB_DEVICE_ID_MGE_UPS 0xffff
210#define USB_DEVICE_ID_MGE_UPS1 0x0001 210#define USB_DEVICE_ID_MGE_UPS1 0x0001
211 211
212#define USB_VENDOR_ID_MICROSOFT 0x045e
213#define USB_DEVICE_ID_SIDEWINDER_GV 0x003b
214
212#define USB_VENDOR_ID_NEC 0x073e 215#define USB_VENDOR_ID_NEC 0x073e
213#define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301 216#define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301
214 217
@@ -290,6 +293,7 @@ static const struct hid_blacklist {
290 { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_DINOVO_EDGE, HID_QUIRK_DUPLICATE_USAGES }, 293 { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_DINOVO_EDGE, HID_QUIRK_DUPLICATE_USAGES },
291 294
292 { USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM, HID_QUIRK_HIDDEV }, 295 { USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM, HID_QUIRK_HIDDEV },
296 { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV, HID_QUIRK_HIDINPUT },
293 297
294 { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_01, HID_QUIRK_IGNORE }, 298 { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_01, HID_QUIRK_IGNORE },
295 { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_10, HID_QUIRK_IGNORE }, 299 { USB_VENDOR_ID_AIPTEK, USB_DEVICE_ID_AIPTEK_10, HID_QUIRK_IGNORE },
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 827ee748fd4c..6e45d1056e1b 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -276,6 +276,7 @@ struct hid_item {
276#define HID_QUIRK_DUPLICATE_USAGES 0x00200000 276#define HID_QUIRK_DUPLICATE_USAGES 0x00200000
277#define HID_QUIRK_RESET_LEDS 0x00400000 277#define HID_QUIRK_RESET_LEDS 0x00400000
278#define HID_QUIRK_SWAPPED_MIN_MAX 0x00800000 278#define HID_QUIRK_SWAPPED_MIN_MAX 0x00800000
279#define HID_QUIRK_HIDINPUT 0x01000000
279 280
280/* 281/*
281 * This is the global environment of the parser. This information is 282 * This is the global environment of the parser. This information is