Re: [PATCH] hid-multitouch: Fix Iiyama ProLite T1931SAW (0eef:0001 again!)

From: Benjamin Tissoires
Date: Fri Nov 12 2021 - 10:18:15 EST


Hi Ondrej,

On Fri, Nov 12, 2021 at 3:00 PM Ondrej Zary <linux@xxxxxxx> wrote:
>
> Iiyama ProLite T1931SAW does not work with Linux - input devices are
> created but cursor does not move.
>
> It has the infamous 0eef:0001 ID which has been reused for various
> devices before.
>
> It seems to require export_all_inputs = true.
> Add it to mt_devices[] as MT_CLS_WIN_8 to fix the problem.
> Hopefully there are no HID devices using this ID that will break.
> It should not break non-HID devices (handled by usbtouchscreen).

Hmm, this is worrisome. I am pretty sure there were some eGalax 0001
devices that were Win 7 compatible and I am not sure if they are
compatible with Win8...

I guess that if you have to set MT_CLS_WIN_8, the device is not
detected as such. so how about you use:
MT_CLS_EXPORT_ALL_INPUTS instead, (to keep MT_CLS_DEFAULT for those
devices), and restrict the VID/PID matching to the non Win8 devices:

HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_DWAV,
USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER)

?

Cheers,
Benjamin

>
> Signed-off-by: Ondrej Zary <linux@xxxxxxx>
> ---
> drivers/hid/hid-multitouch.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index e1afddb7b33d..099daf590392 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -1888,6 +1888,11 @@ static const struct hid_device_id mt_devices[] = {
> MT_USB_DEVICE(USB_VENDOR_ID_CVTOUCH,
> USB_DEVICE_ID_CVTOUCH_SCREEN) },
>
> + /* eGalax devices (SAW) */
> + { .driver_data = MT_CLS_WIN_8,
> + MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
> + USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER) },
> +
> /* eGalax devices (resistive) */
> { .driver_data = MT_CLS_EGALAX,
> MT_USB_DEVICE(USB_VENDOR_ID_DWAV,
> --
> Ondrej Zary
>