Re: [PATCH v2] HID: multitouch: Fetch feature reports on demand for Win8 devices

From: Seth Forshee
Date: Wed Oct 07 2015 - 11:57:12 EST


On Wed, Oct 07, 2015 at 09:34:10AM -0400, Benjamin Tissoires wrote:
> [sorry for the late answer Jiri, I was on vacations last week]
>
> On Oct 07 2015 or thereabouts, Mika Westerberg wrote:
> > Some newer Intel Skylake based Dell laptops with Win8 precision touchpad
> > fail when initial feature reports are fetched from it. Below is an example
> > output with some additional debug included:
> >
> > i2c_hid i2c-DLL0704:01: Fetching the HID descriptor
> > i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=20 00
> > i2c_hid i2c-DLL0704:01: HID Descriptor: 1e 00 00 01 99 02 21 00 24 ...
> > ...
> > i2c_hid i2c-DLL0704:01: i2c_hid_get_report
> > i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 38 02 23 00
> > i2c_hid i2c-DLL0704:01: report (len=4): 04 00 08 05
> > i2c_hid i2c-DLL0704:01: report id 13
> > i2c_hid i2c-DLL0704:01: i2c_hid_get_report
> > i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 3d 02 23 00
> > i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
> > i2c_hid i2c-DLL0704:01: report id 7
> > i2c_hid i2c-DLL0704:01: i2c_hid_get_report
> > i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 37 02 23 00
> > i2c_hid i2c-DLL0704:01: report (len=259): 03 01 07 fc 28 fe 84 40 ...
> > i2c_hid i2c-DLL0704:01: report id 4
> > i2c_hid i2c-DLL0704:01: i2c_hid_get_report
> > i2c_hid i2c-DLL0704:01: __i2c_hid_command: cmd=22 00 34 02 23 00
> >
> > We manage to fetch few reports but then the touchpad dies:
> >
> > i2c_designware i2c_designware.1: i2c_dw_handle_tx_abort: lost arbitration
> > i2c_hid i2c-DLL0704:01: failed to retrieve report from device.
> >
> > it eventually pulls the whole I2C bus low:
> >
> > i2c_designware i2c_designware.1: controller timed out
> > i2c_hid i2c-DLL0704:01: failed to set a report to device.
> >
> > Fix this by preventing initial feature report retrieval for Win8 devices.
> > Instead we fetch reports as needed in mt_feature_mapping(). This prevents
> > fetching reports which might cause problems with the device in question.
> >
> > Suggested-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
> > ---
> > Added check for MT_CLS_WIN_8 so that the fix is only done for real Win8
> > devices.
>
> I think we are good now. I would just like to have Seth or Andrew giving
> a tested-by for Windows precision touchpads that can be found on the Dell
> laptops.
>
> If the buttonpad property is set correctly, this is:
> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>

This is working fine on my XPS 13 9343.

Tested-by: Seth Forshee <seth.forshee@xxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/