diff options
Diffstat (limited to 'drivers/hid/usbhid/hid-quirks.c')
-rw-r--r-- | drivers/hid/usbhid/hid-quirks.c | 85 |
1 files changed, 60 insertions, 25 deletions
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c index e29a057cbea2..28ddc3fdd3d1 100644 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c | |||
@@ -32,6 +32,9 @@ | |||
32 | #define USB_VENDOR_ID_ADS_TECH 0x06e1 | 32 | #define USB_VENDOR_ID_ADS_TECH 0x06e1 |
33 | #define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155 | 33 | #define USB_DEVICE_ID_ADS_TECH_RADIO_SI470X 0xa155 |
34 | 34 | ||
35 | #define USB_VENDOR_ID_AFATECH 0x15a4 | ||
36 | #define USB_DEVICE_ID_AFATECH_AF9016 0x9016 | ||
37 | |||
35 | #define USB_VENDOR_ID_AIPTEK 0x08ca | 38 | #define USB_VENDOR_ID_AIPTEK 0x08ca |
36 | #define USB_DEVICE_ID_AIPTEK_01 0x0001 | 39 | #define USB_DEVICE_ID_AIPTEK_01 0x0001 |
37 | #define USB_DEVICE_ID_AIPTEK_10 0x0010 | 40 | #define USB_DEVICE_ID_AIPTEK_10 0x0010 |
@@ -124,6 +127,9 @@ | |||
124 | #define USB_DEVICE_ID_DELORME_EARTHMATE 0x0100 | 127 | #define USB_DEVICE_ID_DELORME_EARTHMATE 0x0100 |
125 | #define USB_DEVICE_ID_DELORME_EM_LT20 0x0200 | 128 | #define USB_DEVICE_ID_DELORME_EM_LT20 0x0200 |
126 | 129 | ||
130 | #define USB_VENDOR_ID_DMI 0x0c0b | ||
131 | #define USB_DEVICE_ID_DMI_ENC 0x5fab | ||
132 | |||
127 | #define USB_VENDOR_ID_ELO 0x04E7 | 133 | #define USB_VENDOR_ID_ELO 0x04E7 |
128 | #define USB_DEVICE_ID_ELO_TS2700 0x0020 | 134 | #define USB_DEVICE_ID_ELO_TS2700 0x0020 |
129 | 135 | ||
@@ -199,17 +205,6 @@ | |||
199 | #define USB_DEVICE_ID_GTCO_502 0x0502 | 205 | #define USB_DEVICE_ID_GTCO_502 0x0502 |
200 | #define USB_DEVICE_ID_GTCO_503 0x0503 | 206 | #define USB_DEVICE_ID_GTCO_503 0x0503 |
201 | #define USB_DEVICE_ID_GTCO_504 0x0504 | 207 | #define USB_DEVICE_ID_GTCO_504 0x0504 |
202 | #define USB_DEVICE_ID_GTCO_600 0x0600 | ||
203 | #define USB_DEVICE_ID_GTCO_601 0x0601 | ||
204 | #define USB_DEVICE_ID_GTCO_602 0x0602 | ||
205 | #define USB_DEVICE_ID_GTCO_603 0x0603 | ||
206 | #define USB_DEVICE_ID_GTCO_604 0x0604 | ||
207 | #define USB_DEVICE_ID_GTCO_605 0x0605 | ||
208 | #define USB_DEVICE_ID_GTCO_606 0x0606 | ||
209 | #define USB_DEVICE_ID_GTCO_607 0x0607 | ||
210 | #define USB_DEVICE_ID_GTCO_608 0x0608 | ||
211 | #define USB_DEVICE_ID_GTCO_609 0x0609 | ||
212 | #define USB_DEVICE_ID_GTCO_609 0x0609 | ||
213 | #define USB_DEVICE_ID_GTCO_1000 0x1000 | 208 | #define USB_DEVICE_ID_GTCO_1000 0x1000 |
214 | #define USB_DEVICE_ID_GTCO_1001 0x1001 | 209 | #define USB_DEVICE_ID_GTCO_1001 0x1001 |
215 | #define USB_DEVICE_ID_GTCO_1002 0x1002 | 210 | #define USB_DEVICE_ID_GTCO_1002 0x1002 |
@@ -320,6 +315,7 @@ | |||
320 | #define USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500 0xc512 | 315 | #define USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500 0xc512 |
321 | #define USB_DEVICE_ID_MX3000_RECEIVER 0xc513 | 316 | #define USB_DEVICE_ID_MX3000_RECEIVER 0xc513 |
322 | #define USB_DEVICE_ID_DINOVO_EDGE 0xc714 | 317 | #define USB_DEVICE_ID_DINOVO_EDGE 0xc714 |
318 | #define USB_DEVICE_ID_DINOVO_MINI 0xc71f | ||
323 | 319 | ||
324 | #define USB_VENDOR_ID_MCC 0x09db | 320 | #define USB_VENDOR_ID_MCC 0x09db |
325 | #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 | 321 | #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 |
@@ -332,6 +328,7 @@ | |||
332 | #define USB_VENDOR_ID_MICROSOFT 0x045e | 328 | #define USB_VENDOR_ID_MICROSOFT 0x045e |
333 | #define USB_DEVICE_ID_SIDEWINDER_GV 0x003b | 329 | #define USB_DEVICE_ID_SIDEWINDER_GV 0x003b |
334 | #define USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0 0x009d | 330 | #define USB_DEVICE_ID_WIRELESS_OPTICAL_DESKTOP_3_0 0x009d |
331 | #define USB_DEVICE_ID_DESKTOP_RECV_1028 0x00f9 | ||
335 | #define USB_DEVICE_ID_MS_NE4K 0x00db | 332 | #define USB_DEVICE_ID_MS_NE4K 0x00db |
336 | #define USB_DEVICE_ID_MS_LK6K 0x00f9 | 333 | #define USB_DEVICE_ID_MS_LK6K 0x00f9 |
337 | 334 | ||
@@ -377,6 +374,9 @@ | |||
377 | #define USB_VENDOR_ID_SUN 0x0430 | 374 | #define USB_VENDOR_ID_SUN 0x0430 |
378 | #define USB_DEVICE_ID_RARITAN_KVM_DONGLE 0xcdab | 375 | #define USB_DEVICE_ID_RARITAN_KVM_DONGLE 0xcdab |
379 | 376 | ||
377 | #define USB_VENDOR_ID_SUNPLUS 0x04fc | ||
378 | #define USB_DEVICE_ID_SUNPLUS_WDESKTOP 0x05d8 | ||
379 | |||
380 | #define USB_VENDOR_ID_TOPMAX 0x0663 | 380 | #define USB_VENDOR_ID_TOPMAX 0x0663 |
381 | #define USB_DEVICE_ID_TOPMAX_COBRAPAD 0x0103 | 381 | #define USB_DEVICE_ID_TOPMAX_COBRAPAD 0x0103 |
382 | 382 | ||
@@ -435,9 +435,13 @@ static const struct hid_blacklist { | |||
435 | { USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD, HID_QUIRK_BADPAD }, | 435 | { USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD, HID_QUIRK_BADPAD }, |
436 | 436 | ||
437 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_DINOVO_EDGE, HID_QUIRK_DUPLICATE_USAGES }, | 437 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_DINOVO_EDGE, HID_QUIRK_DUPLICATE_USAGES }, |
438 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_DINOVO_MINI, HID_QUIRK_DUPLICATE_USAGES }, | ||
439 | |||
440 | { USB_VENDOR_ID_AFATECH, USB_DEVICE_ID_AFATECH_AF9016, HID_QUIRK_FULLSPEED_INTERVAL }, | ||
438 | 441 | ||
439 | { USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM, HID_QUIRK_HIDDEV }, | 442 | { USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM, HID_QUIRK_HIDDEV }, |
440 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4, HID_QUIRK_HIDDEV | HID_QUIRK_IGNORE_HIDINPUT }, | 443 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL4, HID_QUIRK_HIDDEV | HID_QUIRK_IGNORE_HIDINPUT }, |
444 | { USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE, HID_QUIRK_HIDDEV | HID_QUIRK_IGNORE_HIDINPUT }, | ||
441 | { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV, HID_QUIRK_HIDINPUT }, | 445 | { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_SIDEWINDER_GV, HID_QUIRK_HIDINPUT }, |
442 | 446 | ||
443 | { USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193, HID_QUIRK_HWHEEL_WHEEL_INVERT }, | 447 | { USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193, HID_QUIRK_HWHEEL_WHEEL_INVERT }, |
@@ -518,16 +522,6 @@ static const struct hid_blacklist { | |||
518 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_502, HID_QUIRK_IGNORE }, | 522 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_502, HID_QUIRK_IGNORE }, |
519 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_503, HID_QUIRK_IGNORE }, | 523 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_503, HID_QUIRK_IGNORE }, |
520 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_504, HID_QUIRK_IGNORE }, | 524 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_504, HID_QUIRK_IGNORE }, |
521 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_600, HID_QUIRK_IGNORE }, | ||
522 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_601, HID_QUIRK_IGNORE }, | ||
523 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_602, HID_QUIRK_IGNORE }, | ||
524 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_603, HID_QUIRK_IGNORE }, | ||
525 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_604, HID_QUIRK_IGNORE }, | ||
526 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_605, HID_QUIRK_IGNORE }, | ||
527 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_606, HID_QUIRK_IGNORE }, | ||
528 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_607, HID_QUIRK_IGNORE }, | ||
529 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_608, HID_QUIRK_IGNORE }, | ||
530 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_609, HID_QUIRK_IGNORE }, | ||
531 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1000, HID_QUIRK_IGNORE }, | 525 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1000, HID_QUIRK_IGNORE }, |
532 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1001, HID_QUIRK_IGNORE }, | 526 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1001, HID_QUIRK_IGNORE }, |
533 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1002, HID_QUIRK_IGNORE }, | 527 | { USB_VENDOR_ID_GTCO, USB_DEVICE_ID_GTCO_1002, HID_QUIRK_IGNORE }, |
@@ -601,6 +595,7 @@ static const struct hid_blacklist { | |||
601 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, | 595 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, |
602 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, | 596 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, |
603 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, | 597 | { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, |
598 | { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, | ||
604 | { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, | 599 | { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, |
605 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D, HID_QUIRK_NOGET }, | 600 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_EXTREME_3D, HID_QUIRK_NOGET }, |
606 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL, HID_QUIRK_NOGET }, | 601 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_WHEEL, HID_QUIRK_NOGET }, |
@@ -608,7 +603,7 @@ static const struct hid_blacklist { | |||
608 | { USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE, HID_QUIRK_NOGET }, | 603 | { USB_VENDOR_ID_PETALYNX, USB_DEVICE_ID_PETALYNX_MAXTER_REMOTE, HID_QUIRK_NOGET }, |
609 | { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, | 604 | { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET }, |
610 | { USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_KEYBOARD, HID_QUIRK_NOGET }, | 605 | { USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_TURBOX_KEYBOARD, HID_QUIRK_NOGET }, |
611 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, | 606 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT | HID_QUIRK_SKIP_OUTPUT_REPORTS }, |
612 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, | 607 | { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, |
613 | 608 | ||
614 | { USB_VENDOR_ID_WISEGROUP_LTD, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, | 609 | { USB_VENDOR_ID_WISEGROUP_LTD, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, |
@@ -719,6 +714,7 @@ static const struct hid_rdesc_blacklist { | |||
719 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER, HID_QUIRK_RDESC_LOGITECH }, | 714 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_MX3000_RECEIVER, HID_QUIRK_RDESC_LOGITECH }, |
720 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER, HID_QUIRK_RDESC_LOGITECH }, | 715 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER, HID_QUIRK_RDESC_LOGITECH }, |
721 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER_2, HID_QUIRK_RDESC_LOGITECH }, | 716 | { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_S510_RECEIVER_2, HID_QUIRK_RDESC_LOGITECH }, |
717 | { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_DESKTOP_RECV_1028, HID_QUIRK_RDESC_MICROSOFT_RECV_1028 }, | ||
722 | 718 | ||
723 | { USB_VENDOR_ID_MONTEREY, USB_DEVICE_ID_GENIUS_KB29E, HID_QUIRK_RDESC_BUTTON_CONSUMER }, | 719 | { USB_VENDOR_ID_MONTEREY, USB_DEVICE_ID_GENIUS_KB29E, HID_QUIRK_RDESC_BUTTON_CONSUMER }, |
724 | 720 | ||
@@ -728,6 +724,8 @@ static const struct hid_rdesc_blacklist { | |||
728 | 724 | ||
729 | { USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE, HID_QUIRK_RDESC_SAMSUNG_REMOTE }, | 725 | { USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE, HID_QUIRK_RDESC_SAMSUNG_REMOTE }, |
730 | 726 | ||
727 | { USB_VENDOR_ID_SUNPLUS, USB_DEVICE_ID_SUNPLUS_WDESKTOP, HID_QUIRK_RDESC_SUNPLUS_WDESKTOP }, | ||
728 | |||
731 | { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1, HID_QUIRK_RDESC_SWAPPED_MIN_MAX }, | 729 | { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1, HID_QUIRK_RDESC_SWAPPED_MIN_MAX }, |
732 | { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2, HID_QUIRK_RDESC_SWAPPED_MIN_MAX }, | 730 | { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2, HID_QUIRK_RDESC_SWAPPED_MIN_MAX }, |
733 | 731 | ||
@@ -793,8 +791,8 @@ static struct hid_blacklist *usbhid_exists_dquirk(const u16 idVendor, | |||
793 | * | 791 | * |
794 | * Returns: 0 OK, -error on failure. | 792 | * Returns: 0 OK, -error on failure. |
795 | */ | 793 | */ |
796 | int usbhid_modify_dquirk(const u16 idVendor, const u16 idProduct, | 794 | static int usbhid_modify_dquirk(const u16 idVendor, const u16 idProduct, |
797 | const u32 quirks) | 795 | const u32 quirks) |
798 | { | 796 | { |
799 | struct quirks_list_struct *q_new, *q; | 797 | struct quirks_list_struct *q_new, *q; |
800 | int list_edited = 0; | 798 | int list_edited = 0; |
@@ -1002,6 +1000,17 @@ static void usbhid_fixup_logitech_descriptor(unsigned char *rdesc, int rsize) | |||
1002 | } | 1000 | } |
1003 | } | 1001 | } |
1004 | 1002 | ||
1003 | static void usbhid_fixup_sunplus_wdesktop(unsigned char *rdesc, int rsize) | ||
1004 | { | ||
1005 | if (rsize >= 107 && rdesc[104] == 0x26 | ||
1006 | && rdesc[105] == 0x80 | ||
1007 | && rdesc[106] == 0x03) { | ||
1008 | printk(KERN_INFO "Fixing up Sunplus Wireless Desktop report descriptor\n"); | ||
1009 | rdesc[105] = rdesc[110] = 0x03; | ||
1010 | rdesc[106] = rdesc[111] = 0x21; | ||
1011 | } | ||
1012 | } | ||
1013 | |||
1005 | /* | 1014 | /* |
1006 | * Samsung IrDA remote controller (reports as Cypress USB Mouse). | 1015 | * Samsung IrDA remote controller (reports as Cypress USB Mouse). |
1007 | * | 1016 | * |
@@ -1089,6 +1098,28 @@ static void usbhid_fixup_button_consumer_descriptor(unsigned char *rdesc, int rs | |||
1089 | } | 1098 | } |
1090 | } | 1099 | } |
1091 | 1100 | ||
1101 | /* | ||
1102 | * Microsoft Wireless Desktop Receiver (Model 1028) has several | ||
1103 | * 'Usage Min/Max' where it ought to have 'Physical Min/Max' | ||
1104 | */ | ||
1105 | static void usbhid_fixup_microsoft_descriptor(unsigned char *rdesc, int rsize) | ||
1106 | { | ||
1107 | if (rsize == 571 && rdesc[284] == 0x19 | ||
1108 | && rdesc[286] == 0x2a | ||
1109 | && rdesc[304] == 0x19 | ||
1110 | && rdesc[306] == 0x29 | ||
1111 | && rdesc[352] == 0x1a | ||
1112 | && rdesc[355] == 0x2a | ||
1113 | && rdesc[557] == 0x19 | ||
1114 | && rdesc[559] == 0x29) { | ||
1115 | printk(KERN_INFO "Fixing up Microsoft Wireless Receiver Model 1028 report descriptor\n"); | ||
1116 | rdesc[284] = rdesc[304] = rdesc[558] = 0x35; | ||
1117 | rdesc[352] = 0x36; | ||
1118 | rdesc[286] = rdesc[355] = 0x46; | ||
1119 | rdesc[306] = rdesc[559] = 0x45; | ||
1120 | } | ||
1121 | } | ||
1122 | |||
1092 | static void __usbhid_fixup_report_descriptor(__u32 quirks, char *rdesc, unsigned rsize) | 1123 | static void __usbhid_fixup_report_descriptor(__u32 quirks, char *rdesc, unsigned rsize) |
1093 | { | 1124 | { |
1094 | if ((quirks & HID_QUIRK_RDESC_CYMOTION)) | 1125 | if ((quirks & HID_QUIRK_RDESC_CYMOTION)) |
@@ -1112,6 +1143,11 @@ static void __usbhid_fixup_report_descriptor(__u32 quirks, char *rdesc, unsigned | |||
1112 | if (quirks & HID_QUIRK_RDESC_SAMSUNG_REMOTE) | 1143 | if (quirks & HID_QUIRK_RDESC_SAMSUNG_REMOTE) |
1113 | usbhid_fixup_samsung_irda_descriptor(rdesc, rsize); | 1144 | usbhid_fixup_samsung_irda_descriptor(rdesc, rsize); |
1114 | 1145 | ||
1146 | if (quirks & HID_QUIRK_RDESC_MICROSOFT_RECV_1028) | ||
1147 | usbhid_fixup_microsoft_descriptor(rdesc, rsize); | ||
1148 | |||
1149 | if (quirks & HID_QUIRK_RDESC_SUNPLUS_WDESKTOP) | ||
1150 | usbhid_fixup_sunplus_wdesktop(rdesc, rsize); | ||
1115 | } | 1151 | } |
1116 | 1152 | ||
1117 | /** | 1153 | /** |
@@ -1150,5 +1186,4 @@ void usbhid_fixup_report_descriptor(const u16 idVendor, const u16 idProduct, | |||
1150 | else if (paramVendor == idVendor && paramProduct == idProduct) | 1186 | else if (paramVendor == idVendor && paramProduct == idProduct) |
1151 | __usbhid_fixup_report_descriptor(quirks, rdesc, rsize); | 1187 | __usbhid_fixup_report_descriptor(quirks, rdesc, rsize); |
1152 | } | 1188 | } |
1153 | |||
1154 | } | 1189 | } |