kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #63778
[Bug 1245328] Re: Synaptics kernel driver does not report finger width information, breaking usermode driver's palm detection
Ah, I see now that there are several points at which it could return
early and not reach the ABS_TOOL_WIDTH code.
I tried out your little patch to force the width to be reported and
captured evtest output during a session of normal computer use. First, I
noticed that still the width was not always reported, though it seemed
to be reported most often when I brushed my palm against the pad.
Secondly, I wanted to test the claim that it is not meaningful to report
pressure and width simultaneously so I parsed out the (width, pressure)
pairs from evtest and plotted them. While there is a positive
correlation between the two, it is definitely possible to have low
pressure/high width touches and vice versa.
Here are my data if you are curious:
https://gist.github.com/silverhammermba/43abb0fde7b17d557d2b
>From what I've read about the kernel multitouch protocol, the claim from
your previous link that "ABS_MT_PRESSURE and ABS_MT_TOUCH_MAJOR are
normally mutually exclusive" only makes sense if the tool width (i.e.
ABS_MT_WIDTH_MAJOR) is being reported. In that case the pressure should
be equivalent to the ratio of TOUCH_MAJOR to WIDTH_MAJOR and it would
not make sense for a device to report both. Thus there are two
acceptable situations for a device that claims to report tool width:
report tool width and pressure or report tool width and touch width.
The second problem - the palm detection code not working without width -
seems like it could be more generally useful if there are touchpads that
only report pressure. However I don't see that as the issue here since
it seems clear that my touchpad *can* report width.
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1245328
Title:
Synaptics kernel driver does not report finger width information,
breaking usermode driver's palm detection
Status in “linux” package in Ubuntu:
Confirmed
Bug description:
While doing some work on the Xorg synaptics driver, I noticed that we
never actually detect palm blocking even after running synclient
PalmDetect=1. Digging in a bit, the driver claims in its capability
bits that it should be sending ABS_TOOL_WIDTH records, but according
to evtest(1), the driver never sends these advertised records to
userspace. As a result, the Xorg synaptics driver never sees
hw->fingerWidth become non-zero in SynapticsDetectFinger and never
detects that I've mashed my palm into the large touchpad on this
machine.
Expected:
Kill X. Run evtest(1). Select touchpad device. Move touchpad. See
ABS_TOOL_WIDTH records in the event stream.
Actual:
No ABS_TOOL_WIDTH records even though the device claims to support
them in its capability bits.
ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: linux-image-3.11.0-12-generic 3.11.0-12.19 [modified: boot/vmlinuz-3.11.0-12-generic]
ProcVersionSignature: Ubuntu 3.11.0-12.19-generic 3.11.3
Uname: Linux 3.11.0-12-generic x86_64
ApportVersion: 2.12.5-0ubuntu2.1
Architecture: amd64
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/controlC0: dancol 2258 F.... pulseaudio
Date: Sun Oct 27 21:43:01 2013
HibernationDevice: RESUME=UUID=7da7377a-42c7-49f8-a060-8dee466c61fd
InstallationDate: Installed on 2013-10-23 (4 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Release amd64 (20131016.1)
MachineType: LENOVO 34601F5
MarkForUpload: True
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.11.0-12-generic root=/dev/mapper/ubuntu--vg-root ro quiet splash vt.handoff=7
RelatedPackageVersions:
linux-restricted-modules-3.11.0-12-generic N/A
linux-backports-modules-3.11.0-12-generic N/A
linux-firmware 1.116
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/29/2013
dmi.bios.vendor: LENOVO
dmi.bios.version: G6ET96WW (2.56 )
dmi.board.asset.tag: Not Available
dmi.board.name: 34601F5
dmi.board.vendor: LENOVO
dmi.board.version: Not Defined
dmi.chassis.asset.tag: 2059198
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvrG6ET96WW(2.56):bd04/29/2013:svnLENOVO:pn34601F5:pvrThinkPadX1Carbon:rvnLENOVO:rn34601F5:rvrNotDefined:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 34601F5
dmi.product.version: ThinkPad X1 Carbon
dmi.sys.vendor: LENOVO
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1245328/+subscriptions
References