[synaptics] [patch] touchpad output noise that confuse driver

Peter Hutterer peter.hutterer at who-t.net
Mon Nov 24 15:46:38 PST 2008


On Sun, Nov 23, 2008 at 08:46:14PM +0100, Batchty wrote:
> 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.

Pushed, thanks a lot!

Cheers,
  Peter



More information about the xorg mailing list