[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