[synaptics] [patch] touchpad output noise that confuse driver
Batchty
batchman at free.fr
Sun Nov 23 11:46:14 PST 2008
Hello, I have a Dell Inspiron 1520 with a Synaptics touchpad. This touchpad for
a unknown reason loves to send event like these after every finger release :
time x y z f w l r u d m multi gl gm gr gdx gdy
1.563 3224 1625 57 1 5 0 0 0 0 0 00000000 0 0 0 0 0
1.574 3251 1632 30 1 5 0 0 0 0 0 00000000 0 0 0 0 0
1.584 3292 1673 10 1 5 0 0 0 0 0 00000000 0 0 0 0 0
1.594 1 5855 3 2 5 0 0 0 0 0 00000000 0 0 0 0 0
1.634 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
1.746 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
1.897 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
Most of the time these events are ignored by the driver. but sometimes
it confuse two-finger scrolling and tap detection.
For example, in this log, the first tap is recognized, the second isn't :
time x y z f w l r u d m multi gl gm gr gdx gdy
11.597 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
11.678 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
11.688 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
11.709 3862 2406 8 1 5 0 0 0 0 0 00000000 0 0 0 0 0
11.719 3851 2464 67 1 5 0 0 0 0 0 00000000 0 0 0 0 0
11.729 3849 2407 35 1 4 0 0 0 0 0 00000000 0 0 0 0 0
11.739 3858 2578 5 1 9 0 0 0 0 0 00000000 0 0 0 0 0
11.749 3858 2578 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
11.850 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
11.860 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
12.073 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
12.083 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
12.347 1 5855 4 2 5 0 0 0 0 0 00000000 0 0 0 0 0
12.357 3844 2381 56 1 4 0 0 0 0 0 00000000 0 0 0 0 0
12.377 3848 2361 32 1 4 0 0 0 0 0 00000000 0 0 0 0 0
12.388 1 5855 3 2 5 0 0 0 0 0 00000000 0 0 0 0 0
12.398 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
12.408 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
12.428 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
The problem with the second tap is that the driver check if the movement from
(3848,2361) to (1,5855) is over TapMaxMove before it checks for a finger release.
So the driver considers it as a (short) finger move.
The first patch add the condition ''the finger is still present'' to
the 'move' condition.
The other problem is with double-finger scrolling. In this log, the driver
send hundred of scroll-down events :
2.457 3220 2025 75 2 5 0 0 0 0 0 00000000 0 0 0 0 0
2.467 3244 1933 75 2 5 0 0 0 0 0 00000000 0 0 0 0 0
2.477 3275 1864 75 2 5 0 0 0 0 0 00000000 0 0 0 0 0
2.488 3329 1835 21 2 5 0 0 0 0 0 00000000 0 0 0 0 0
2.508 3461 1803 7 2 5 0 0 0 0 0 00000000 0 0 0 0 0
2.519 1 5855 2 2 5 0 0 0 0 0 00000000 0 0 0 0 0
2.631 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
2.904 1 5855 1 2 5 0 0 0 0 0 00000000 0 0 0 0 0
It's in fact scrolling from 1803 to 5855 because num_finger is still == 2.
The second patch stops two-finger scrolling when the ''finger'' variable is false.
Oh, and thanks for maintaining this driver. :) i tried to contact previous
upstream but they didn't answer.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dell-finger-tap.patch
Type: text/x-patch
Size: 621 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20081123/cb61c929/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: two-finger-scrolling.patch
Type: text/x-patch
Size: 459 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20081123/cb61c929/attachment-0001.bin>
More information about the xorg
mailing list