Bug 100027

Summary: kernel: Touchpad input gestures issue on Thinkpad X240
Product: Wayland Reporter: Daniele <daniele.marsella95>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: medium CC: benjamin.tissoires, daniele.marsella95, peter.hutterer
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Evemu Recording

Description Daniele 2017-03-01 21:52:14 UTC
Created attachment 130020 [details]
Evemu Recording

OS: Fedora 25 with GNOME Wayland.

Sometimes libinput mistakes single finger input (clicks or moves) for double tap or scrolling gesture.
This happens mostly when i wake my laptop up from standby.

My input device is:

# EVEMU 1.3
# Kernel: 4.9.12-200.fc25.x86_64
# DMI: dmi:bvnLENOVO:bvrGIET87WW(2.37):bd09/13/2016:svnLENOVO:pn20AMS0MF00:pvrThinkPadX240:rvnLENOVO:rn20AMS0MF00:rvrNotDefined:cvnLENOVO:ct10:cvrNotAvailable:
# Input device name: "SynPS/2 Synaptics TouchPad"
# Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 325 (BTN_TOOL_FINGER)
#     Event code 328 (BTN_TOOL_QUINTTAP)
#     Event code 330 (BTN_TOUCH)
#     Event code 333 (BTN_TOOL_DOUBLETAP)
#     Event code 334 (BTN_TOOL_TRIPLETAP)
#     Event code 335 (BTN_TOOL_QUADTAP)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value   4008
#       Min     1232
#       Max     5710
#       Fuzz       0
#       Flat       0
#       Resolution 53
#     Event code 1 (ABS_Y)
#       Value   1540
#       Min     1156
#       Max     4696
#       Fuzz       0
#       Flat       0
#       Resolution 55
#     Event code 24 (ABS_PRESSURE)
#       Value     34
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 28 (ABS_TOOL_WIDTH)
#       Value      0
#       Min        0
#       Max       15
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 47 (ABS_MT_SLOT)
#       Value      1
#       Min        0
#       Max        1
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value      0
#       Min     1232
#       Max     5710
#       Fuzz       8
#       Flat       0
#       Resolution 53
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value      0
#       Min     1156
#       Max     4696
#       Fuzz       8
#       Flat       0
#       Resolution 55
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value      0
#       Min        0
#       Max    65535
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 58 (ABS_MT_PRESSURE)
#       Value      0
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
# Properties:
#   Property  type 0 (INPUT_PROP_POINTER)
#   Property  type 2 (INPUT_PROP_BUTTONPAD)
#   Property  type 4 (INPUT_PROP_TOPBUTTONPAD)
N: SynPS/2 Synaptics TouchPad
I: 0011 0002 0007 01b1
P: 15 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 01 00 00 00 00 00
B: 01 20 e5 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 06
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: 14 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 1232 5710 0 0 53
A: 01 1156 4696 0 0 55
A: 18 0 255 0 0 0
A: 1c 0 15 0 0 0
A: 2f 0 1 0 0 0
A: 35 1232 5710 8 0 53
A: 36 1156 4696 8 0 55
A: 39 0 65535 0 0 0
A: 3a 0 255 0 0 0


I've attached my evemu recording file.
Comment 1 Peter Hutterer 2017-03-02 04:38:12 UTC
this looks like a recording that didn't start from a neutral state, one finger is already down at the start of the recording. See the first event setting BTN_TOOL_DOUBLETAP which is the bitflag for "two fingers down".

If you did start this from a neutral state (i.e. without any fingers down) then this is a kernel bug because we're getting the wrong finger count.

There's also a number of other double/triple fingers detected in this recording. Was this just one from one finger?
Comment 2 Daniele 2017-03-02 09:28:37 UTC
I used initially only one finger (tap and move), then I used two fingers. I've not used three fingers.
Comment 3 Peter Hutterer 2017-03-06 00:53:11 UTC
daniele: is this a recent regression, possibly caused by a kernel update?

benjamin: do you remember any bug on the *40 generation where the finger count gets stuck?
Comment 4 Benjamin Tissoires 2017-03-06 08:17:57 UTC
(In reply to Peter Hutterer from comment #3)
> benjamin: do you remember any bug on the *40 generation where the finger
> count gets stuck?

I don't recall such bug on PS/2 on the *40 series. Also, Daniele, did you upgrade the firmware of the touchpad under Windows?
Comment 5 Daniele 2017-03-06 16:16:52 UTC
No, I didn't upgrade it, but I don't have more Windows partiotion on my laptop.
I think that I'm using last firmware for touchpad.
Comment 6 Benjamin Tissoires 2017-03-16 07:59:49 UTC
Weird. And do you happen to know if this is a regression (as asked by Peter)?

And if so, could you find out which kernel broke the touchpad?
Comment 7 Daniele 2017-03-16 17:30:34 UTC
I've used only 4.9.x kernel on this laptop, and in each version the problem was present.

I've also noticed that sometimes clicking the clickpad and moving around the finger temporarly fix the issue.
Comment 8 Peter Hutterer 2017-05-19 05:39:30 UTC
is this still an issue with 4.10 or 4.11?
Comment 9 Daniele 2017-05-19 08:42:29 UTC
(In reply to Peter Hutterer from comment #8)
> is this still an issue with 4.10 or 4.11?

Yes, it happens sometimes also with kernel 4.10 but less often.
Comment 10 Benjamin Tissoires 2017-05-19 08:46:59 UTC
(In reply to Daniele from comment #9)
> (In reply to Peter Hutterer from comment #8)
> > is this still an issue with 4.10 or 4.11?
> 
> Yes, it happens sometimes also with kernel 4.10 but less often.

Please try a v4.11 kernel. On this kernel, the device should appear as "Synaptics TMXXXX-XXX". If the PS/2 node disappeared, as I supposed, then you are using SMBus which will report more fingers and should prevent some firmware bugs.
Comment 11 Peter Hutterer 2017-06-15 03:14:07 UTC
in needinfo for a month, closing, please re-open when the requested info has been provided

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.