Lines 1131-1157
Link Here
|
1131 |
} |
1131 |
} |
1132 |
} |
1132 |
} |
1133 |
|
1133 |
|
1134 |
/* |
|
|
1135 |
* Microsoft Wireless Desktop Receiver (Model 1028) has several |
1136 |
* 'Usage Min/Max' where it ought to have 'Physical Min/Max' |
1137 |
*/ |
1138 |
static void usbhid_fixup_microsoft_descriptor(unsigned char *rdesc, int rsize) |
1139 |
{ |
1140 |
if (rsize == 571 && rdesc[284] == 0x19 |
1141 |
&& rdesc[286] == 0x2a |
1142 |
&& rdesc[304] == 0x19 |
1143 |
&& rdesc[306] == 0x29 |
1144 |
&& rdesc[352] == 0x1a |
1145 |
&& rdesc[355] == 0x2a |
1146 |
&& rdesc[557] == 0x19 |
1147 |
&& rdesc[559] == 0x29) { |
1148 |
printk(KERN_INFO "Fixing up Microsoft Wireless Receiver Model 1028 report descriptor\n"); |
1149 |
rdesc[284] = rdesc[304] = rdesc[557] = 0x35; |
1150 |
rdesc[352] = 0x36; |
1151 |
rdesc[286] = rdesc[355] = 0x46; |
1152 |
rdesc[306] = rdesc[559] = 0x45; |
1153 |
} |
1154 |
} |
1155 |
|
1134 |
|
1156 |
static void __usbhid_fixup_report_descriptor(__u32 quirks, char *rdesc, unsigned rsize) |
1135 |
static void __usbhid_fixup_report_descriptor(__u32 quirks, char *rdesc, unsigned rsize) |
1157 |
{ |
1136 |
{ |
Lines 1176-1184
Link Here
|
1176 |
if (quirks & HID_QUIRK_RDESC_SAMSUNG_REMOTE) |
1155 |
if (quirks & HID_QUIRK_RDESC_SAMSUNG_REMOTE) |
1177 |
usbhid_fixup_samsung_irda_descriptor(rdesc, rsize); |
1156 |
usbhid_fixup_samsung_irda_descriptor(rdesc, rsize); |
1178 |
|
1157 |
|
1179 |
if (quirks & HID_QUIRK_RDESC_MICROSOFT_RECV_1028) |
|
|
1180 |
usbhid_fixup_microsoft_descriptor(rdesc, rsize); |
1181 |
|
1182 |
if (quirks & HID_QUIRK_RDESC_SUNPLUS_WDESKTOP) |
1158 |
if (quirks & HID_QUIRK_RDESC_SUNPLUS_WDESKTOP) |
1183 |
usbhid_fixup_sunplus_wdesktop(rdesc, rsize); |
1159 |
usbhid_fixup_sunplus_wdesktop(rdesc, rsize); |
1184 |
} |
1160 |
} |