Bug 45278 - Regression in c8b098: Pointer keeps moving
Summary: Regression in c8b098: Pointer keeps moving
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Peter Hutterer
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-26 09:02 UTC by Jaime Velasco Juan
Modified: 2012-02-20 17:25 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Evtest log (196.52 KB, text/plain)
2012-02-16 06:06 UTC, Loris Z.
no flags Details
evemu event log reproducing the issue (57.67 KB, text/plain)
2012-02-19 16:12 UTC, Peter Hutterer
no flags Details

Description Jaime Velasco Juan 2012-01-26 09:02:19 UTC
Hello, after commit c8b098214b44cf0585d78c460401ea7d143769f3 (Don't store fake events in the motion history) the touchpad is unusable: the pointer moves too fast, and it keeps on moving (in the same direction) when the finger stops, as long as it is touching the touchpad.

It works as expected in HEAD with that commit reverted. This is the bisection log:

git bisect start
# good: [065a0b495d2a7eb76b61f9eec85248aefae4c8ee] synaptics 1.5.0
git bisect good 065a0b495d2a7eb76b61f9eec85248aefae4c8ee
# bad: [3804a0ee0bec455fcc61a469dd907738ff5589bd] Constify priv->device
git bisect bad 3804a0ee0bec455fcc61a469dd907738ff5589bd
# good: [98e8481cf4911506403b8963fc32c61a74cf679e] Bump to 1.4.99.1
git bisect good 98e8481cf4911506403b8963fc32c61a74cf679e
# bad: [4fe1b58c2c6903961a84077363a0c8de5736c650] Scroll: Modify ScrollData in repeat_scrollbuttons
git bisect bad 4fe1b58c2c6903961a84077363a0c8de5736c650
# good: [458c7251295e767fae7a0ac3366212361bce25a6] Use hardware time where possible
git bisect good 458c7251295e767fae7a0ac3366212361bce25a6
# bad: [f40bbf7494a6122d464e3fff4309f69af2a20e4a] Revise palm check logic
git bisect bad f40bbf7494a6122d464e3fff4309f69af2a20e4a
# bad: [ffed18dfffda32de7282e44c5b8d1fb7d5454b54] Update count_packet_finger in store_history, not get_delta
git bisect bad ffed18dfffda32de7282e44c5b8d1fb7d5454b54
# bad: [c8b098214b44cf0585d78c460401ea7d143769f3] Don't store fake events in the motion history
git bisect bad c8b098214b44cf0585d78c460401ea7d143769f3

I also found some strangeness with edge scrolling, sometimes it generated spurious events in the opposite direction (i.e. scroll down but get several button 4 events, instead of one button 5). I'm unable to reproduce it now with the commit reverted, but I'm not sure it's the same bug.
Comment 2 Loris Z. 2012-02-14 04:08:15 UTC
I experience something similar to this bug on Ubuntu 12.04 (default X stack and kernel), on Ubuntu 11.10 and 12.04 with xorg-edgers ppa stack.
This bug did not exist on Ubuntu 11.10 with default X stack.

The pointer sometimes keeps moving in the same direction when the finger stops, and the pointer moves too fast.
Small and precise movements are unpredictable, so the touchpad is nearly unusable for text edit, or even clicking on window controls.
I had to set speed and acceleration to the lowest value to use this touchpad, but this is not even a real workaround.

I know this bug is known on the debian and archlinux bugtrackers, users report the same issue on launchpad.

I get the following outputs :
$ egrep -i 'synap|alps|etps' /proc/bus/input/devices
N: Name="ETPS/2 Elantech Touchpad"

$ synclient -l | awk '/=/{printf "Option \"%s\" \"%s\"\n",$1,$3}'
   PressureMotionMinZ      = format mismatch (32)
   PressureMotionMaxZ      = format mismatch (32)
Comment 3 Peter Hutterer 2012-02-15 21:58:39 UTC
(In reply to comment #0)
> I also found some strangeness with edge scrolling, sometimes it generated spurious events in the opposite direction (i.e. scroll down but get several button 4
> events, instead of one button 5). I'm unable to reproduce it now with the commit reverted, but I'm not sure it's the same bug.

Erratic scroll events are detailed in Bug 45611
Comment 4 Peter Hutterer 2012-02-15 22:02:51 UTC
I don't see this behaviour on the current f9a906590e59383aef3c53faca98f0de40859f17 commit. Is this still an issue?

If so, please get me the evtest description for the device, maybe it is hardware-specific (single-touch vs multitouch touchpads) and your /proc/bus/input/devices.
Comment 5 Thomas Bächler 2012-02-16 01:42:07 UTC
We have this problem on e6032c34515a19ebac09090028f806d82ddfb62d (see [1]), which is only one commit behind the latest (and that commit seems unrelated).

I only have reports of ALPS and Elantech touchpads failing, but no complaints from Synaptics touchpad users.

[1] https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/xf86-input-synaptics
Comment 6 Loris Z. 2012-02-16 06:06:53 UTC
Created attachment 57154 [details]
Evtest log
Comment 7 Loris Z. 2012-02-16 06:07:09 UTC
I installed the latest Input/synaptics driver from git, revision f9a906590e59383aef3c53faca98f0de40859f17.

Here is the touchpad specific /proc/bus/input/devices entry :

I: Bus=0011 Vendor=0002 Product=000e Version=0000
N: Name="ETPS/2 Elantech Touchpad"
P: Phys=isa0060/serio4/input0
S: Sysfs=/devices/platform/i8042/serio4/input/input5
U: Uniq=
H: Handlers=mouse0 event5 
B: PROP=8
B: EV=b
B: KEY=e420 30000 0 0 0 0
B: ABS=260800011000003

The evtest log is attached, but as long as i had to switch to another VT and i could not see the pointer, i don't know if i triggered the "pointer keeps moving" bug.
Comment 8 Jaime Velasco Juan 2012-02-16 10:07:01 UTC
The bug is present still in master branch. Now the cursor moves at normal speed, so it's tolerable, but it doesn't stop moving unless c8b09 is reverted.

My hardware is:

Input driver version is 1.0.1
Input device ID: bus 0x11 vendor 0x2 product 0x8 version 0x7301
Input device name: "AlpsPS/2 ALPS DualPoint TouchPad"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 272 (BTN_LEFT)
    Event code 273 (BTN_RIGHT)
    Event code 274 (BTN_MIDDLE)
    Event code 325 (BTN_TOOL_FINGER)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value    977
      Min        0
      Max     1023
    Event code 1 (ABS_Y)
      Value    168
      Min        0
      Max      767
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max      127
Comment 9 Peter Hutterer 2012-02-16 16:07:18 UTC
(In reply to comment #8)
> The bug is present still in master branch. Now the cursor moves at normal speed, so it's tolerable, but it doesn't stop moving unless c8b09 is reverted.

fwiw, the cursor speed change was likely the revert pushed as
xf86-input-synaptics-1.4.99.1-56-g49f6109
Comment 10 Peter Hutterer 2012-02-16 17:42:57 UTC
(In reply to comment #7)
> The evtest log is attached, but as long as i had to switch to another VT and i could not see the pointer, i don't know if i triggered the "pointer keeps
> moving" bug.

Drop this in /etc/X11/xorg.conf.d/99-synaptics-nograb.conf

Section "InputClass"
   Identifier "synaptics don't grab"
   MatchDriver "synaptics"
   Option "GrabEventDevice" "off"
EndSection

and restart X. that should stop synaptics from grabbing the device, allowing you to capture it while X is running.

Also, if you could record the output and description with evemu, that'd make it a lot easier for me to replay. https://launchpad.net/utouch-evemu, then run evemu-describe and evemu-record
Comment 11 Loris Z. 2012-02-16 23:04:16 UTC
I made these log files with the recommanded tools:

N: ETPS/2 Elantech Touchpad
I: 0011 0002 000e 0000
P: 08 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 03 00 00 00 00 00
B: 01 20 e4 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 11 00 80 60 02
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 1280 0 0
A: 01 0 704 0 0
A: 18 0 255 0 0
A: 1c 0 15 0 0
A: 2f 0 1 0 0
A: 35 0 1280 0 0
A: 36 0 704 0 0
A: 39 0 65535 0 0


evtest.log http://ubuntuone.com/3r4EKxVuBadkifGWcDtav7

evemu.log http://ubuntuone.com/0qx8qll7jXeQ796eVt9RoU

The sensitivity bug, and pointer keep moving bug were triggered during the recording (a few times for the second one).
Comment 12 Peter Hutterer 2012-02-19 16:12:10 UTC
Created attachment 57286 [details]
evemu event log reproducing the issue

Attaching the file here so it doesn't go astray.
Comment 13 Peter Hutterer 2012-02-20 17:25:22 UTC
commit c25ff549c9636ad89a81fbf364159c7f040d163b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Feb 17 11:49:43 2012 +1000

    Revert "Don't store fake events in the motion history"


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.