Bug 96690

Summary: libinput 1.3.2 freezing pointer
Product: Wayland Reporter: brent s. <brent.saner>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED NOTOURBUG QA Contact:
Severity: normal    
Priority: medium CC: benjamin.tissoires, brent.saner, peter.hutterer
Version: 1.3.0   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: event1's evemu record
event9's evemu record

Description brent s. 2016-06-27 02:56:43 UTC
(Arch Linux, x86_64, systemd-230, gdm/gnome3-3.20.1, wayland-1.11.0)

When moving the pointer (touchpad), it appears to "freeze"- if i lift off the touchpad and try again, the pointer usually works. however, it sometimes also seems to be suck in a "selection" (i.e. depressed) mode, and won't exit until i make a click.

During these times, the following messages are of course printed to the journal:

Jun 26 22:48:01 cylon /usr/lib/gdm/gdm-x-session[1649]: (EE) kernel bug: Touch jump detected and discarded.
Jun 26 22:48:01 cylon /usr/lib/gdm/gdm-x-session[1649]: See https://wayland.freedesktop.org/libinput/doc/1.3.2/touchpad_jumping_cursor.html for details

I have two touchpads showing up; apologies as I don't know which one it'd be.

[bts@cylon ~]$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ SYN2602:00 06CB:78DD Touchpad           	id=12	[slave  pointer  (2)]
⎜   ↳ G2Touch Multi-Touch by G2TSP            	id=10	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Power Button                            	id=9	[slave  keyboard (3)]
    ↳ ATIV Real HD Camera                     	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=13	[slave  keyboard (3)]
[bts@cylon ~]$ xinput list-props "SYN2602:00 06CB:78DD Touchpad"
Device 'SYN2602:00 06CB:78DD Touchpad':
	Device Enabled (138):	1
	Coordinate Transformation Matrix (140):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (278):	0
	libinput Tapping Enabled Default (279):	0
	libinput Tapping Drag Enabled (280):	1
	libinput Tapping Drag Enabled Default (281):	1
	libinput Tapping Drag Lock Enabled (282):	0
	libinput Tapping Drag Lock Enabled Default (283):	0
	libinput Accel Speed (284):	0.000000
	libinput Accel Speed Default (285):	0.000000
	libinput Natural Scrolling Enabled (286):	1
	libinput Natural Scrolling Enabled Default (287):	0
	libinput Send Events Modes Available (258):	1, 1
	libinput Send Events Mode Enabled (259):	0, 0
	libinput Send Events Mode Enabled Default (260):	0, 0
	libinput Left Handed Enabled (288):	0
	libinput Left Handed Enabled Default (289):	0
	libinput Scroll Methods Available (290):	1, 1, 0
	libinput Scroll Method Enabled (291):	1, 0, 0
	libinput Scroll Method Enabled Default (292):	1, 0, 0
	libinput Click Methods Available (293):	1, 1
	libinput Click Method Enabled (294):	1, 0
	libinput Click Method Enabled Default (295):	1, 0
	libinput Disable While Typing Enabled (296):	1
	libinput Disable While Typing Enabled Default (297):	1
	Device Node (261):	"/dev/input/event9"
	Device Product ID (262):	1739, 30941
	libinput Drag Lock Buttons (298):	<no items>
	libinput Horizonal Scroll Enabled (263):	1
[bts@cylon ~]$ xinput list-props "G2Touch Multi-Touch by G2TSP"
Device 'G2Touch Multi-Touch by G2TSP':
	Device Enabled (138):	1
	Coordinate Transformation Matrix (140):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Calibration Matrix (276):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Calibration Matrix Default (277):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Send Events Modes Available (258):	1, 0
	libinput Send Events Mode Enabled (259):	0, 0
	libinput Send Events Mode Enabled Default (260):	0, 0
	Device Node (261):	"/dev/input/event1"
	Device Product ID (262):	10900, 21473
	libinput Horizonal Scroll Enabled (263):	0


Available devices:
/dev/input/event0:	AT Translated Set 2 keyboard
/dev/input/event1:	G2Touch Multi-Touch by G2TSP
/dev/input/event2:	Lid Switch
/dev/input/event3:	ATIV Real HD Camera
/dev/input/event4:	Power Button
/dev/input/event5:	Power Button
/dev/input/event6:	PC Speaker
/dev/input/event7:	Video Bus
/dev/input/event8:	Video Bus
/dev/input/event9:	SYN2602:00 06CB:78DD Touchpad
/dev/input/event10:	HDA Intel PCH Mic
/dev/input/event11:	HDA Intel PCH Headphone
/dev/input/event12:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event13:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=8

[root@cylon tmp]# cat /sys/class/dmi/id/modalias
dmi:bvnAmericanMegatrendsInc.:bvrP05AFC.090.160215.SH:bd02/15/2016:svnSAMSUNGELECTRONICSCO.,LTD.:pn940Z5L:pvrP05AFC:rvnSAMSUNGELECTRONICSCO.,LTD.:rnNP940Z5L-X01US:rvrSGL8554A1N-C01-G001-S0001+10.0.10586:cvnSAMSUNGELECTRONICSCO.,LTD.:ct9:cvrN/A:



This is for a Samsung NP940Z5L-X01US ("ATIV Book9 Pro"). Regretfully I don't have a measuring device on me so I can't get the dimensions of the touchpad in mm (if there's a way to get this from dmidecode, etc. do let me know)
Comment 1 brent s. 2016-06-27 03:00:17 UTC
Created attachment 124732 [details]
event1's evemu record
Comment 2 brent s. 2016-06-27 03:00:45 UTC
Created attachment 124733 [details]
event9's evemu record
Comment 3 Peter Hutterer 2016-06-28 00:18:47 UTC
Comment on attachment 124733 [details]
event9's evemu record

marking as obsolete, this is an unrelated touchscreen device
Comment 4 brent s. 2016-06-28 00:21:08 UTC
(In reply to Peter Hutterer from comment #3)
> Comment on attachment 124733 [details]
> event9's evemu record
> 
> marking as obsolete, this is an unrelated touchscreen device

AHA! that makes sense. thank you for clarifying that confusion!
Comment 5 Peter Hutterer 2016-06-28 00:25:50 UTC
(In reply to brent s. from comment #1)
> Created attachment 124732 [details]
> event1's evemu record

The first event here may show the issue:

E: 0.000001 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
E: 0.000001 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1

This indicates that from the kernel's POV the device switched from single finger to two-fingers down. In libinput that usually stops pointer motion (depending on finger position it may start 2fg scrolling). Was this recording started with your fingers off the touchpad?

All other BTN_TOOL_FINGER events point at a potential hardware issue, whenever the device switches to single-finger down (FINGER is 1) it immediately switches to two fingers in the subsequent event (DOUBLETAP is 1). So we either have the hw not noticing that one finger was released or in-kernel tracking getting confused.
Comment 6 brent s. 2016-06-28 00:32:06 UTC
(In reply to Peter Hutterer from comment #5)
 > The first event here may show the issue:
> 
> E: 0.000001 0001 0145 0000	# EV_KEY / BTN_TOOL_FINGER      0
> E: 0.000001 0001 014d 0001	# EV_KEY / BTN_TOOL_DOUBLETAP   1
> 
> This indicates that from the kernel's POV the device switched from single
> finger to two-fingers down. In libinput that usually stops pointer motion
> (depending on finger position it may start 2fg scrolling). Was this
> recording started with your fingers off the touchpad?

Yes; i don't think I bumped into the pad or anything either with the heel of my thumb/palm. I tried to keep as far away from it as I could when starting. I can always generate another one via SSH and then try to reproduce while that's running so I can be sure I had no physical contact with the machine when starting, but it's fairly sporadic (though often) and a little bit difficult to reproduce intentionally.
 
> All other BTN_TOOL_FINGER events point at a potential hardware issue,
> whenever the device switches to single-finger down (FINGER is 1) it
> immediately switches to two fingers in the subsequent event (DOUBLETAP is
> 1). So we either have the hw not noticing that one finger was released or
> in-kernel tracking getting confused.

Hrm.. the hardware's fairly new (laptop was purchased/unboxed about two? three? weeks ago). That doesn't of course rule out faulty manufacturing but it does certainly make it being a hardware-level issue less likely, I'd presume.

Anything I can try to help narrow it down?
Comment 7 Peter Hutterer 2016-08-02 04:06:41 UTC
sorry, was on holidays and this fell under the radar.

try checking for this symptom, if it happens every single time then it's definitely hw related or a bug in the kernel. The device may simply need a quirk.
we do patch against faulty hw in libinput but in this case we'd have to put this into the kernel, the touchpad would otherwise be completely useless in any other userspace stack.

Have you tried Windows on that thing? did that work?
Comment 8 Peter Hutterer 2016-08-23 22:20:41 UTC
ping?
Comment 9 Peter Hutterer 2016-08-31 05:56:54 UTC
closing after too much silence. See comment #7, this is something that needs to be fixed in the kernel if we can fix it at all

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.