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, contact.han, dmitry.torokhov, f_bugzilla, gasmelt+kernelorg, info, jb.kernel, jeremy9856, johannes.w.seitz, kai.heng.feng, peter.hutterer, thomas
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 4.12.7 Subsystem:
Regression: No Bisected commit-id:
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]
attachment-22902-0.html

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 ?
Comment 13 paviluf 2020-07-31 13:02:29 UTC
I have the same problem on my Thinkpad x240 with Ubuntu 20.04

Linux E5450 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

This kernel parameter workaround "psmouse.synaptics_intertouch=0" work in the meantime (forever since it's 3 years old bug ??)
Comment 14 Han 2020-11-02 19:31:08 UTC
I can confirm this is still very much an issue on elementary 6 based on Ubuntu LTS 20.04, also includes jittering and jumping every so often even with the kernel peramiter workaround mentioned in other comments
Comment 15 Justin Busby 2020-12-28 12:29:48 UTC
I've submitted a fix to the input maintainers. I've been running this since the 23rd and it seems to be fine. No need to pass any params to the driver to change the protocol or anything like that.

It's yet to be reviewed but since it's a single line change I'd hope it'll get look at at some point soon.

You can test the patch yourself in your own build.

https://patchwork.kernel.org/project/linux-input/patch/1e2e981b-05af-43a7-bdfe-424d8783d28f@www.fastmail.com/
Comment 16 Han 2020-12-28 13:00:18 UTC
Created attachment 294373 [details]
attachment-28066-0.html

I'm also experiencing periodic jitteryness of the touchpad tracking, but I've no clue as to how to reproduce it. It seeming starts at random, and causes any sort of tracking to make the cursor jump vertically (oddly never horizontally) while being moved. This may be a hardware issue, but since I'm unable to test the patch I will have to try it when it gets merged.

28 Aralık 2020 Pazartesi tarihinde, 12:29 saatinde, bugzilla-daemon@bugzilla.kernel.org şöyle yazmış:
> https://bugzilla.kernel.org/show_bug.cgi?id=196719
> 
> Justin Busby (jb.kernel@fastmail.com) changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |jb.kernel@fastmail.com
> 
> --- Comment #15 from Justin Busby (jb.kernel@fastmail.com) ---
> I've submitted a fix to the input maintainers. I've been running this since
> the
> 23rd and it seems to be fine. No need to pass any params to the driver to
> change the protocol or anything like that.
> 
> It's yet to be reviewed but since it's a single line change I'd hope it'll
> get
> look at at some point soon.
> 
> You can test the patch yourself in your own build.
> 
>
> https://patchwork.kernel.org/project/linux-input/patch/1e2e981b-05af-43a7-bdfe-424d8783d28f@www.fastmail.com/
> 
> -- 
> You may reply to this email to add a comment.
> 
> You are receiving this mail because:
> You are on the CC list for the bug.
Comment 17 Justin Busby 2020-12-28 13:08:09 UTC
I sometimes get the jitter too but I've yet to find a reliable way to reproduce it. 

I also get low speed jitter where the packets reported to the interrupt handler don't have new x and y coords but the pressure is changing. This results in jerkiness at very low speed which I can reliably reproduce.

This looks to some extent like h/w (or rather touchpad firmware) but i need to work my way down the input stack to convince myself of that yet.

I'm trying to work through touchpad related stuff this week as i have some spare time. I'll update if i get anywhere.
Comment 18 paviluf 2021-01-09 09:42:31 UTC
I don't know if it's related to the jitter you experience but with these tweaks the cursor is really precise now (read both issue as they are related)

https://gitlab.freedesktop.org/libinput/libinput/-/issues/521
https://gitlab.freedesktop.org/libinput/libinput/-/issues/537
Comment 19 Han 2021-01-10 09:50:59 UTC
2021-01-09 (土) の 09:42 +0000 に bugzilla-daemon@bugzilla.kernel.org
さんは書きました:
> https://bugzilla.kernel.org/show_bug.cgi?id=196719
> 
> --- Comment #18 from paviluf (jeremy9856@gmail.com) ---
> I don't know if it's related to the jitter you experience but with
> these tweaks
> the cursor is really precise now (read both issue as they are
> related)
> 
> https://gitlab.freedesktop.org/libinput/libinput/-/issues/521
> https://gitlab.freedesktop.org/libinput/libinput/-/issues/537
> 

This seem to have fixed the issue for me, but the standing issue that
it is unusable without any modification. The average user would not
bother finding out what a GRUB config is or how to add kernel boot
perameters. Doing these sorts of things so that their touchpad (and
trackpoint) doesn't permenantly fail after they wake their laptop is
not an option.

As for the libinput modifications you made in your PR, have they been
added to the systemd source? Would that fix the jitter issues for other
users out-of-the-box?
Comment 20 paviluf 2021-01-10 20:05:54 UTC
The libinput modifications I made have been merge to systemd