Bug 104091

Summary: kernel: Touchpad not recognized as clickpad, HP Stream 11 d077nr
Product: Wayland Reporter: Jamie Macdonald <jamie.alban>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED NOTOURBUG QA Contact:
Severity: normal    
Priority: medium CC: benjamin.tissoires, peter.hutterer
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=97147
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 97147    
Bug Blocks:    
Attachments: libinput list-devices
evemu-record > two-finger-click.evemu
udevadm info /dev/input/event8 > udevadm.info
/sys/class/dmi/id/modalias
sudo touchpad-edge-detector 96x56 /dev/input/event8
Patch to force this model to clickpad
dmesg

Description Jamie Macdonald 2017-12-05 01:49:59 UTC
Created attachment 135957 [details]
libinput list-devices

libinput version 1.9.3
Comment 1 Jamie Macdonald 2017-12-05 01:52:38 UTC
Created attachment 135958 [details]
evemu-record > two-finger-click.evemu

BTN_LEFT event
Comment 2 Jamie Macdonald 2017-12-05 01:54:17 UTC
Created attachment 135959 [details]
udevadm info /dev/input/event8 > udevadm.info
Comment 3 Jamie Macdonald 2017-12-05 01:55:24 UTC
Created attachment 135960 [details]
/sys/class/dmi/id/modalias
Comment 4 Jamie Macdonald 2017-12-05 02:02:42 UTC
Related (marked 'fixed' about a year ago): https://bugs.freedesktop.org/show_bug.cgi?id=97147

Behaviour is that the clickpad when depressed sends Left Click regardless of where on the clickpad is clicked, and how many fingers are touching it. Current workaround to right click is enabling tap-to-click, then two finger tap sends right click.

I am running Arch Linux, gnome-shell with wayland, and libinput 1.9.3. Attached are some diagnostic informations.
Comment 5 Jamie Macdonald 2017-12-05 09:21:47 UTC
Created attachment 135962 [details]
sudo touchpad-edge-detector 96x56 /dev/input/event8

sudo touchpad-edge-detector 96x56 /dev/input/event9
Comment 6 Jamie Macdonald 2017-12-05 09:29:55 UTC
Created attachment 135963 [details] [review]
Patch to force this model to clickpad

I followed the pattern at https://bugs.freedesktop.org/show_bug.cgi?id=97147

After patching, the device is now on /dev/input/event9, and when I issue `libinput list-devices`, before the results it reads:

"libinput error: event9  - Synaptics TM2976-002: libinput error: kernel bug: clickpad advertising right button ..."

And it is behaving like a clickpad with areas emulating left, middle, right buttons. This fixes the issue. Is it the best way? idk.
Comment 7 Peter Hutterer 2017-12-08 01:05:57 UTC
still a kernel issue but the device name changed since the last patch. I guess something in the kernel now assigns slightly nicer device names. Benjamin, good for me to push this to the hwdb or do we need some kernel fix here?

Jamie: please attach a dmesg, thanks
Comment 8 Benjamin Tissoires 2017-12-08 08:09:06 UTC
So the name changed appeared in kernel v4.11 when we switched hid-rmi to be just a transport driver for rmi4-core.

There is a patch in kernel v4.14 that has a lot of chances to fix your issue:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/input/rmi4/rmi_f30.c?id=3e64fcbdbd10e46dede502d507dbcc104837cd59

Si I think this should be fixed in v4.14 and later, but we will still need the rule for v4.11-v4.13. If the patch I mentioned fixes the issue, we could request this patch to go in stable. There was no other change in this file since v4.11.

Could you please report if a v4.14 with a non patched libinput fixes the issue?
Comment 9 Jamie Macdonald 2017-12-08 22:04:23 UTC
aha, this bug report was with Linux version 4.13.12-1-ARCH. I'll update to 4.14 now, and report back!
Comment 10 Jamie Macdonald 2017-12-08 22:20:08 UTC
updated to Linux 4.14, and unpatched libinput identifies this as a clickpad now! woohoo ^^ thanks for your help
Comment 11 Jamie Macdonald 2017-12-08 22:20:55 UTC
Created attachment 136054 [details]
dmesg

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.