View | Details | Raw Unified | Return to bug 11759 | Differences between
and this patch

Collapse All | Expand All

(-)linux-2.6.27.org/drivers/hid/usbhid/hid-quirks.c (-24 lines)
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
}

Return to bug 11759