[PATCH] HID: Support i2c-hid multitouch compatible Wacom touchscreens

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Vendor specific handling in hid_scan_report() overrides the hid->group
to HID_GROUP_WACOM for all devices with vendor ID equal to
USB_VENDOR_ID_WACOM.

However there is an i2c-hid multitouch compatible Wacom touschreen which
is parsed as generic HID_GROUP_MULTITOUCH_WIN_8 device but
hid-multitouch doesn't probe because of this overriding.

Support this touschreen by overring the group only when the bus is
different than I2C.

Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
---
I'm not an HID expert and I don't know is there any existing Wacom
tablets using the I2C bus. There are USB and Bluetooth tablets so that's
the reason I'm checking id->bus != BUS_I2C when overring the group.
I've done only basic testing that device is registered as an
hid-multitouch device and "hexdump /dev/input/eventX" produces a bunch
of hexadecimals when touschscreen is touched.
---
 drivers/hid/hid-core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index d162f0dc76e3..cfb0b7262de7 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -816,7 +816,8 @@ static int hid_scan_report(struct hid_device *hid)
 	 */
 	switch (hid->vendor) {
 	case USB_VENDOR_ID_WACOM:
-		hid->group = HID_GROUP_WACOM;
+		if (hid->bus != BUS_I2C)
+			hid->group = HID_GROUP_WACOM;
 		break;
 	case USB_VENDOR_ID_SYNAPTICS:
 		if (hid->group == HID_GROUP_GENERIC)
-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux