Re: [PATCH v4] hid/i2c-hid: override HID descriptors for certain devices

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

 



On Fri, Sep 28, 2018 at 2:33 PM Julian Sax <jsbc@xxxxxx> wrote:
>
> Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> writes:
>
> > On Thu, Sep 27, 2018 at 3:13 AM Benjamin Tissoires
> > <benjamin.tissoires@xxxxxxxxxx> wrote:
> >>
> >> On Wed, Sep 19, 2018 at 11:47 AM Julian Sax <jsbc@xxxxxx> wrote:
> >> >
> >> > A particular touchpad (SIPODEV SP1064) refuses to supply the HID
> >> > descriptors. This patch provides the framework for overriding these
> >> > descriptors based on DMI data. It also includes the descriptors for
> >> > said touchpad, which were extracted by listening to the traffic of the
> >> > windows filter driver, as well as the DMI data for the laptops known
> >> > to use this device.
> >> >
> >> > Relevant Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1526312
> >> >
> >> > Cc: Hans de Goede <hdegoede@xxxxxxxxxx>
> >> > Reported-and-tested-by: ahormann@xxxxxxx
> >> > Reported-and-tested-by: Bruno Jesus <bruno.fl.jesus@xxxxxxxxx>
> >> > Reported-and-tested-by: Dietrich <enaut.w@xxxxxxxxxxxxxx>
> >> > Reported-and-tested-by: kloxdami@xxxxxxxxx
> >> > Signed-off-by: Julian Sax <jsbc@xxxxxx>
> >> > ---
> >>
> >> Looks good AFAICT:
> >> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
> >
> > So wait, looking at the patch description, Windows is able to fetch
> > the descriptors from the device. Why can't we do what Windows does? It
> > seems that we do not recognize bcdVersion value, what else is
> > different? If we adjust for that, can we fetch the rest of descriptors
> > from the device? I think there was another controller with weird
> > descriptor layout (Cypress)...
> >
> > Thanks.
>
> In this case, on Windows a filter driver sneaks in between the device
> and the HID layer and provides the descriptors. When you compare the i2c
> traffic on Windows before and after the filter driver, in the
> device-facing communication the descriptor requests does not appear,
> while on the HID-facing side, they do. If you try to read directly from
> the standard locations of the HID and report descriptor, you only get
> the report starting from that offset. This was probably done to make the
> actual chip as cheap as possible by not storing the descriptors there
> and not implementing real address handling at all.

I see. Thank you for the clarification.

-- 
Dmitry



[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