Bug 196719

Summary: SynPS/2 Synaptics TouchPad looses two finger scrolling after wake from suspend
Product: Drivers Reporter: Johannes Seitz (johannes.w.seitz)
Component: Input DevicesAssignee: drivers_input-devices
Status: NEW ---    
Severity: normal CC: admin, admin, benh, benjamin.tissoires, bjo, dmitry.torokhov, f_bugzilla, gasmelt+kernelorg, info, johannes.w.seitz, kai.heng.feng, peter.hutterer, thomas
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 4.12.7 Tree: Mainline
Regression: No
Attachments: attachment-22902-0.html

Description Johannes Seitz 2017-08-21 13:09:18 UTC
After updating to Kernel Version 4.12.7 and again with 4.12.8 two finger scrolling stops working every time my Thinkpad T431s wakes from suspend. With kernel version 4.12.6 and 4.9.44 (LTS) everything works, so I suppose it's an issue with the kernel/driver.

The Trackpad is listed as "SynPS/2 Synaptics" when I do a `libinput list-devices`. I'm using the standard pre-compiled, current kernel package from Arch x64 (package `linux`). Do you need anything else from me? Any log files that would be helpful?

Thanks! Johannes
Comment 1 Johannes Seitz 2017-08-21 13:14:18 UTC
Correction: The latest mainline kernel that worked for me was 4.11.9 and *not* 4.12.6. Sorry!
Comment 2 Thomas Bächler 2017-08-21 19:56:47 UTC
I have the same problem with a Thinkpad T440s. What's interesting is that scrolling still works, but now requires 3 fingers instead of 2.
Comment 3 Johannes Seitz 2017-08-22 09:25:18 UTC
Created attachment 258041 [details]

I just tried to reproduce this. Same here! It works with three fingers
instead of two. This is so weird!

On 21 August 2017 at 21:56, <bugzilla-daemon@bugzilla.kernel.org> wrote:

> https://bugzilla.kernel.org/show_bug.cgi?id=196719
> Thomas Bächler (thomas@archlinux.org) changed:
>            What    |Removed                     |Added
> ------------------------------------------------------------
> ----------------
>                  CC|                            |thomas@archlinux.org
> --- Comment #2 from Thomas Bächler (thomas@archlinux.org) ---
> I have the same problem with a Thinkpad T440s. What's interesting is that
> scrolling still works, but now requires 3 fingers instead of 2.
> --
> You are receiving this mail because:
> You are on the CC list for the bug.
> You reported the bug.
Comment 4 Dmitry Torokhov 2017-08-23 18:49:39 UTC
Is it still shown as "SynPS/2 Synaptics" in 4.12 or became "Synaptics TM3289-002" or similar? I.e. did it switch over to RMI from PS/2? Can you try vanilla 4.12?
Comment 5 Johannes Seitz 2017-08-26 13:46:29 UTC
It did not change, it's still listed as follows:

Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event15
Group:            7
Seat:             seat0, default
Size:             97x67mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a
Comment 6 Dmitry Torokhov 2017-08-28 21:21:44 UTC
Here are the changes that went into Synaptics PS/2 driver:

git log --oneline v4.11.9..v4.12.7 -- drivers/input/mouse/synaptics.c
2fef826e45c6 Input: synaptics - tell users to report when they should be using rmi-smbus
f4101ff87daf Input: synaptics - warn the users when there is a better mode
f4947d79a708 Input: synaptics - keep PS/2 around when RMI4_SMB is not enabled
2755551188d2 Input: synaptics - clear device info before filling in
f6c4442bfa08 Input: synaptics - use u8 instead of unsigned char
212baf03a30a Input: synaptics - do not abuse -1 as return value
991d29fe02a7 Input: synaptics - use BIT() and GENMASK() macros
2c6ecbba90d4 Input: synaptics - add synaptics_query_int()
e839ffab0289 Input: synaptics - add support for Intertouch devices
6c53694fb222 Input: synaptics - split device info into a separate structure
996b9eedd061 Input: synaptics - do not mix logical and bitwise operations

The one I'd looked closer at is "991d29fe02a7 Input: synaptics - use BIT() and GENMASK() macros"> Can you try reverting them one by one and see which one is at fault?
Comment 7 Kai-Heng Feng 2017-11-15 09:19:01 UTC
There's another report at Launchpad [1].

The bisection result says e839ffab028981ac77f650faf8c84f16e1719738 is the first bad commit.

[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1722478
Comment 8 Furkan 2018-07-02 17:56:34 UTC
This bug is still present on 4.15.0 (Ubuntu 18.04). I haven't tested mainline yet.

I am working around the issue with the kernel parameter "psmouse.synaptics_intertouch=0", so that also seems to confirm that the offending commit is e839ffab0289 (CC'ing Benjamin).
Comment 9 VonChair 2019-03-15 02:51:31 UTC
I can confirm this issue is still present in 18.04 with a new model W540. If anyone wants me to provide any info, please let me know what you would like. Will be glad to help.
Comment 10 Kai-Heng Feng 2019-03-15 03:43:37 UTC
Try removing "blacklist i2c_i801" from /etc/modprobe.d/blacklist.conf.
Comment 11 VonChair 2019-03-16 03:08:56 UTC
Thanks for the tip Kai-Heng Feng. It appears this resolves the issue thus far with the two finger click issue, but it seems not to recognize the two finger scroll still however I think that should probably be a different issue.
Comment 12 Benjamin Herrenschmidt 2020-02-26 07:20:48 UTC
The bug is still present in 5.3 (from Ubuntu). I haven't had a chance to check upstream yet. Is any maintainer monitoring this ?