touchpad: use the fuzz value (if any) for the hysteresis margin
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 21 Feb 2018 03:41:31 +0000 (13:41 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 8 Mar 2018 23:49:54 +0000 (09:49 +1000)
commitea7498ef971350454db9c78b9ba160e7d6bb455b
tree3250e5fa7f5746d6a715493093010df06346f901
parent50418a0153f271a03dc9039e8e7776360f0fcba1
touchpad: use the fuzz value (if any) for the hysteresis margin

We currently used 0.5mm on touchpads as hysteresis value. This causes pointer
movement delays, it is likely too high. Reduce it to a kernel-set fuzz value
(if any) and see how we go with that. On many touchpads, the fuzz is 8 which
would be closer to 0.2mm on e.g. a T440.

Note that the does some defuzzing anyway, but the response of that function is
nonlinear, e.g. for a fuzz of 8, the physical deltas map to:

phys 0..3  → delta 0
phys 4..7  → delta 1
phys 8..15 → delta 4, 5, 6, 7
phys 16..N → delta 16..N

In other words, we never see some logical deltas 2 and 3. While this shouldn't
matter given the average touchpad resolution, reducing the hysteresis margin
is likely to provide some better response. We never see values 8-15 either
which could be the cause of some pointer jumps we've been seeing.

see https://bugs.freedesktop.org/show_bug.cgi?id=105303

Devices with a fuzz of 0 have the hysteresis margin reduced to 0.25mm (from
0.5mm).

https://bugs.freedesktop.org/show_bug.cgi?id=105108

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/evdev-mt-touchpad.c