Re: [PATCH] HID: multitouch: Do not fetch initial feature reports for Win8 devices

From: Mika Westerberg
Date: Fri Sep 25 2015 - 10:26:01 EST


On Thu, Sep 24, 2015 at 09:16:01PM -0400, Benjamin Tissoires wrote:
> > diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> > index 426b2f1a3450..1911f7698511 100644
> > --- a/drivers/hid/hid-multitouch.c
> > +++ b/drivers/hid/hid-multitouch.c
> > @@ -1020,14 +1020,16 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
> > /*
> > * Handle special quirks for Windows 8 certified devices.
> > */
> > - if (id->group == HID_GROUP_MULTITOUCH_WIN_8)
> > + if (id->group == HID_GROUP_MULTITOUCH_WIN_8) {
> > /*
> > * Some multitouch screens do not like to be polled for input
> > - * reports. Fortunately, the Win8 spec says that all touches
> > - * should be sent during each report, making the initialization
> > - * of input reports unnecessary.
> > + * and feature reports. Fortunately, the Win8 spec says that all
> > + * touches should be sent during each report, making the
> > + * initialization of input reports unnecessary.
> > */
> > hdev->quirks |= HID_QUIRK_NO_INIT_INPUT_REPORTS;
> > + hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
>
> Problem is that with this quirk, event the features we are interested in
> (and that the device should support or Microsoft would complain) are not
> pre-read. I think we should set HID_QUIRK_NO_INIT_REPORTS (and remove
> HID_QUIRK_NO_INIT_INPUT_REPORTS BTW), and set up a quirk to actually
> retrieve the value of the feature in mt_feature_mapping. This way, we
> would be sure to only probe for features that are supported (contact
> count is the most important one).

Good point. I didn't realize that we actually use those features --
somehow I missed the whole mt_feature_mapping() function :-/

I'll try to implement what you suggested instead. Thanks.
--
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/