On Thu, Apr 27, 2017 at 8:09 AM, Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> wrote: > On Apr 27 2017 or thereabouts, Jarkko Nikula wrote: >> 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 > > I'd say there are other I2C Wacom tablets. Jason and Ping can confirm. > Absolutely. There are a number of I2C tablets out there. The device table for wacom.ko includes "{ I2C_DEVICE_WACOM(HID_ANY_ID) }" so that we can attempt to handle them. >> 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. > > What's the issue of having wacom.ko loaded for this particular > touchscreen? wacom.ko should handle it properly. > > Cheers, > Benjamin > I'm wondering the same thing. It looks like the vendor-specific overrides occur after HID_GROUP_MULTITOUCH_WIN_8 would have been set... Is the wacom module not a part of your kernel? Jason --- Now instead of four in the eights place / you’ve got three, ‘Cause you added one / (That is to say, eight) to the two, / But you can’t take seven from three, / So you look at the sixty-fours.... >> --- >> 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