On 04/02/2015 03:39 AM, Fasse wrote:
On Wed, 01 Apr 2015 21:23:15 +0200
Ulf Brosziewski<ulf.brosziew...@t-online.de>  wrote:
Yes, without some refactoring there won't be an elegant way.
pms_sync_elantech_v2 encodes some sync state in the 'flags' field
(ELANTECH_F_2FINGER_PACKET), but doing the same in the v3/CRC case might
be ugly.

Admittedly I am biased because I don't want to refactor ~2400 LOC to get
my touchpad working but I don't think that crc enabled v3 touchpads use
the debounce packet. I just installed Ubuntu and compiled the 3.19.3
linux kernel with added printk statements in the elantech_packet_check_v3
function on my laptop. In the linux kernel documentation [0] for elantech
touchpads it says about the debounce packet: "Note on debounce: In case
the box has unstable power supply or other electricity issues, or when
number of finger changes, F/W would send "debounce packet" to inform
driver that the hardware is in debounce status."
I could not reproduce the unstable power supply but when switching the
number of fingers on the touchpad no debounce packet is issued. Instead
just the head and tail packets are registered and processed (unlike the
OpenBSD driver which ignores the tail packet). This leads me to belief
that v3/crc does not use debounce packets.
Do you think this is possible/likely? (...)

Why not? You seem to have shown that it is possible, at least for your
hardware and multiple touches. It might well be that the author(s) of the
Linux driver just wanted to be on the safe side.

(...) There doesn't appear to be any
official documentation in regard to elantech touchpads, hence I can't
be certain.
Nonetheless a refactor would obviously be beneficial but in the interim
the patch might do a sufficient job.

[0] https://www.kernel.org/doc/Documentation/input/elantech.txt


Reply via email to