Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf5425bf authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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
parents bf6c8a81 c284979a
Loading
Loading
Loading
Loading
+0 −0

File mode changed from 100755 to 100644.

+3 −0
Original line number Original line Diff line number Diff line
@@ -306,6 +306,9 @@
#define USB_VENDOR_ID_EZKEY		0x0518
#define USB_VENDOR_ID_EZKEY		0x0518
#define USB_DEVICE_ID_BTC_8193		0x0002
#define USB_DEVICE_ID_BTC_8193		0x0002


#define USB_VENDOR_ID_FORMOSA          0x147a
#define USB_DEVICE_ID_FORMOSA_IR_RECEIVER      0xe03e

#define USB_VENDOR_ID_FREESCALE		0x15A2
#define USB_VENDOR_ID_FREESCALE		0x15A2
#define USB_DEVICE_ID_FREESCALE_MX28	0x004F
#define USB_DEVICE_ID_FREESCALE_MX28	0x004F


+12 −1
Original line number Original line Diff line number Diff line
@@ -540,13 +540,24 @@ static int i2c_hid_output_raw_report(struct hid_device *hid, __u8 *buf,
{
{
	struct i2c_client *client = hid->driver_data;
	struct i2c_client *client = hid->driver_data;
	int report_id = buf[0];
	int report_id = buf[0];
	int ret;


	if (report_type == HID_INPUT_REPORT)
	if (report_type == HID_INPUT_REPORT)
		return -EINVAL;
		return -EINVAL;


	return i2c_hid_set_report(client,
	if (report_id) {
		buf++;
		count--;
	}

	ret = i2c_hid_set_report(client,
				report_type == HID_FEATURE_REPORT ? 0x03 : 0x02,
				report_type == HID_FEATURE_REPORT ? 0x03 : 0x02,
				report_id, buf, count);
				report_id, buf, count);

	if (report_id && ret >= 0)
		ret++; /* add report_id to the number of transfered bytes */

	return ret;
}
}


static int i2c_hid_parse(struct hid_device *hid)
static int i2c_hid_parse(struct hid_device *hid)
+1 −0
Original line number Original line Diff line number Diff line
@@ -70,6 +70,7 @@ static const struct hid_blacklist {
	{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS },
	{ USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
	{ USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS },
	{ USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS },