Commit cf5425bfcd6909f9831a00bc06ccb9a5b163766a
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
Merge branch 'for-3.8/upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
PullHID fixes from Jiri Kosina: - fix i2c-hid and hidraw interaction, by Benjamin Tissoires - a quirk to make a particular device (Formosa IR receiver) work properly, by Nicholas Santos * 'for-3.8/upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: HID: i2c-hid: fix i2c_hid_output_raw_report HID: usbhid: quirk for Formosa IR receiver HID: remove x bit from sensor doc
Showing 3 changed files Side-by-side Diff
drivers/hid/hid-ids.h
... | ... | @@ -306,6 +306,9 @@ |
306 | 306 | #define USB_VENDOR_ID_EZKEY 0x0518 |
307 | 307 | #define USB_DEVICE_ID_BTC_8193 0x0002 |
308 | 308 | |
309 | +#define USB_VENDOR_ID_FORMOSA 0x147a | |
310 | +#define USB_DEVICE_ID_FORMOSA_IR_RECEIVER 0xe03e | |
311 | + | |
309 | 312 | #define USB_VENDOR_ID_FREESCALE 0x15A2 |
310 | 313 | #define USB_DEVICE_ID_FREESCALE_MX28 0x004F |
311 | 314 |
drivers/hid/i2c-hid/i2c-hid.c
... | ... | @@ -540,13 +540,24 @@ |
540 | 540 | { |
541 | 541 | struct i2c_client *client = hid->driver_data; |
542 | 542 | int report_id = buf[0]; |
543 | + int ret; | |
543 | 544 | |
544 | 545 | if (report_type == HID_INPUT_REPORT) |
545 | 546 | return -EINVAL; |
546 | 547 | |
547 | - return i2c_hid_set_report(client, | |
548 | + if (report_id) { | |
549 | + buf++; | |
550 | + count--; | |
551 | + } | |
552 | + | |
553 | + ret = i2c_hid_set_report(client, | |
548 | 554 | report_type == HID_FEATURE_REPORT ? 0x03 : 0x02, |
549 | 555 | report_id, buf, count); |
556 | + | |
557 | + if (report_id && ret >= 0) | |
558 | + ret++; /* add report_id to the number of transfered bytes */ | |
559 | + | |
560 | + return ret; | |
550 | 561 | } |
551 | 562 | |
552 | 563 | static int i2c_hid_parse(struct hid_device *hid) |
drivers/hid/usbhid/hid-quirks.c
... | ... | @@ -70,6 +70,7 @@ |
70 | 70 | { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET }, |
71 | 71 | { USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET }, |
72 | 72 | { USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET }, |
73 | + { USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS }, | |
73 | 74 | { USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET }, |
74 | 75 | { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET }, |
75 | 76 | { USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS }, |