FS#40921 - [linux] Synaptics touchpad doesn't work correctly
Attached to Project:
Arch Linux
Opened by Tomi Leppänen (Tomin) - Saturday, 21 June 2014, 05:27 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 13 August 2014, 07:48 GMT
Opened by Tomi Leppänen (Tomin) - Saturday, 21 June 2014, 05:27 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 13 August 2014, 07:48 GMT
|
Details
Description:
With linux 3.15.1-1 Synaptihs touchpad doesn't use Synaptics drivers. If I run synclient I get this warning: $ synclient Couldn't find synaptics properties. No synaptics driver loaded? $ I can't do scrolling (two-finger, side, circular, ...). My touchscreen works just fine (Dell XPS 13 9333). If I blacklist i2c_hid as suggested in the wiki [1] and on a forum thread [2], I will not get touchscreen or touchpad input. Neither of them works. [1] https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Laptops_with_touchscreen_.26_touchpad [2] https://bbs.archlinux.org/viewtopic.php?pid=1419078 Additional info: * package version(s) - linux 3.15.1-1 (from testing) - xf86-input-synaptics 1.8.0-1 - * config and/or log files etc. - None that I know of, except blacklisting i2c_hid for testing of course Steps to reproduce: Upgrade linux to 3.15.1-1 (from 3.14.*). Test. Blacklist i2c_hid. Test. |
This task depends upon
Closed by Tobias Powalowski (tpowa)
Wednesday, 13 August 2014, 07:48 GMT
Reason for closing: Fixed
Additional comments about closing: 3.16
Wednesday, 13 August 2014, 07:48 GMT
Reason for closing: Fixed
Additional comments about closing: 3.16
Bus 001 Device 002: ID 06cb:0af8 Synaptics, Inc.
If you need more verbose output, just ask.
Having the same Problem (on DELL XPS 13 (9333), too). In I2c-hid mode the device doesn't identify it self properly so it is only recognised as mouse not Trackpad. (wicht makes it very hard to use)
By blacklisting I2c-hid it gets prpperly recognised as "SynPS/2 Synaptics TouchPad" (xinput output). With the new Kernel this doesn't happen anymore.
And therefore no device at all is detected.
Can it be related to "readd dell_rbu module" ?(just had a look at the change log.)
$ sudo lshw -c input
*-usb:0
description: Human interface device
product: Synaptics Large Touch Screen
vendor: SYNAPTICS
physical id: 3
bus info: usb@1:3
version: 0.01
capabilities: usb-2.00
configuration: driver=usbhid maxpower=144mA speed=12Mbit/s
$
I didn't find anything about touchpad from lshw output.
git bisect start '--' 'drivers/hid/' 'drivers/i2c/' 'drivers/input/'
# bad: [a798c10faf62a505d24e5f6213fbaf904a39623f] Linux 3.15-rc2
git bisect bad a798c10faf62a505d24e5f6213fbaf904a39623f
# good: [455c6fdbd219161bd09b1165f11699d6d73de11c] Linux 3.14
git bisect good 455c6fdbd219161bd09b1165f11699d6d73de11c
# bad: [e24d0d399b2fce71b627043e900ef28283850482] HID: core: do not scan constant input report
git bisect bad e24d0d399b2fce71b627043e900ef28283850482
# good: [65ab2fc479fa8554e26d6d1726a4ebe6f29a73be] Merge branch 'for-3.15/sony' into for-3.15/hid-core-ll-transport-cleanup
git bisect good 65ab2fc479fa8554e26d6d1726a4ebe6f29a73be
# good: [fa1054a29b21e4c932b5c93def600149451cec32] Merge branches 'for-3.15/multitouch', 'for-3.15/sony' and 'for-3.15/uhid' into for-linus
git bisect good fa1054a29b21e4c932b5c93def600149451cec32
# bad: [c70929147a10fa4538886cb23b934b509c4c0e49] Merge tag 'sound-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
git bisect bad c70929147a10fa4538886cb23b934b509c4c0e49
# good: [89c8ae73459443eabfd7f24b4379ddb9248f1ee9] Merge tag 'asoc-v3.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next
git bisect good 89c8ae73459443eabfd7f24b4379ddb9248f1ee9
# bad: [165f5fd04aa898fa7dbe4fbe2819cf80453d3bb9] Merge branches 'pm-qos', 'pm-domains' and 'pm-drivers'
git bisect bad 165f5fd04aa898fa7dbe4fbe2819cf80453d3bb9
# good: [71d821fdaec08afcbfb3cf258c0d64ea0e336ff3] PM / QoS: Add type to dev_pm_qos_add_ancestor_request() arguments
git bisect good 71d821fdaec08afcbfb3cf258c0d64ea0e336ff3
# good: [d983f93328041f85e884a586810a67528ae59945] Merge branch 'acpi-pci-hotplug'
git bisect good d983f93328041f85e884a586810a67528ae59945
# first bad commit: [165f5fd04aa898fa7dbe4fbe2819cf80453d3bb9] Merge branches 'pm-qos', 'pm-domains' and 'pm-drivers'
I can't work on this problem later this week but I'll get back to it next week.
in /proc/bus/input/devices I found the touchpad (for the working 3.14 kernel):
I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input5
U: Uniq=
H: Handlers=event9 mouse1
B: PROP=5
B: EV=b
B: KEY=e520 610000 0 0 0 0
B: ABS=660800011000003
So it seems like the touchpad is hooked onto the isa bridge? (Admittingly I'm playing the expert here, but have no real clue what I'm talking about)
Since the isa stuff is loaded with the lpc_ich module I had a look in the kernel logs and found
for the 3.15 kernel (not working) it says:
Jun 25 09:16:33 pretslet kernel: lpc_ich 0000:00:1f.0: no hotplug settings from platform
Jun 25 09:16:33 pretslet kernel: lpc_ich 0000:00:1f.0: using default PCI settings
While for 3.14 (working) it says:
Jun 25 10:40:54 pretslet kernel: lpc_ich: Resource conflict(s) found affecting gpio_ich
I suspect this is related to the problem, although obviously we need someone who knows what he's talking about (unlike me)
1) With 3.14.6-1 kernel (all works well)
2) With 3.15.2-1 kernel (i2c_hid blacklisted)
2) With 3.15.2-1 kernel (no blacklist)
I think https://bugzilla.redhat.com/show_bug.cgi?id=1048314#c5 is implying that https://github.com/torvalds/linux/commit/55e71edb81b2b45273e7b284cce13ff24bde846f is causing things to stop working without i2c_hid.
The previous bug and https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1218973/comments/61 onwards sort of keep an eye on the new module needed for i2c touchpads.
The temporary version (see previous links) can be built from here https://github.com/bentiss/hid-rmi and has been accepted upstream for 3.16 kernel inclusion: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9fb6bf02e3ad04c20edb8e46536ce3eeda32c736
softdep hid_rmi pre: hid_multitouch
softdep i2c_hid pre: hid_rmi
If hid_rmi loads before hid_multitouch, it stops the touchscreen from working, while i2c_hid needs to load after it to make the touchpad work.
I didn't include the modprobe configs in the package because I'm guessing that they'll still be needed after 3.16 comes out (since I don't know what the cause is, this could be wrong; maybe it's just a consequence of the backport).
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ DLL060A:00 06CB:2734 id=9 [slave pointer (2)]
⎜ ↳ SYNAPTICS Synaptics Large Touch Screen id=12 [slave pointer (2)]
...
$ lsmod |grep hid
hid_generic 1217 0
hid_multitouch 9721 0
usbhid 41187 0
hid_rmi 8694 0
i2c_hid 11163 0
hid 97340 5 i2c_hid,hid_multitouch,hid_generic,hid_rmi,usbhid
mac_hid 3273 0
usbcore 192472 8 btusb,uvcvideo,ehci_hcd,ehci_pci,usbhid,usbnet,smsc75xx,xhci_hcd
i2c_core 41648 9 drm,i915,i2c_i801,i2c_hid,i2c_designware_platform,drm_kms_helper,i2c_algo_bit,v4l2_common,videodev
I actually already got a kernel panic (apparently) with this rc3 but I don't have any logs because it didn't show any info (the computer just froze). I don't think it was related to this but how would I know.
Are both of these problems fixed by 3.16?
Btw, I found this from git logs: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ba391e5a5ac6697b8bcae8c0d01439cb765d9ef8
The only thing I noticed (but I don't know if that was the case with 3.15 + hid_rmi) is that if I try to click with three fingers and one of my fingers is on the area reserved for left mouse button I'll get click on the right mouse button instead of middle button click. I hope that wasn't too confusing explanation... But my point is now I must put all my three fingers on the top part of the touchpad to make a three finger click (middle button click).
I'm not seeing that 3-finger click problem. I do often get a right click if all three of the fingers are on the _right_ side and one of them is on the bottom area though.