Lines 30-36
Link Here
|
30 |
#define MS_NOGET 0x10 |
30 |
#define MS_NOGET 0x10 |
31 |
|
31 |
|
32 |
/* |
32 |
/* |
33 |
* Microsoft Wireless Desktop Receiver (Model 1028) has several |
33 |
* Microsoft Wireless Desktop Receiver (Model 1028) has |
34 |
* 'Usage Min/Max' where it ought to have 'Physical Min/Max' |
34 |
* 'Usage Min/Max' where it ought to have 'Physical Min/Max' |
35 |
*/ |
35 |
*/ |
36 |
static void ms_report_fixup(struct hid_device *hdev, __u8 *rdesc, |
36 |
static void ms_report_fixup(struct hid_device *hdev, __u8 *rdesc, |
Lines 38-54
static void ms_report_fixup(struct hid_device *hdev, __u8 *rdesc,
Link Here
|
38 |
{ |
38 |
{ |
39 |
unsigned long quirks = (unsigned long)hid_get_drvdata(hdev); |
39 |
unsigned long quirks = (unsigned long)hid_get_drvdata(hdev); |
40 |
|
40 |
|
41 |
if ((quirks & MS_RDESC) && rsize == 571 && rdesc[284] == 0x19 && |
41 |
if ((quirks & MS_RDESC) && rsize == 571 && rdesc[557] == 0x19 && |
42 |
rdesc[286] == 0x2a && rdesc[304] == 0x19 && |
|
|
43 |
rdesc[306] == 0x29 && rdesc[352] == 0x1a && |
44 |
rdesc[355] == 0x2a && rdesc[557] == 0x19 && |
45 |
rdesc[559] == 0x29) { |
42 |
rdesc[559] == 0x29) { |
46 |
dev_info(&hdev->dev, "fixing up Microsoft Wireless Receiver " |
43 |
dev_info(&hdev->dev, "fixing up Microsoft Wireless Receiver " |
47 |
"Model 1028 report descriptor\n"); |
44 |
"Model 1028 report descriptor\n"); |
48 |
rdesc[284] = rdesc[304] = rdesc[557] = 0x35; |
45 |
rdesc[557] = 0x35; |
49 |
rdesc[352] = 0x36; |
46 |
rdesc[559] = 0x45; |
50 |
rdesc[286] = rdesc[355] = 0x46; |
|
|
51 |
rdesc[306] = rdesc[559] = 0x45; |
52 |
} |
47 |
} |
53 |
} |
48 |
} |
54 |
|
49 |
|