elantech: Touchpad always reports 3 finger tap as 1 finger tap

Bug #873482 reported by Jason Conti on 2011-10-13
116
This bug affects 22 people
Affects Status Importance Assigned to Milestone
Xserver Xorg Input Synaptics
Fix Released
Medium
xserver-xorg-input-synaptics (Ubuntu)
Medium
Unassigned

Bug Description

I have an ETPS/2 Elantech touchpad in my Asus Eeepc and since installing oneiric, 3 finger taps always registers as whatever TapButton1 is set to in synclient. The touchpad would appear to use the version 2 protocol, since it has 6 bytes per packet.

I reported this issue against linux instead of xserver-xorg-input-synaptics because booting into the natty kernel (2.6.38-11) in oneiric fixes the issue and 3 finger taps work correctly.

As further testing, I built a kernel from linus's git (so it doesn't have the elantech version 3 patches included with the latest oneiric kernels), and 3 finger tap still didn't work, so my guess it is a problem with one of the changes to include the new kernel multi-touch code. I don't know if this means there is a bug in this new code, or some issue with xserver-xorg-input-synaptics and the new code.

I reverted the multi-touch changes in drivers/input/mouse/elantech.{c,h} (back to the version in 2.6.38, still need to figure out exactly where the changes were introduced), rebuilt just the psmouse module and 3 finger tap works correctly again, so if it is a kernel problem, it would appear to be localized to just that module.

I will continue to investigate, any assistance is appreciated.

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: linux-image-3.0.0-12-generic 3.0.0-12.20
ProcVersionSignature: Ubuntu 3.0.0-12.20-generic 3.0.4
Uname: Linux 3.0.0-12-generic x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
AplayDevices:
 **** List of PLAYBACK Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
ApportVersion: 1.23-0ubuntu3
Architecture: amd64
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: Intel [HDA Intel], device 0: ALC269VB Analog [ALC269VB Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: jconti 1459 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Intel'/'HDA Intel at 0xf7cf8000 irq 45'
   Mixer name : 'Realtek ALC269VB'
   Components : 'HDA:10ec0269,10438437,00100100'
   Controls : 11
   Simple ctrls : 7
Date: Thu Oct 13 12:30:02 2011
HibernationDevice: RESUME=UUID=5424bac1-3ac3-4368-a71f-96f497f6662c
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111011)
MachineType: ASUSTeK Computer INC. 1001PXD
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-12-generic root=UUID=cd747d6f-1a58-45fe-b5c2-4e2f5bd95640 ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-3.0.0-12-generic N/A
 linux-backports-modules-3.0.0-12-generic N/A
 linux-firmware 1.60
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 01/10/2011
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 0505
dmi.board.asset.tag: To Be Filled By O.E.M.
dmi.board.name: 1001PXD
dmi.board.vendor: ASUSTeK Computer INC.
dmi.board.version: x.xx
dmi.chassis.asset.tag: 0x00000000
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK Computer INC.
dmi.chassis.version: x.x
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr0505:bd01/10/2011:svnASUSTeKComputerINC.:pn1001PXD:pvrx.x:rvnASUSTeKComputerINC.:rn1001PXD:rvrx.xx:cvnASUSTeKComputerINC.:ct10:cvrx.x:
dmi.product.name: 1001PXD
dmi.product.version: x.x
dmi.sys.vendor: ASUSTeK Computer INC.
---
ApportVersion: 1.23-0ubuntu4
Architecture: amd64
DistUpgraded: Fresh install
DistroCodename: oneiric
DistroRelease: Ubuntu 11.10
DistroVariant: ubuntu
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111011)
MachineType: ASUSTeK Computer INC. 1001PXD
Package: xserver-xorg-input-synaptics 1.4.1-1ubuntu2
PackageArchitecture: amd64
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-13-generic root=UUID=cd747d6f-1a58-45fe-b5c2-4e2f5bd95640 ro quiet splash vt.handoff=7
ProcVersionSignature: Ubuntu 3.0.0-13.22-generic 3.0.6
Tags: oneiric ubuntu
Uname: Linux 3.0.0-13-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare wireshark
dmi.bios.date: 01/10/2011
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 0505
dmi.board.asset.tag: To Be Filled By O.E.M.
dmi.board.name: 1001PXD
dmi.board.vendor: ASUSTeK Computer INC.
dmi.board.version: x.xx
dmi.chassis.asset.tag: 0x00000000
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK Computer INC.
dmi.chassis.version: x.x
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr0505:bd01/10/2011:svnASUSTeKComputerINC.:pn1001PXD:pvrx.x:rvnASUSTeKComputerINC.:rn1001PXD:rvrx.xx:cvnASUSTeKComputerINC.:ct10:cvrx.x:
dmi.product.name: 1001PXD
dmi.product.version: x.x
dmi.sys.vendor: ASUSTeK Computer INC.
version.compiz: compiz 1:0.9.6+bzr20110929-0ubuntu6
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.26-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 7.11-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 7.11-0ubuntu3
version.xserver-xorg: xserver-xorg 1:7.6+7ubuntu7
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.0-1ubuntu13
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20110811.g93fc084-0ubuntu1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.15.901-1ubuntu2.1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20110411+8378443-1

Jason Conti (jconti) wrote :
Brad Figg (brad-figg) on 2011-10-13
Changed in linux (Ubuntu):
status: New → Confirmed
Joseph Salisbury (jsalisbury) wrote :

This issue appears to be an upstream bug, since you tested the latest upstream kernel. Would it be possible for you to open an upstream bug report at bugzilla.kernel.org? That will allow the upstream Developers to examine the issue, and may provide a quicker resolution to the bug.

If you are comfortable with opening a bug upstream, It would be great if you can report back the upstream bug number in this bug report. That will allow us to link this bug to the upstream report.

Seth Forshee (sforshee) on 2011-10-14
Changed in linux (Ubuntu):
assignee: nobody → Seth Forshee (sforshee)
importance: Undecided → Medium
Seth Forshee (sforshee) wrote :

Jason: I'm pretty sure that this is a limitation of the synaptics driver in X for semi-multitouch devices, and not a problem with the kernel driver. Could you please do the following to help verify this?

Make sure you are booted into the oneiric kernel and that you have the input-utils package installed (sudo apt-get install input-utils). Switch to a virtual terminal by pressing Ctrl-Alt-F1 and log in. Run 'sudo lsinput' and identify the event device number for the touchpad in the output. Then run 'sudo input_events dev_nr > input-events-oneiric.txt', substituting the device number you identified in the lsinput output for dev_nr. While input-events is running, do a few 3-finger taps. Press Ctrl-C to cancel input-events, then press Ctrl-Alt-F7 to switch back to the desktop. Reboot to the natty kernel and repeat, changing the output file name to input-events-natty.txt. Attach the input-events-*.txt files to this bug.

Thanks!

Seth Forshee (sforshee) on 2011-10-14
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Jason Conti (jconti) wrote :

Thanks for the help! The logs seem to confirm that conclusion. Here's the natty log.

Jason Conti (jconti) wrote :

And the oneiric log.

Seth Forshee (sforshee) wrote :

The events from the driver look okay. Moving this to xserver-xorg-input-synaptics.

affects: linux (Ubuntu) → xserver-xorg-input-synaptics (Ubuntu)
Changed in xserver-xorg-input-synaptics (Ubuntu):
assignee: Seth Forshee (sforshee) → nobody
status: Incomplete → Confirmed
NachoR (nachordez-gmail) wrote :

It's the same for me, since upgrade to Oneiric, I've losted the triple-finger-mid-click emulation. synclient reports just 1 finger when three (or four) are used. I own also an Eeepc 1015, and worked fine befor upgrade.

Jason Conti (jconti) wrote :

After further investigation, the reason why triple tap works with the natty kernel and not the oneiric kernel is that has_touch in xserver-xorg-input-synaptics/src/eventcomm.c is set to false with the natty kernel (probably do to the lack of semi multi-touch data), so the active_touches code from patches 120 and 121 is skipped and the BTN_TOOL_TRIPLETAP data from the kernel is used instead.

With the oneiric kernel, double tap works correctly because the coordinate for each finger is reported separately, so active_touches is incremented once for each slot, but the elantech driver reports triple taps the same as single taps, so active_touches is only incremented once.

I don't really know how to fix this without possibly breaking something else.

As an aside, I did find a bug in detecting semi mt devices (unfortunately, it doesn't help at all). When initializing ecpriv->semi_mt in eventcomm.c, the code reads the props and then does:

proc & INPUT_PROP_SEMI_MT

to test if the device is a semi mt device. However, INPUT_PROP_SEMI_MT = 0x03, it specifies the bit position, not the bit itself, so something like:

proc & (1 << INPUT_PROP_SEMI_MT)

is probably needed here (or a suitable macro that does something similar).

On Sat, Oct 15, 2011 at 06:58:35PM -0000, Jason Conti wrote:
> After further investigation, the reason why triple tap works with the
> natty kernel and not the oneiric kernel is that has_touch in xserver-
> xorg-input-synaptics/src/eventcomm.c is set to false with the natty
> kernel (probably do to the lack of semi multi-touch data), so the
> active_touches code from patches 120 and 121 is skipped and the
> BTN_TOOL_TRIPLETAP data from the kernel is used instead.
>
> With the oneiric kernel, double tap works correctly because the
> coordinate for each finger is reported separately, so active_touches is
> incremented once for each slot, but the elantech driver reports triple
> taps the same as single taps, so active_touches is only incremented
> once.

Not exactly the same -- with 3 fingers, BTN_TOOL_TRIPLETAP is reported
instead of BTN_TOOL_FINGER.

But yes, only a single position is reported, because that's all the
hardware provides with three and four fingers. For whatever reason it
gives two coordinates with two fingers, but only one with three or four,
so that's all the driver is able to report.

bwat47 (bwat47) wrote :

Same touchpad here on an asus u52f, same issue. 3 finger tap single clicks. 2 finger tap works fine. Ubuntu is the only distro I've had this issue with, every other distro recognized 3 finger tap on this touchpad out of the box. I was recently using fedora 15 for example and it works there.

Seth Forshee (sforshee) wrote :

On Sun, Oct 16, 2011 at 04:01:12PM -0000, bwat47 wrote:
> Same touchpad here on an asus u52f, same issue. 3 finger tap single
> clicks. 2 finger tap works fine. Ubuntu is the only distro I've had this
> issue with, every other distro recognized 3 finger tap on this touchpad
> out of the box. I was recently using fedora 15 for example and it works
> there.

Likely this is because the elantech driver changes to support the Linux
multitouch framework were only added in kernel version 3.0. I believe
Fedora 15 uses 2.6.38. 3-finter taps are probably broken with anything
running a 3.0 or newer kernel.

bwat47 (bwat47) wrote :

Fedora 15 has been updated to the 3.0 kernel (in fedora 15 they name it 2.6.40 for compatability reasons). I've also used arch with the 3.0 kernel and the 3.1 kernel and 3 finger tap worked.

nicolas kleinklaus (nknico) wrote :

I have the same problem on my eeepc 901 (elantech touchpad) with 11.10.

Seth Forshee (sforshee) wrote :

On Mon, Oct 17, 2011 at 03:17:23PM -0000, bwat47 wrote:
> Fedora 15 has been updated to the 3.0 kernel (in fedora 15 they name it
> 2.6.40 for compatability reasons). I've also used arch with the 3.0
> kernel and the 3.1 kernel and 3 finger tap worked.

That's interesting. The way the kernel driver works for v2 elantech
touchpads should be virtually identical between the various distro
kernels (3.1 might be a little different, but not in any way that should
make a difference wrt 3-finger taps), so the difference must be in
userspace.

Jason Conti (jconti) wrote :

As far as I can tell from http://pkgs.fedoraproject.org/gitweb/?p=xorg-x11-drv-synaptics.git, Fedora just ships the upstream tarball, so it doesn't have debian/patches/120_active_touches_num_fingers.patch, which is what is causing the issue.

I did have a thought though. If I understand the patch correctly, it expects to have a pair of touch coordinates for each finger, and then only increments active_touches if they fall in the active region of the touchpad. Since the elantech touchpads only report a single pair of coordinates for three finger taps, the maximum for active_touches is only 1.

My thought was to keep track of how many pairs of coordinates were received, both in active and inactive regions, and then do a sort of sanity check before using the active_touches data. If the number of pairs received is 1 when we receive a SYN_REPORT, but the kernel didn't send a single tap event, then something is wrong, and we probably should just go with what the kernel sent us. To keep track of the pairs of coordinates, I've been using ABS_MT_TRACKING_ID, and incrementing the number of pairs when it is not -1, decrementing otherwise.

This fixes the issue for me (triple taps work again), but it is really more of a rough idea at this point, since I am not very familiar with the synaptics xorg driver.

Adolfo R. Brandes (arbrandes) wrote :

Jason, mind posting your patch to ease the pain of a fellow sufferer? :)

Jason Conti (jconti) wrote :

I pushed the patched package to lp:~jconti/ubuntu/oneiric/xserver-xorg-input-synaptics/bug-873482

It's the basic idea, but there may be better ways of implementing it, and while it works for my setup, I can't really say it won't break other devices (although at the worst it should only fall back to the number of fingers sent by the kernel instead of using active_touches).

Adolfo R. Brandes (arbrandes) wrote :

Thanks, Jason! Worked like a charm, here.

(I also updated my U43JC Oneiric howto to include your fix: http://ubuntuforums.org/showthread.php?t=1615564)

bwat47 (bwat47) wrote :

Patch seems to work sort of here (asus u52f). For some reason it seems to be really finicky detecting 3 fingers, but I don't know if thats due to your patch or something else though. Other distros detected 3 fine. When I use 4 fingers it works fine though (which is still a big usability improvement lol)

bwat47 (bwat47) wrote :

Actually regarding my previous comment it seems to be working fine now, not quite sure what was going on before but I rebooted again and 3 finger taps are working reliably. Thanks for the patch!

jsevi83 (jsevi83) wrote :

I tried the path on an Asus A52F. I seems to solve the three finger tap issue, but now I lost two finger horizontal scrolling. Is there a way I can solve it?

Jason Conti (jconti) wrote :

Jorge: Did two finger horizontal scrolling work before applying the patch, and do you have 'Enable horizontal scrolling' in System Settings/Mouse and Touchpad/Touchpad checked?

I just enabled two finger scrolling and horizontal scrolling as a test, and it works correctly with my device.

bwat47 (bwat47) wrote :

2 finger scrolling works correctly on my asus u52f with your patch as well.

jsevi83 (jsevi83) wrote :

Yes, it was working before applying the patch and the option is checked under system settings. I repeated the whole process and was still not working. Then I erased my /home/user/.conf/dconf folder and restarted, and finally it was working.

bwat47 (bwat47) wrote :

I've noticed one problem with this patch. Sometimes when I resume from sleep it will revert back to middle click not working, until I restart.

Jason Conti (jconti) wrote :

bwat47: I've noticed the same thing, but I'm not certain it is related to the xorg driver. Last time it happened, I was looking at it in xev, and getting weird data. Certain taps would send a flood of events with weird button values between 4 and 6. I killed the x server and input-events was reporting strange values on triple tap as well (usually something like a double tap, triple tap followed by 5 or 7 position updates all followed by syns and then the double/triple release). Restarting the x server didn't help, which is what makes me think it isn't related.

If I manage to reproduce it (happened after a suspend here too), I'll attach the logs.

bwat47 (bwat47) wrote :

Any logs I could submit? I'm not really an expert on what logs are what and where to find them. I seem to be able to reproduce this almost everytime I suspend. Just tested it a few seconds ago. Booted up my laptop, middle click worked fine. Closed the lid, waited for suspend, opened it. No more middle click, it reverted back to 3 finger tap acting as a left click (the same behavior I got before using your patch)

Ahmed Shams (ashams) wrote :

Thank you for reporting this bug and help making Ubuntu better.
Please help documenting this report by running the following commands(one-by-one) from your Terminal(Ctrl+Alt+T):
apport-collect 873482
xev > ~/Desktop/xev.log
The second one will open a box, please stay inside it and try to reproduce any problems you might have, then upload/attach the file('xev.log') from your Desktop to this report.

Thanks.

Ahmed Shams (ashams) on 2011-11-30
Changed in xserver-xorg-input-synaptics (Ubuntu):
status: Confirmed → Incomplete

apport information

tags: added: apport-collected ubuntu
description: updated

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

Jason Conti (jconti) wrote :

xev output of 5 triple taps

Jason Conti (jconti) on 2011-11-30
Changed in xserver-xorg-input-synaptics (Ubuntu):
status: Incomplete → Confirmed
bwat47 (bwat47) wrote :

Well this is odd... I went to suspend and resume to post logs for this issue, and instead of middle click stopping working as usual, it actually fixed THIS issue I also have: https://bugs.launchpad.net/unity/+bug/754000 (unity reserves 3 finger tap for the pointless love handles feature)

After resuming I was able to have middle clicking working as intended in unity (functioning properly as middle click instead of bringing up handles).

Anyway I'll keep plugging at it and see if it stops working again so I can submit logs.

bwat47 (bwat47) wrote :

hmm, as far as I can tell everything seems to be working fine now, not sure what changed. Middle click is working as intended, even in unity at fresh boot. After suspend/resume it continues to work. I'm using jason's patch still. I was using gnome-shell before when I experienced this if that makes any difference (this is a fresh install of ubuntu and I've just been using unity). I might try installing gnome-shell and see if I notice any different behavior there.

ApportVersion: 1.23-0ubuntu4
Architecture: amd64
DistUpgraded: Fresh install
DistroCodename: oneiric
DistroRelease: Ubuntu 11.10
DistroVariant: ubuntu
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
MachineType: ASUSTeK Computer Inc. U52F
Package: xserver-xorg-input-synaptics 1.4.1-1ubuntu3
PackageArchitecture: amd64
ProcEnviron:
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.0.0-13-generic root=UUID=1ae72c10-b488-4b57-97db-e71686458c4e ro quiet splash vt.handoff=7
ProcVersionSignature: Ubuntu 3.0.0-13.22-generic 3.0.6
Tags: oneiric running-unity ubuntu
Uname: Linux 3.0.0-13-generic x86_64
UnreportableReason: This is not a genuine Ubuntu package
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
dmi.bios.date: 07/21/2010
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: U52F.208
dmi.board.asset.tag: ATN12345678901234567
dmi.board.name: U52F
dmi.board.vendor: ASUSTeK Computer Inc.
dmi.board.version: 1.0
dmi.chassis.asset.tag: No Asset Tag
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK Computer Inc.
dmi.chassis.version: 1.0
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrU52F.208:bd07/21/2010:svnASUSTeKComputerInc.:pnU52F:pvr1.0:rvnASUSTeKComputerInc.:rnU52F:rvr1.0:cvnASUSTeKComputerInc.:ct10:cvr1.0:
dmi.product.name: U52F
dmi.product.version: 1.0
dmi.sys.vendor: ASUSTeK Computer Inc.
version.compiz: compiz 1:0.9.6+bzr20110929-0ubuntu6
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.26-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 7.11-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 7.11-0ubuntu3
version.xserver-xorg: xserver-xorg 1:7.6+7ubuntu7
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.0-1ubuntu13
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20110811.g93fc084-0ubuntu1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.15.901-1ubuntu2.1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20110411+8378443-1

tags: added: running-unity

apport information

apport information

apport information

bwat47 (bwat47) wrote : DpkgLog.txt

apport information

bwat47 (bwat47) wrote : Lspci.txt

apport information

bwat47 (bwat47) wrote : Lsusb.txt

apport information

apport information

apport information

apport information

bwat47 (bwat47) wrote : UdevDb.txt

apport information

bwat47 (bwat47) wrote : UdevLog.txt

apport information

apport information

bwat47 (bwat47) wrote : locale.txt

apport information

apport information

apport information

bwat47 (bwat47) wrote : xinput.txt

apport information

bwat47 (bwat47) wrote : xkbcomp.txt

apport information

bwat47 (bwat47) wrote :

Managed to reproduce this again after a few more resumes, still happens just less frequent apparently. 3 fingers being detected as one, logs attached.

On behalf of Jason Conti:
https://launchpad.net/bugs/873482

I have an ETPS/2 Elantech touchpad in my Asus Eeepc and since installing oneiric, 3 finger taps always registers as whatever TapButton1 is set to in synclient. The touchpad would appear to use the version 2 protocol, since it has 6 bytes per packet.

I reported this issue against linux instead of xserver-xorg-input-synaptics because booting into the natty kernel (2.6.38-11) in oneiric fixes the issue and 3 finger taps work correctly.

As further testing, I built a kernel from linus's git (so it doesn't have the elantech version 3 patches included with the latest oneiric kernels), and 3 finger tap still didn't work, so my guess it is a problem with one of the changes to include the new kernel multi-touch code. I don't know if this means there is a bug in this new code, or some issue with xserver-xorg-input-synaptics and the new code.

I reverted the multi-touch changes in drivers/input/mouse/elantech.{c,h} (back to the version in 2.6.38, still need to figure out exactly where the changes were introduced), rebuilt just the psmouse module and 3 finger tap works correctly again, so if it is a kernel problem, it would appear to be localized to just that module.

I will continue to investigate, any assistance is appreciated.
#

Ahmed Shams (ashams) wrote :

Bug reported upstream.

Changed in xserver-xorg-input-synaptics:
importance: Unknown → Medium
status: Unknown → Confirmed
Jason Conti (jconti) wrote :

@Ahmed Shams: This bug is in the ubuntu patches against xserver-xorg-input-synaptics 1.4.1, it does not occur with the upstream version.

does this touchpad actually report BTN_TOOL_TRIPLETAP when you're clicking with three fingers?

Yes, there is a log of the events from several triple taps here https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/873482/+attachment/2544802/+files/input-events-oneiric.txt if you are curious, however, I do not believe the bug is in the upstream code. Ubuntu has a set of patches on top which tries to count the number of fingers in an event, ignoring in most cases what the kernel sends, but elantech devices do not send enough information for triple taps to register properly with this method. Sorry for the confusion.

Fix by Jason Conti works for me (Asus X66IC, ETPS/2 Elantech touchpad, Lubuntu 11.10 fresh install with updates)

bwat47 (bwat47) wrote :

Slight update. Previously with jason's fix, when after suspending and the 3 finger started being recognized as single click again, I had to reboot to fix it. Today I was able to fix it by simply logging out and back in.

Also now 3 finger tap is working with your patch in unity, even on a fresh boot :)

I also briefly tried the 12.04 alpha 2 live cd and 3 finger tap did seem to work "out of the box" there. hope it stays that way.

bwat47 (bwat47) wrote :

I am going to try and test a different xorg-input-synaptics driver, that doesn't have the ubuntu patches at all and see if I can replicate the issues I've been happening (3 finger tap regressing to being recognized as single tap after suspend/resume).

I've downloaded a package from the debian squeeze backports archive (xserver-xorg-input-synaptics_1.4.1-1~bpo60+1_amd64.deb), and it seems to be working perfectly for now, but I'll have to give it a few days and numerous suspends to test, to try and see if its an issue with the driver or something else. It happens so rarely/sporadically with jason's patched ubuntu package that I haven't been able to pinpoint any possible cause :/

I might also try testing 12.04 and see if I run into any issues with its input driver. It definitely seems to be doing something different, as my 3 finger tap was working fine.

Jason Conti (jconti) wrote :

This does currently work in 12.04 but note that from the changelog for 1.5.0-2ubuntu1~nomt1:

  * Temporarily drop multitouch patches for X server 1.11 bringup:
    + 116_xi2_1.patch
    + 117_gestures.patch
    + 119_active_area_touches.patch
    + 120_active_touches_num_fingers.patch
    + 121_semi-mt_num_fingers.patch
    + 123_order_ProcessTouch_for_numFingers.patch

These patches are still disabled as of 1.5.0+git20120210-0ubuntu1 which I haven't tested yet but
plan on testing later today (and I imagine will still work). We will need to wait and see if and when
those patches get integrated.

bwat47 (bwat47) wrote :

11.10 with the debian synaptics package seems to be working perfectly. Haven't ran into any cases where 3 finger tap stops working.

bwat47 (bwat47) wrote :

Yeah, as expected 3 finger tap no longer works in 12.04 (latest daily build)

bwat47 (bwat47) wrote :

Actually I may be wrong. The driver wasn't why it isn't currently working in precise. Looking at the latest comments on this bugreport:

https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/754000

We now need to set this setting to enable 3 finger tap in unity: synclient TapButton3=2

After doing this 3 finger tap is working for me in 12.04 beta 1. And the driver patches should be activated now in the beta right?

bwat47 (bwat47) wrote :

argh silly me. that command had set 2 finger tap as middle click, and made me think 3 finger tap was working. 3 finger tap definitely does work now with the current precise driver.

bwat47 (bwat47) wrote :

Figures right after I make yet another comment. Rebooted and both seem to work now. 3 finger right clicking, and 2 finger middle click. Sounds like it might have been that issue I was having on oneric where it intermittendly stopped working until I rebooted.

bwat47 (bwat47) wrote :

Determined what really stopped it from working.

If I use synclient TapButton3=2, 2 finger tap gives me middle click, 3 finger does nothing.

If I use synclient TapButton3=3, 2 finger tap gives me middle click, 3 gives me right click. Seems to be working fine now. Sorry for multiple comments, being able to edit/delete posts on forums has ingrained bad habits.

Changed in xserver-xorg-input-synaptics:
status: Confirmed → Incomplete

Sorry, I posted this reply from launchpad a while ago, but it seems to never have synced. This bug can probably be closed, the problem was in the ubuntu patches, not the upstream code, and it seems to be fixed in the version included in 12.04. I'll include the original comment below.

Original Comment:

Yes, there is a log of the events from several triple taps here https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/873482/+attachment/2544802/+files/input-events-oneiric.txt if you are curious, however, I do not believe the bug is in the upstream code. Ubuntu has a set of patches on top which tries to count the number of fingers in an event, ignoring in most cases what the kernel sends, but elantech devices do not send enough information for triple taps to register properly with this method. Sorry for the confusion.

thanks. closing this bug, please reopen if you notice it again.

Changed in xserver-xorg-input-synaptics:
status: Incomplete → Won't Fix
bwat47 (bwat47) wrote :

Goddamnit, seems this is back after today's update to syanptics driver update... 3 finger tap is single clicking everytime just like before. I wish I could finally get an Ubuntu release that this works properly on once and for all...

bwat47 (bwat47) wrote :

Might be related to one of these changes:
  * New upstream release
  * Drop patches merged upstream
    - 200_fix_clickfinger_non-clickpads.patch
    - 201_fix_clickfinger_clickpad_actions.patch
  * Revert upstream behavior change: enabling right button area by default
    - Too late to enable in Precise
  * Fix erroneous tap actions on four-touch tap (LP: #963327)
    - Add temporary patch 200_fix_four_tap.patch

bwat47 (bwat47) wrote :

Actually further down in the latest changelog there is this:

 -- Chase Douglas <email address hidden> Thu, 29 Mar 2012 15:31:40 -0700

xserver-xorg-input-synaptics (1.5.99.901-0ubuntu2) precise; urgency=low

  * Disable three touch tap in favor of uTouch gestures (LP: #961725)
    - See
      https://lists.ubuntu.com/archives/ubuntu-desktop/2012-February/003694.html
      for details.

Can we please stop disabling 3 finger tap! I thought the synclient thing was supposed to workaround this?

Jason Conti (jconti) wrote :

It is almost certainly 200_fix_four_tap.patch, it reintroduces the finger counting which is not valid for our touchpads.

Jason Conti (jconti) wrote :

And merged upstream now, so I guess it finally is an upstream bug. http://patchwork.freedesktop.org/patch/9628/ http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=da461b91659d0c64aa6827e065aee2682116a57e (a week after I get the upstream bug closed...)

This has come back, and now seems to be an upstream issue with the recently merged 200_fix_four_tap.patch:
"And merged upstream now, so I guess it finally is an upstream bug. http://patchwork.freedesktop.org/patch/9628/ http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=da461b91659d0c64aa6827e065aee2682116a57e (a week after I get the upstream bug closed...)"

https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+bug/873482

This patch does not work with elantech touchpads, and causes 3 finger tap not to work.

Changed in xserver-xorg-input-synaptics:
status: Won't Fix → Confirmed
shane (shane-animail) wrote :

For Heavens sake! I struggled with this issue on another laptop for so long and eventually settled for the synclient workaround.

I switched to a new laptop a few days which has an elantech touchpad and synclient workaround was still working and then suddenly stopped.

Just please tell me, is three finger tap ever going to actually PROPERLY work in unity or should I just switch back to another distro that CAN seem to manage it

Jason Conti (jconti) wrote :

Fixed in 1.5.99.902-0ubuntu2, so I am going to mark this bug as fixed.

xserver-xorg-input-synaptics (1.5.99.902-0ubuntu2) precise; urgency=low

  * Fix three touch taps and clicks on some trackpads (LP: #971783)
    - Add temporary patch 201_fix_touch_count.patch
 -- Chase Douglas <email address hidden> Mon, 02 Apr 2012 11:33:58 -0700

Changed in xserver-xorg-input-synaptics (Ubuntu):
status: Confirmed → Fix Released

This issue seems to be fixed with the patch at http://patchwork.freedesktop.org/patch/9719/

Closing again as per comment #5. Thanks for testing.

Changed in xserver-xorg-input-synaptics:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.