Bug 102206

Summary: kernel: Swipe and pinch gestures non-functional on Lenovo P51 and P71
Product: Wayland Reporter: Benjamin Berg <benjamin>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: medium CC: benjamin.tissoires, peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: bundle with evemu logs

Description Benjamin Berg 2017-08-14 09:30:00 UTC
I noticed that while most operations work just fine on the P72/P51 the swipe and pinch gestures seem to be really hard to trigger.

The reported size and input range of touchpad in question seems to be reasonable:

15:47:32 INFO | Reported X range for Touchpad from 1266 to 5676 (resolution 45, size 98.0000mm).
15:47:32 INFO | User X range for Touchpad from 1265 to 5677 (resolution 43, size 101.0000mm).
15:47:32 INFO | Reported Y range for Touchpad from 1094 to 4762 (resolution 69, size 53.1594mm).
15:47:32 INFO | User Y range for Touchpad from 1093 to 4832 (resolution 67, size 55.0000mm).

I'll attach an evemu dump in a bit.

libinput-list-devices:

Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event6
Group:            8
Seat:             seat0, default
Size:             98x53mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    none
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a


udevadm info -e:

P: /devices/platform/i8042/serio1/input/input5
E: ABS=660800011000003
E: DEVPATH=/devices/platform/i8042/serio1/input/input5
E: EV=b
E: ID_BUS=i8042
E: ID_FOR_SEAT=input-platform-i8042-serio-1
E: ID_INPUT=1
E: ID_INPUT_TOUCHPAD=1
E: ID_PATH=platform-i8042-serio-1
E: ID_PATH_TAG=platform-i8042-serio-1
E: KEY=e520 670000 0 0 0 0
E: MODALIAS=input:b0011v0002p0007e01B1-e0,1,3,k110,111,112,115,116,145,148,14A,14D,14E,14F,ra0,1,18,1C,2F,35,36,39,3A,mlsfw
E: NAME="SynPS/2 Synaptics TouchPad"
E: PHYS="isa0060/serio1/input0"
E: PRODUCT=11/2/7/1b1
E: PROP=1
E: SUBSYSTEM=input
E: TAGS=:seat:
E: USEC_INITIALIZED=3830367

P: /devices/platform/i8042/serio1/input/input5/event6
N: input/event6
E: DEVNAME=/dev/input/event6
E: DEVPATH=/devices/platform/i8042/serio1/input/input5/event6
E: ID_BUS=i8042
E: ID_INPUT=1
E: ID_INPUT_HEIGHT_MM=53
E: ID_INPUT_TOUCHPAD=1
E: ID_INPUT_TOUCHPAD_INTEGRATION=internal
E: ID_INPUT_WIDTH_MM=98
E: LIBINPUT_DEVICE_GROUP=11/2/7/1b1:isa0060/serio1
E: LIBINPUT_MODEL_SYNAPTICS_SERIAL_TOUCHPAD=1
E: MAJOR=13
E: MINOR=70
E: SUBSYSTEM=input
E: USEC_INITIALIZED=3967373

P: /devices/platform/i8042/serio1/input/input5/mouse0
N: input/mouse0
E: DEVNAME=/dev/input/mouse0
E: DEVPATH=/devices/platform/i8042/serio1/input/input5/mouse0
E: ID_BUS=i8042
E: ID_INPUT=1
E: ID_INPUT_TOUCHPAD=1
E: MAJOR=13
E: MINOR=32
E: SUBSYSTEM=input
E: USEC_INITIALIZED=3833782
Comment 1 Benjamin Berg 2017-08-14 09:40:29 UTC
The kernel in question was 4.11.11-300.fc26.x86_64.
Comment 2 Benjamin Berg 2017-08-14 10:55:35 UTC
Created attachment 133482 [details]
bundle with evemu logs

This should be:
 * swipes down with 3 fingers
 * swipes up with 3 fingers
 * swipes right with 3 fingers
 * swipes left with 3 fingers
 * pinching

in this order. I am not entirely sure why there are 6 logs :-/
Comment 3 Peter Hutterer 2017-08-28 03:43:16 UTC
Just looking at the evemu output here:
Output from one of my scripts that tracks per-touch finger motion. +++ and --- are touch down/up, respectively:

Tracking 2 slots
 0.000001:    +++    | ********* | 
 0.038187:    ---    |    +++    | 
 0.057268: ********* |    0/   0 | 
 0.088401: ********* |   -8/  88 | 
 0.113404: ********* |   -8/ 180 | 
 0.138510: ********* |   -8/ 240 | 
 0.163764: ********* |   12/ 280 | 
 0.188029: ********* |   24/ 296 | 
 0.213214: ********* |   40/ 284 | 
 0.238190: ********* |   36/ 244 | 
 0.263331: ********* |   32/ 200 | 
 0.299347: ********* |    ---    | 
 0.475410:    +++    | ********* | 
 0.550759:   -4/  24 | ********* | 
 0.575862:   -4/ 112 | ********* | 
 0.600944:   20/ 196 | ********* | 
 0.625292:   32/ 236 | ********* | 
 0.650537:   28/ 244 | ********* | 
 0.675749:   20/ 268 | ********* | 
 0.700946:    8/ 272 | ********* | 
 0.725145:    8/ 244 | ********* | 
 0.750281:    4/ 220 | ********* | 
 0.775438:    8/ 192 | ********* | 
 0.800456:    4/ 160 | ********* | 
 0.823522:    ---    | ********* | 



> in this order. I am not entirely sure why there are 6 logs :-/

last one is an empty recording, that's normal when using --autorestart.

The log ending with :23 (pinching) has some useful data, but it runs into the issue that we bias heavily towards 2fg scrolling on touchpads that only support 2 fingers (of which this is one). Try a 4.12 kernel and see if this touchpad is supported through rmi4 - then we'd get 5 slots and can do better gesture detection.
Comment 4 Benjamin Berg 2017-08-29 15:47:34 UTC
This was on a Fedora 26 with kernel 4.11.11-300. However, it seems like the situation is still the same with Fedora 26 and kernel 4.12.8-300.

Aha:
[    2.099538] psmouse serio1: synaptics: Your touchpad (PNP: LEN005f PNP0f13) says it can support a different bus. If i2c-hid and hid-rmi are not used, you might want to try setting psmouse.synaptics_intertouch to 1 and report this to linux-input@vger.kernel.org.

/me sets the option and reboots

And, still not using SMBus :-/
[    1.999715] psmouse serio1: synaptics: Trying to set up SMBus access
[    2.002534] psmouse serio1: synaptics: SMbus companion is not ready yet

Looks I need to look into this more later.
Comment 5 Benjamin Berg 2017-08-29 17:23:52 UTC
For the record. On the P71 I am seeing with 4.12.8:

[    1.994517] psmouse serio1: synaptics: Your touchpad (PNP: LEN001e PNP0f13) says it can support a different bus. If i2c-hid and hid-rmi are not used, you might want to try setting psmouse.synaptics_intertouch to 1 and report this to linux-input@vger.kernel.org.
[    2.055713] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.2, id: 0x1e2b1, caps: 0xf405a3/0x940300/0x2e800/0x400000, board id: 3149, fw id: 2517820
Comment 6 Peter Hutterer 2017-09-05 03:08:15 UTC
Have you tried setting psmouse.synaptics_intertouch?
Comment 7 Benjamin Berg 2017-09-05 09:17:17 UTC
Yes, with the option I got the messages about the SMBus companion not being ready.

Unfortunately we need to send back the hardware this week, so I don't think that I can look into the issue more for a while at least.
Comment 8 Peter Hutterer 2017-09-20 00:27:23 UTC
I'm going to just punt this to the kernel. Until we get RMI4 working properly on these, the chance of fixing this issue is unlikely.

Given comment 7 I'm going to close this because leaving it open without having access to hardware is a bit pointless.

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.