Message ID | 20211112135511.29573-1-linux@zary.sk (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Jiri Kosina |
Headers | show |
Series | hid-multitouch: Fix Iiyama ProLite T1931SAW (0eef:0001 again!) | expand |
Hi Ondrej, On Fri, Nov 12, 2021 at 3:00 PM Ondrej Zary <linux@zary.sk> 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@zary.sk> > --- > 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 >
On Friday 12 November 2021, Benjamin Tissoires wrote: > Hi Ondrej, > > On Fri, Nov 12, 2021 at 3:00 PM Ondrej Zary <linux@zary.sk> 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: It works with MT_CLS_EXPORT_ALL_INPUTS. > HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_DWAV, > USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER) But does not match HID_GROUP_GENERIC. > > ? > > Cheers, > Benjamin > > > > > Signed-off-by: Ondrej Zary <linux@zary.sk> > > --- > > 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 > > > >
On Mon, Nov 15, 2021 at 9:37 AM Ondrej Zary <linux@zary.sk> wrote: > > On Friday 12 November 2021, Benjamin Tissoires wrote: > > Hi Ondrej, > > > > On Fri, Nov 12, 2021 at 3:00 PM Ondrej Zary <linux@zary.sk> 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: > > It works with MT_CLS_EXPORT_ALL_INPUTS. > > > HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_DWAV, > > USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER) > > But does not match HID_GROUP_GENERIC. Sorry, it should have been HID_GROUP_MULTITOUCH Cheers, Benjamin > > > > > ? > > > > Cheers, > > Benjamin > > > > > > > > Signed-off-by: Ondrej Zary <linux@zary.sk> > > > --- > > > 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 > > > > > > > > > > > -- > Ondrej Zary >
On Tuesday 16 November 2021, Benjamin Tissoires wrote: > On Mon, Nov 15, 2021 at 9:37 AM Ondrej Zary <linux@zary.sk> wrote: > > > > On Friday 12 November 2021, Benjamin Tissoires wrote: > > > Hi Ondrej, > > > > > > On Fri, Nov 12, 2021 at 3:00 PM Ondrej Zary <linux@zary.sk> 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: > > > > It works with MT_CLS_EXPORT_ALL_INPUTS. > > > > > HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_DWAV, > > > USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER) > > > > But does not match HID_GROUP_GENERIC. > > Sorry, it should have been HID_GROUP_MULTITOUCH That's exactly how MT_USB_DEVICE is defined: #define MT_USB_DEVICE(v, p) HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH, v, p) So it's equal to MT_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER) Will that match only non-Win8 devices? > Cheers, > Benjamin > > > > > > > > > ? > > > > > > Cheers, > > > Benjamin > > > > > > > > > > > Signed-off-by: Ondrej Zary <linux@zary.sk> > > > > --- > > > > 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 > > > > > > > > > > > > > > > > > > -- > > Ondrej Zary > > > >
On Tue, Nov 16, 2021 at 12:07 PM Ondrej Zary <linux@zary.sk> wrote: > > On Tuesday 16 November 2021, Benjamin Tissoires wrote: > > On Mon, Nov 15, 2021 at 9:37 AM Ondrej Zary <linux@zary.sk> wrote: > > > > > > On Friday 12 November 2021, Benjamin Tissoires wrote: > > > > Hi Ondrej, > > > > > > > > On Fri, Nov 12, 2021 at 3:00 PM Ondrej Zary <linux@zary.sk> 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: > > > > > > It works with MT_CLS_EXPORT_ALL_INPUTS. > > > > > > > HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, USB_VENDOR_ID_DWAV, > > > > USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER) > > > > > > But does not match HID_GROUP_GENERIC. > > > > Sorry, it should have been HID_GROUP_MULTITOUCH > > That's exactly how MT_USB_DEVICE is defined: > #define MT_USB_DEVICE(v, p) HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH, v, p) Oops, sorry. That's what happens when I rely too much on my memory and don't check the code :( > > So it's equal to MT_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER) > Will that match only non-Win8 devices? Nope, you're correct, it will only match non-Win8 devices. So the only comment I have on your patch is to use MT_CLS_EXPORT_ALL_INPUTS instead of MT_CLS_WIN_8. Cheers, Benjamin > > > Cheers, > > Benjamin > > > > > > > > > > > > > ? > > > > > > > > Cheers, > > > > Benjamin > > > > > > > > > > > > > > Signed-off-by: Ondrej Zary <linux@zary.sk> > > > > > --- > > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Ondrej Zary > > > > > > > > > > > -- > Ondrej Zary >
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,
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). Signed-off-by: Ondrej Zary <linux@zary.sk> --- drivers/hid/hid-multitouch.c | 5 +++++ 1 file changed, 5 insertions(+)