@@ -31,6 +37,17 @@ static __u8 *elecom_report_fixup(struct hid_device *hdev, __u8 *rdesc,
rdesc[47] = 0x00;
}
break;
+ case USB_DEVICE_ID_ELECOM_M_XT3URBK:
+ if (*rsize >= 32 && rdesc[12] == 0x95 && rdesc[13] == 0x05 &&
+ rdesc[14] == 0x75 && rdesc[15] == 0x01 &&
+ rdesc[20] == 0x29 && rdesc[21] == 0x05 &&
+ rdesc[30] == 0x75 && rdesc[31] == 0x03) {
+ hid_info(hdev, "Fixing up Elecom M-XT3URBK report descriptor\n");
+ rdesc[13] = 0x06;
+ rdesc[21] = 0x06;
+ rdesc[31] = 0x02;
+ }
+ break;
(Note: I just pulled this out of a diff with a bunch of other changes so
it might not apply cleanly.)