Bug 91352

Summary: Fix 3 buttons tap for Synaptics devices since kernel 4.0
Product: Wayland Reporter: Benjamin Tissoires <benjamin.tissoires>
Component: libinputAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 91398    

Description Benjamin Tissoires 2015-07-15 18:01:43 UTC
Kernel 4.0 introduced a different processing for Synaptics PS/2 devices:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/input/mouse/synaptics.c?id=e9e8520f229bd6881b51d03c010df6c0312bfef8

This commit introduced a different behavior when dropping a third finger on the sensor (see also https://lkml.org/lkml/2015/6/11/487):

When we have 2 fingers and when we drop a third, the sequence is the following:

(slot 0 contains a touch in 200,2000 and slot 1 an other in 3000,3000):
ABS_MT_SLOT          0
ABS_MT_POSITION_X    4000
ABS_MT_POSITION_Y    4000
ABS_MT_PRESSURE      78
ABS_MT_SLOT          1
ABS_MT_TRACKING_ID   -1

ABS_X                4000
ABS_Y                4000
ABS_PRESSURE         78
BTN_TOOL_DOUBLETAP   0
BTN_TOOL_TRIPLETAP   1
--- SYN_REPORT (0) ----------
ABS_MT_SLOT          0
ABS_MT_POSITION_X    4000
ABS_MT_POSITION_Y    4000
ABS_MT_PRESSURE      78
ABS_MT_SLOT          1
ABS_MT_TRACKING_ID   55
ABS_MT_POSITION_X    2000
ABS_MT_POSITION_Y    2000
ABS_MT_PRESSURE      72

ABS_X                4000
ABS_Y                4000
ABS_PRESSURE         78
--- SYN_REPORT (0) ----------

----- 3 fingers release -----

--- SYN_REPORT (0) ----------
ABS_MT_SLOT          0
ABS_MT_TRACKING_ID   -1
ABS_MT_SLOT          1
ABS_MT_TRACKING_ID   -1

BTN_TOUCH            0
ABS_PRESSURE         0
BTN_TOOL_TRIPLETAP   0
--- SYN_REPORT (0) ----------

We thus get a slot release when BTN_TOOL_TRIPLETAP is set to one.

For Synaptics devices reporting in PS/2 mode, we should have a special case where we ignore the release of the slot when TRIPLETAP is set and DOUBLETAP is unset.
Comment 1 Peter Hutterer 2015-07-20 06:23:45 UTC
*** Bug 91398 has been marked as a duplicate of this bug. ***
Comment 3 Peter Hutterer 2015-07-23 02:05:17 UTC
commit cbde0894ee7f65f5d948977f527b99926fcf8f64
Merge: fbc9be1 a87d51f
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 23 10:34:03 2015 +1000

    Merge branch 'serial-synaptics-cursor-jump'

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.