Bug 95417

Summary: Disable edge palm detection during 2fg scrolling
Product: Wayland Reporter: Ignacio Casal Quinteiro <nacho.resa>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: hello, nacho.resa, peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 103208    
Attachments: evemu log

Description Ignacio Casal Quinteiro 2016-05-16 07:03:10 UTC
With the new f24 two finger scrolling is kind of mandatory for now since before I was using the edge scrolling and you managed to get it working perfectly for me. Instead I realized that one of the annoying things from two finger scrolling is that if one of the fingers is on the edge of the touchpad it will not scroll at all, instead it will behave like if you were not doing anything. See attached log.
Comment 1 Ignacio Casal Quinteiro 2016-05-16 07:16:38 UTC
Created attachment 123766 [details]
evemu log

Attached can be found the log.
Comment 2 Peter Hutterer 2016-05-16 23:47:14 UTC
cause here is that the second finger is detected as palm. Having palm detection enabled during two-finger scroll is probably a mistake.
Comment 3 Peter Hutterer 2016-05-24 23:33:17 UTC
can you verify the touchpad size as 80x44mm? if not, please run the touchpad-edge-detector tool and let me know the physical size. I'm wondering if we need size-restrictions for any behaviour changes here (it's not likely you'll get into the edge zone on a large touchpad)
Comment 4 Ignacio Casal Quinteiro 2016-05-25 06:26:02 UTC
This is what the tool says:

[nacho@winterfell ~]$ sudo touchpad-edge-detector /dev/input/event6 
Touchpad AlpsPS/2 ALPS DualPoint TouchPad on /dev/input/event6
Move one finger around the touchpad to detect the actual edges
Kernel says:	x [0..2000], y [0..1400]
Touchpad sends:	x [0..1960], y [113..1436] /^C

Touchpad size as listed by the kernel: 80x43mm
Calculate resolution as:
	x axis: 2000/<width in mm>
	y axis: 1400/<height in mm>

Suggested udev rule:
# <Laptop model description goes here>
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvnDellInc.:bvrA14:bd08/19/2015:svnDellInc.:pnPrecisionM4700:pvr01:rvnDellInc.:rn082H3V:rvrA00:cvnDellInc.:ct9:cvr:*
 EVDEV_ABS_00=0:1960:<x resolution>
 EVDEV_ABS_01=113:1436:<y resolution>
 EVDEV_ABS_35=0:1960:<x resolution>
 EVDEV_ABS_36=113:1436:<y resolution>
Comment 5 Peter Hutterer 2016-05-25 07:33:01 UTC
what's the real size? :)
Comment 6 Ignacio Casal Quinteiro 2016-05-25 07:42:34 UTC
It should be something like: 84x47mm
I thought this was set more accurate in the kernel... :)
Comment 7 Peter Hutterer 2016-05-30 05:51:13 UTC
save this below as a separate .hwdb file. look at the 60-evdev.hwdb file for instructions on what to do with this then.

evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnDellInc.:pnPrecisionM4700*
 EVDEV_ABS_00=0:1960:24
 EVDEV_ABS_01=113:1436:30
 EVDEV_ABS_35=0:1960:24
 EVDEV_ABS_36=113:1436:30

once the hwdb applies reboot and see if that changes the resolution to 24/30 in evemu-describe. Note it won't fix the bug but it should bring the real vs kernel-reported ranges in line
Comment 8 Ignacio Casal Quinteiro 2016-05-30 06:57:29 UTC
Seems to have changed:

# EVEMU 1.3
# Kernel: 4.5.5-300.fc24.x86_64
# DMI: dmi:bvnDellInc.:bvrA14:bd08/19/2015:svnDellInc.:pnPrecisionM4700:pvr01:rvnDellInc.:rn082H3V:rvrA00:cvnDellInc.:ct9:cvr:
# Input device name: "AlpsPS/2 ALPS DualPoint TouchPad"
# Input device ID: bus 0x11 vendor 0x02 product 0x08 version 0x310
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 273 (BTN_RIGHT)
#     Event code 274 (BTN_MIDDLE)
#     Event code 325 (BTN_TOOL_FINGER)
#     Event code 330 (BTN_TOUCH)
#     Event code 333 (BTN_TOOL_DOUBLETAP)
#     Event code 334 (BTN_TOOL_TRIPLETAP)
#     Event code 335 (BTN_TOOL_QUADTAP)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value   1191
#       Min        0
#       Max     1960
#       Fuzz       0
#       Flat       0
#       Resolution 24
#     Event code 1 (ABS_Y)
#       Value    184
#       Min      113
#       Max     1436
#       Fuzz       0
#       Flat       0
#       Resolution 30
#     Event code 24 (ABS_PRESSURE)
#       Value      0
#       Min        0
#       Max      127
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 47 (ABS_MT_SLOT)
#       Value      0
#       Min        0
#       Max        3
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value      0
#       Min        0
#       Max     1960
#       Fuzz       0
#       Flat       0
#       Resolution 24
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value      0
#       Min      113
#       Max     1436
#       Fuzz       0
#       Flat       0
#       Resolution 30
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value      0
#       Min        0
#       Max    65535
#       Fuzz       0
#       Flat       0
#       Resolution 0
# Properties:
#   Property  type 0 (INPUT_PROP_POINTER)
#   Property  type 3 (INPUT_PROP_SEMI_MT)
N: AlpsPS/2 ALPS DualPoint TouchPad
I: 0011 0002 0008 0310
P: 09 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 07 00 00 00 00 00
B: 01 20 e4 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 01 00 80 60 02
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 1960 0 0 24
A: 01 113 1436 0 0 30
A: 18 0 127 0 0 0
A: 2f 0 3 0 0 0
A: 35 0 1960 0 0 24
A: 36 113 1436 0 0 30
A: 39 0 65535 0 0 0
Comment 9 Peter Hutterer 2016-06-16 00:25:10 UTC
commit 7860a9ed77b4dea37570e871552566f86df75e11
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 13 16:41:43 2016 +1000

    touchpad: stop palm detection when a second finger is detected
Comment 10 Peter Hutterer 2016-07-18 01:36:48 UTC
*** Bug 96889 has been marked as a duplicate of this bug. ***

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.