HID: adjust report descriptor fixup for MS 1028 receiver
Report descriptor fixup for MS 1028 receiver changes also values for Keyboard and Consumer, which incorrectly trims the range, causing correct events being thrown away before passing to userspace. We need to keep the GenDesk usage fixup though, as it reports totally bogus values about axis. Reported-by: Lucas Gadani <lgadani@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
18e352e4a7
commit
0fb21de079
|
@ -30,7 +30,7 @@
|
|||
#define MS_NOGET 0x10
|
||||
|
||||
/*
|
||||
* Microsoft Wireless Desktop Receiver (Model 1028) has several
|
||||
* Microsoft Wireless Desktop Receiver (Model 1028) has
|
||||
* 'Usage Min/Max' where it ought to have 'Physical Min/Max'
|
||||
*/
|
||||
static void ms_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
|
@ -38,17 +38,12 @@ static void ms_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
|||
{
|
||||
unsigned long quirks = (unsigned long)hid_get_drvdata(hdev);
|
||||
|
||||
if ((quirks & MS_RDESC) && rsize == 571 && rdesc[284] == 0x19 &&
|
||||
rdesc[286] == 0x2a && rdesc[304] == 0x19 &&
|
||||
rdesc[306] == 0x29 && rdesc[352] == 0x1a &&
|
||||
rdesc[355] == 0x2a && rdesc[557] == 0x19 &&
|
||||
if ((quirks & MS_RDESC) && rsize == 571 && rdesc[557] == 0x19 &&
|
||||
rdesc[559] == 0x29) {
|
||||
dev_info(&hdev->dev, "fixing up Microsoft Wireless Receiver "
|
||||
"Model 1028 report descriptor\n");
|
||||
rdesc[284] = rdesc[304] = rdesc[557] = 0x35;
|
||||
rdesc[352] = 0x36;
|
||||
rdesc[286] = rdesc[355] = 0x46;
|
||||
rdesc[306] = rdesc[559] = 0x45;
|
||||
rdesc[557] = 0x35;
|
||||
rdesc[559] = 0x45;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue