2017-08-22 16:13:26

by Kirill Esipov

[permalink] [raw]
Subject: Re: HID: core: assign usbhid to handle EETI PID=0x0001 HID device

Hi

On 08/11/2017 10:42 AM, JamChen wrote:
> From: Jam Chen <[email protected]>
>
> The vendor used the same PID(0x0001) for multiple touch IC controllers.
> The newer ICs can support HID class and report the multitouch collection
> in the descriptor. So they were handled by the hid-multitouch driver.
> But some customized firmwares don't support multitouch protocol even if
> driver have got the Win8 blob data.
>
> Actually, those ICs only support the single touch function, and report
> the mouse protocol by default. We can assign usbhid to handle them all.
>
> Signed-off-by: Jam Chen <[email protected]>
> ---
> drivers/hid/hid-core.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 9017dcc14502..df4696022488 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -828,6 +828,10 @@ static int hid_scan_report(struct hid_device *hid)
> */
> hid->group = HID_GROUP_RMI;
> break;
> + case USB_VENDOR_ID_DWAV:
> + if (hid->product == USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER)
> + hid->group = HID_GROUP_GENERIC;
> + break;
> }
>
> /* fall back to generic driver in case specific driver doesn't exist */
>
>

I've tested this patch and got the same problem as Zoltán Böszörményi did:
- on finger touch: pointer doesn't change its position;
- on finger move: pointer is moving and it's behavior looks like
touchscreen is working as touchpad;

My test environments:
linux kernel 4.1.18 (armv7 ti am335x)
weston - 1.9.0
libinput - 1.1.4
libevdev - 1.2.99.901

Also I've tested this patch
https://patchwork.kernel.org/patch/9876649/ - and it works fine.



--
Kirill Esipov