]> Pileus Git - ~andy/linux/commit
HID: kye: Add report fixup for Genius Gila Gaming mouse
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Tue, 2 Jul 2013 16:10:09 +0000 (18:10 +0200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 3 Jul 2013 16:14:33 +0000 (18:14 +0200)
commit3685c18e17f12438d0a83331c1b6a5b00fade7a1
treedd8d084089a8b93e3b1272160335426c05fc0bd1
parenta688393bd3fb27690a77f7ae8607b4969039bac5
HID: kye: Add report fixup for Genius Gila Gaming mouse

Genius Gila Gaming Mouse presents an obviously wrong report descriptor.
the Consumer control (report ID 3) is the following:
0x05, 0x0c,                    // Usage Page (Consumer Devices)       105
0x09, 0x01,                    // Usage (Consumer Control)            107
0xa1, 0x01,                    // Collection (Application)            109
0x85, 0x03,                    //   Report ID (3)                     111
0x19, 0x00,                    //   Usage Minimum (0)                 113
0x2a, 0xff, 0x7f,              //   Usage Maximum (32767)             115
0x15, 0x00,                    //   Logical Minimum (0)               118
0x26, 0xff, 0x7f,              //   Logical Maximum (32767)           120
0x75, 0x10,                    //   Report Size (16)                  123
0x95, 0x03,                    //   Report Count (3)                  125
0x81, 0x00,                    //   Input (Data,Arr,Abs)              127
0x75, 0x08,                    //   Report Size (8)                   129
0x95, 0x01,                    //   Report Count (1)                  131
0x81, 0x01,                    //   Input (Cnst,Arr,Abs)              133
0xc0,                          // End Collection                      135

So the first input whithin this report has a count of 3 but a usage range
of 32768. So this value is obviously wrong as it should not be greater than
the report count.

Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=959721

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c
drivers/hid/hid-ids.h
drivers/hid/hid-kye.c