Re: eGalax USB touchscreen issues

From: Vladimir Kondratyev <wulf_at_FreeBSD.org>
Date: Fri, 06 Aug 2021 11:55:39 UTC
On 05.08.2021 04:34, Mark Kane wrote:
> On 2021-07-05 18:57, Vladimir Kondratyev wrote:
>> I am sorry for my long silence.
>>
>> Please try updated patch.
> 
> Thanks for the updated patch and apologies for my late reply as well.
> Events are now heard on input7 and X sees input7 but has a libinput error:
> 
> [    41.168] (II) config/udev: Adding input device eGalax Inc. USB
> TouchController TouchScreen (/dev/input/event7)
> [    41.168] (**) eGalax Inc. USB TouchController TouchScreen: Applying
> InputClass "evdev tablet catchall"
> [    41.168] (**) eGalax Inc. USB TouchController TouchScreen: Applying
> InputClass "libinput tablet catchall"
> [    41.168] (II) Using input driver 'libinput' for 'eGalax Inc. USB
> TouchController TouchScreen'
> [    41.168] (**) eGalax Inc. USB TouchController TouchScreen: always
> reports core events
> [    41.168] (**) Option "Device" "/dev/input/event7"
> [    41.168] (**) Option "_source" "server/udev"
> [    41.172] (II) event7  - eGalax Inc. USB TouchController TouchScreen:
> is tagged by udev as: Tablet
> [    41.214] (EE) event7  - eGalax Inc. USB TouchController TouchScreen:
> libinput bug: missing tablet capabilities: btn-stylus resolution.
> Ignoring this device.



> #     Event code 13 ((null))
> #     Event code 14 ((null))
> #     Event code 15 (SYN_MAX)
> #   Event type 1 (EV_KEY)
> #     Event code 320 (BTN_TOOL_PEN)
> #     Event code 330 (BTN_TOUCH)
> #   Event type 3 (EV_ABS)
> #     Event code 0 (ABS_X)
> #       Value        0
> #       Min          0
> #       Max       4095
> #       Fuzz         0
> #       Flat         0
> #       Resolution   0

Resolution is really missing. Your device report descriptor uses wrong
value for inches.
I looked at it one more time and found out that it conforms old MS's
multitouch specs and uses so called "serial packet reporting mode" which
is absent in modern specs.

I added support of it to hmt(4) driver. Patch is attached. Please test
it. It consist of 2 parts:

- sys/dev/hid/hid.c - workarounds resolution issue. It can be used with
     previous patch

- sys/dev/hid/hmt.c - adds support for serial mode to hmt. It should be
used with previous patch reverted. (but keep sys/dev/hid/hid.c)

-- 
WBR
Vladimir Kondratyev