[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