Bug 1212230 - three finger tap doesn't work with 4.1.x pre rc rawhide kernels.
Summary: three finger tap doesn't work with 4.1.x pre rc rawhide kernels.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Benjamin Tissoires
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1236425 1236540 1236642 1241685 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-04-16 00:02 UTC by Kevin Fenzi
Modified: 2015-07-18 09:40 UTC (History)
16 users (show)

Fixed In Version: kernel-4.0.8-200.fc21
Clone Of:
Environment:
Last Closed: 2015-07-18 01:54:47 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
3fg-tap evemu recording (5.70 KB, text/plain)
2015-04-16 00:12 UTC, Peter Hutterer
no flags Details
0001-Input-synaptics-pin-3-touches-when-the-firmware-repo.patch (1.87 KB, patch)
2015-04-16 17:18 UTC, Benjamin Tissoires
no flags Details | Diff

Description Kevin Fenzi 2015-04-16 00:02:26 UTC
With: kernel-4.1.0-0.rc0.git1.1.fc23.x86_64 or kernel-4.1.0-0.rc0.git2.1.fc23.x86_64
3 finger tapping no longer works. 

Works with kernel-4.0.0-1.fc23.x86_64

Comment 1 Peter Hutterer 2015-04-16 00:12:42 UTC
Created attachment 1014953 [details]
3fg-tap evemu recording

Evemu recording showing the issue (from Bug 1209151, see also attachment 1014925 [details]).

With the new kernel tracking, the touchpad now claims it has 3 slots instead of 2 (hw only does 2). In the second frame, the kernel opens another slot for the jumping touch when the third finger is down, but closes slot 1. So we now have two slots active, but BTN_TOOL_TRIPLETAP is set.

What libinput sees is one touch disappearing and another one starting in the same frame, i.e. you go from 2 touches to 2 touches. libinput ignores BTN_TOOL_* for any number less than num_slots.

That's a regression in the kernel IMO, we always relied on the BTN_TOOL_* only to be set when the matching number of slots is open too (where supported by the HW). Synaptics would likely break with this too.

We can't work around the event sequence either, we must handle the above behaviour on clickpads where users may lift the index finger in the same frame as they are putting their thumb down to physically click. synaptics used to have a bug where it would wrongly trigger a two-finger click in that case. So now we have the code counting only active touches at SYN_REPORT time.

Benjamin already has a good idea on how to fix this in the kernel though.

Comment 2 Benjamin Tissoires 2015-04-16 17:18:18 UTC
Created attachment 1015305 [details]
0001-Input-synaptics-pin-3-touches-when-the-firmware-repo.patch

Proposed patch to fix the issue.

I am not a pro of the tap to click, so I'd like to get some more feedback before submitting this upstream. You can find a scratch build here with the patch applied:
http://koji.fedoraproject.org/koji/taskinfo?taskID=9494204

Comment 3 Benjamin Tissoires 2015-04-16 17:26:40 UTC
Grmbl... I messed up with the arches for the scratch build. The new one:
http://koji.fedoraproject.org/koji/taskinfo?taskID=9494269

Comment 4 Kevin Fenzi 2015-04-16 19:31:18 UTC
3 finger tap works again with that scratch built kernel. :) 

thanks.

Comment 5 Josh Boyer 2015-04-17 13:31:49 UTC
Patch added to 4.1.0-0.rc0.git7.1.fc23.  Thanks!

Comment 6 Benjamin Tissoires 2015-04-22 15:48:12 UTC
FWIW, patch submitted upstream: https://patchwork.kernel.org/patch/6256771/

Comment 7 Kevin Fenzi 2015-05-12 02:58:50 UTC
This seems to be back with 4.1.0-0.rc3.git0.1.fc23.x86_64.

:( Happy to provide more info...

Comment 8 Benjamin Tissoires 2015-05-12 15:37:04 UTC
(In reply to Kevin Fenzi from comment #7)
> This seems to be back with 4.1.0-0.rc3.git0.1.fc23.x86_64.

That is weird. The patch that fixes this is still in this particular kernel, so either there is something else in the kernel which prevents the triple tap to be seen or libinput failed to recognize it.

Can you attach a new evemu-recording of the misrecognized gesture with the updated kernel?

Comment 9 Kevin Fenzi 2015-05-12 19:44:36 UTC
ok. I swear it wasn't working, but rebooted to the latest kernel and now it is. :( 

Sorry for the noise.

Comment 10 Josh Boyer 2015-06-11 18:47:30 UTC
I've added the various patches for this issue to the f21 and f22 trees now as well.

Comment 11 Fedora Update System 2015-06-23 20:22:41 UTC
kernel-4.0.6-300.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/kernel-4.0.6-300.fc22

Comment 12 Fedora Update System 2015-06-23 20:23:11 UTC
kernel-4.0.6-200.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/kernel-4.0.6-200.fc21

Comment 13 Fedora Update System 2015-06-27 12:39:21 UTC
kernel-4.0.6-300.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2015-06-30 20:12:40 UTC
kernel-4.0.6-200.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Peter Hutterer 2015-07-02 05:40:56 UTC
sigh, Josh, please revert the three patches, they trigger a regression, see bug 1236540.

If the fingers are close together, the touchpad still sends two touches but the ABS_MT_SLOT event is missing now. Can be reproduced quite easily on a T440s.
Actual trigger is the first patch, but I'll let Benjamin figure out what to do with the other two.

The patches are
Patch26238: Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch
Patch26239: Input-synaptics-allocate-3-slots-to-keep-stability-i.patch
Patch26240: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch

Thanks.

Comment 16 Peter Hutterer 2015-07-02 05:42:00 UTC
*** Bug 1236540 has been marked as a duplicate of this bug. ***

Comment 17 Peter Hutterer 2015-07-06 21:48:51 UTC
*** Bug 1236642 has been marked as a duplicate of this bug. ***

Comment 18 Josh Boyer 2015-07-07 13:04:33 UTC
(In reply to Peter Hutterer from comment #15)
> sigh, Josh, please revert the three patches, they trigger a regression, see
> bug 1236540.
> 
> If the fingers are close together, the touchpad still sends two touches but
> the ABS_MT_SLOT event is missing now. Can be reproduced quite easily on a
> T440s.
> Actual trigger is the first patch, but I'll let Benjamin figure out what to
> do with the other two.
> 
> The patches are
> Patch26238: Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch
> Patch26239: Input-synaptics-allocate-3-slots-to-keep-stability-i.patch
> Patch26240: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch

I've commented them out in the spec so they are no longer applied.  If there are alternative patches, we can add those.

Comment 19 Peter Hutterer 2015-07-09 21:56:35 UTC
*** Bug 1241685 has been marked as a duplicate of this bug. ***

Comment 20 Fedora Update System 2015-07-11 01:05:57 UTC
kernel-4.0.8-200.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/kernel-4.0.8-200.fc21

Comment 21 Fedora Update System 2015-07-14 15:45:33 UTC
Package kernel-4.0.8-200.fc21:
* should fix your issue,
* was pushed to the Fedora 21 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing kernel-4.0.8-200.fc21'
as soon as you are able to, then reboot.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2015-11589/kernel-4.0.8-200.fc21
then log in and leave karma (feedback).

Comment 22 Benjamin Tissoires 2015-07-16 21:59:40 UTC
*** Bug 1236425 has been marked as a duplicate of this bug. ***

Comment 23 Fedora Update System 2015-07-18 01:54:47 UTC
kernel-4.0.8-200.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 24 Mikhail Fokin 2015-07-18 09:40:43 UTC
On my Lenovo T440 with Fedora 22, problem solved.
Thank you.


Note You need to log in before you can comment on or make changes to this bug.