Created attachment 845030 [details] /sys/class/input/mouse*/device/uevent information Description of problem: Using kernel 3.11.10-301, the touchscreen and touchpad devices on the Dell XPS13 are recognized properly. However, upon kernel upgrade, there is an additional mouse device added to the system which appears to relate to the touchpad without actually being a touchpad device. In Gnome, this causes the mouse and touchpad interface to show both a mouse device and a touchpad device. However, the touchpad controls do not affect the touchpad properly. Version-Release number of selected component (if applicable): Works: 3.11.10-301 Fails: Any 3.12 or higher kernel How reproducible: Upgrade to the 3.12 kernel and reboot. Attempt to change settings in the Gnome interface. Actual results: Touchpad controls do not affect the touchpad. Expected results: Touchpad controls affect the touchpad. Additional info: I have attached the relevant information from /sys/class/input/mouse*/device/uevent under the differing kernels.
The new XPS 13 has a Synaptics touchpad which can act in both PS/2 and HID over I2C mode. If during the initialization the system sends i2c commands, it switches to i2c and drops the ps/2 interface. There are several problem currently: - Synaptics is pushing a proper hid driver for this touchpad, but the road is still long - In i2c (hid) mode, the touchpad acts like a mouse. - I still don't get why this problem does not show under a 3.11 kernel (there must have been some changes I was not aware in the ACPI implementation). On Launchpad, (bug #1218973), the reporter said that blacklisting i2c-hid was doing the trick for the touchpad, but broke the touchscreen. According to your report, the touchscreen on the XPS 13 is connected through USB so I assume that blacklisting i2c-hid will work until a proper upstream solution is found.
Thanks for the quick response. I tested blacklisting i2c-hid and you are correct that this both fixes the touchpad and leaves the touchscreen properly working. For those following along at home with the same bug: As root: 1. Open /etc/modprobe.d/blacklist.conf in your favorite text editor. 2. Add the line 'blacklist i2c-hid' (no quotes) 3. Save and reboot Appreciate the quick response. Feel free to close as appropriate.
*********** MASS BUG UPDATE ************** We apologize for the inconvenience. There is a large number of bugs to go through and several of them have gone stale. Due to this, we are doing a mass bug update across all of the Fedora 20 kernel bugs. Fedora 20 has now been rebased to 3.13.4-200.fc20. Please test this kernel update and let us know if you issue has been resolved or if it is still present with the newer kernel. If you experience different issues, please open a new bug report for those.
Not a problem. So, this seems to have partially fixed the issue. With i2c-hid blacklisted, everything still works properly. However, natively, the touchpad now appears properly in all interfaces but two finger scrolling, double clicking, and pasting do not work. Thanks
The ic2-hid blacklist works for me too and also fixes Bug 1074910 It might be an interaction with the move of the i2c code in the acpi driver to the i2c driver: https://github.com/torvalds/linux/commit/55e71edb81b2b45273e7b284cce13ff24bde846f
*** Bug 1074910 has been marked as a duplicate of this bug. ***
Mark, you spotted the right commit which introduced this regression. Still, having i2c-hid is a good think to make touchscreen and sensors working. The Synaptics problem is a corner case. I'll see if I can get a temporary solution until Synaptics' work on RMI4 land in upstream.
I got something up which may worth testing: remove the i2c-hid blacklist, grab the code at https://github.com/bentiss/hid-rmi make sudo make install reboot if everything went fine, you should have hid-rmi probed and it should discover the functions and bind the device. This is HIGHLY experimental (though I am still confident it will not break the laptop), and I would like to get some feedbacks for it. If it binds correctly and we get something working (with suspend/resume too), then I'll submit this as a temporary fix until the proper RMI4 implementation is accepted upstream.
Sorry, I must be missing something. I get the following during the make $ make make -C /lib/modules/3.13.7-200.fc20.x86_64/build SUBDIRS=/home/markd/git/hid-rmi modules make[1]: Entering directory `/usr/src/kernels/3.13.7-200.fc20.x86_64' CC [M] /home/markd/git/hid-rmi/hid-rmi.o /home/markd/git/hid-rmi/hid-rmi.c: In function ‘rmi_set_mode’: /home/markd/git/hid-rmi/hid-rmi.c:168:2: error: implicit declaration of function ‘hid_hw_raw_request’ [-Werror=implicit-function-declaration] ret = hid_hw_raw_request(hdev, RMI_SET_RMI_MODE_REPORT_ID, txbuf, ^ /home/markd/git/hid-rmi/hid-rmi.c: In function ‘rmi_write_report’: /home/markd/git/hid-rmi/hid-rmi.c:183:2: error: implicit declaration of function ‘hid_hw_output_report’ [-Werror=implicit-function-declaration] ret = hid_hw_output_report(hdev, (void *)report, len); ^ /home/markd/git/hid-rmi/hid-rmi.c: At top level: /home/markd/git/hid-rmi/hid-rmi.c:864:2: error: implicit declaration of function ‘HID_I2C_DEVICE’ [-Werror=implicit-function-declaration] { HID_I2C_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) }, ^ /home/markd/git/hid-rmi/hid-rmi.c:864:2: error: initializer element is not constant /home/markd/git/hid-rmi/hid-rmi.c:864:2: error: (near initialization for ‘rmi_id[0].bus’) cc1: some warnings being treated as errors make[2]: *** [/home/markd/git/hid-rmi/hid-rmi.o] Error 1 make[1]: *** [_module_/home/markd/git/hid-rmi] Error 2 make[1]: Leaving directory `/usr/src/kernels/3.13.7-200.fc20.x86_64' make: *** [default] Error 2
Sorry, my bad. I played with next development kernels tree and forgot to test on Fedora kernel. I have updated the git tree, so pull it again and give a shot. Thanks
Gave it a quick try, initially the mouse and touchpad worked correctly after reboot. I then tried suspending the laptop. After resume the desktop was not restored - had a black screen with a mouse pointer and nothing else. So I uninstalled and put the blacklist back. Is there any other useful info I can get for you.
Thanks for the test. At least, the code works before suspend (it was not 100% sure given that I only have a prototype from Synaptics and not the actual laptop). The black screen with mouse pointer needs to be debugged. Is the mouse moving with the touchpad or is the laptop completely broken? I will need the dmesg output after the resume, and also the Xorg.0.log. If the kernel oopses, you may be able to get the info in the previous boot journalctl and in Xorg.0.log.old.
Tried it more extensively tonight. I can't get the black screen to happen again (it was just the screen, I used function keys to get to a text logon and fix it). I've removed the patched driver and the blacklist to make sure I had the problem, then installed it. Touchpad works fine, then I suspended and everything worked after resuming. Did several suspend resume cycles - worked every time. I'll keep the patched driver on and see if anything else happens. Looking at dmesg the Touchpad is reported as a PS2: $ dmesg | grep -i touchpad [ 2.016826] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: 0x1e2b1, caps: 0xd40123/0x840300/0x126800, board id: 2734, fw id: 1522295 [ 2.087712] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input5 [ 383.341127] input: PS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input21 and the i2c_hid fails to talk to a device: $ dmesg | grep i2c [ 3.959897] i2c_hid i2c-DLL060A:00: failed to retrieve report from device. [ 3.959975] input: DLL060A:00 06CB:2734 as /devices/pci0000:00/INT33C3:00/i2c-8/i2c-DLL060A:00/input/input7 [ 4.463097] input: DLL060A:00 06CB:2734 as /devices/pci0000:00/INT33C3:00/i2c-8/i2c-DLL060A:00/input/input16 Is that what you expected?
(In reply to Mark Davidson from comment #13) > Touchpad works fine, then I suspended and everything worked after resuming. > > Did several suspend resume cycles - worked every time. nice! > Looking at dmesg the Touchpad is reported as a PS2: > $ dmesg | grep -i touchpad > [ 2.016826] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1, id: > 0x1e2b1, caps: 0xd40123/0x840300/0x126800, board id: 2734, fw id: 1522295 > [ 2.087712] input: SynPS/2 Synaptics TouchPad as > /devices/platform/i8042/serio1/input/input5 > [ 383.341127] input: PS/2 Synaptics TouchPad as > /devices/platform/i8042/serio1/input/input21 Yeah, we will have to do something for not having the PS/2 interface to try to use the touchpad... > > and the i2c_hid fails to talk to a device: actually it's working: > $ dmesg | grep i2c > [ 3.959897] i2c_hid i2c-DLL060A:00: failed to retrieve report from device. this can be ignored. > [ 3.959975] input: DLL060A:00 06CB:2734 as > /devices/pci0000:00/INT33C3:00/i2c-8/i2c-DLL060A:00/input/input7 > [ 4.463097] input: DLL060A:00 06CB:2734 as > /devices/pci0000:00/INT33C3:00/i2c-8/i2c-DLL060A:00/input/input16 2 input devices are created. > > Is that what you expected? Kind of. just to be sure, can you provide one evemu-record for the "DLL060A:00 06CB:2734"? you should get a lot of ABS_MT_* events, and the "SynPS/2 Synaptics TouchPad" event node should be silent when you touch it.
I got the input device for "DLL060A:00 06CB:2734" from /proc/bus/input/devices I then VT-switched to a terminal to do a evemu-record (It is grabbed under X) I'm attaching hid-rmi.test.desc and hid-rmi.test.events
Created attachment 882475 [details] evemu-describe output for comment 15
Created attachment 882476 [details] evemu-record output for comment 15
Created attachment 884591 [details] hid-rmi backport for 3.13.y Here is a backport of the rmi driver to be included in 3.16. The backport is a squash of: https://patchwork.kernel.org/patch/3946591/ and https://patchwork.kernel.org/patch/3956041/ plus one extra header to backport the new transport driver for the HID subsystem.
Josh, can you consider including the backport in comment #18 in f20 and f21? Thanks
(In reply to Benjamin Tissoires from comment #19) > Josh, can you consider including the backport in comment #18 in f20 and f21? > > Thanks Yep. Unless you say otherwise, I'll include F19 since it's on 3.13.y as well.
Added in Fedora git and will be in the next builds on each branch.
kernel-3.13.10-200.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/kernel-3.13.10-200.fc20
kernel-3.13.10-100.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/kernel-3.13.10-100.fc19
Package kernel-3.13.10-100.fc19: * should fix your issue, * was pushed to the Fedora 19 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing kernel-3.13.10-100.fc19' as soon as you are able to, then reboot. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2014-5233/kernel-3.13.10-100.fc19 then log in and leave karma (feedback).
FWIW, this driver seems to be breaking touch input on my tablet: https://bugzilla.kernel.org/show_bug.cgi?id=74241
kernel-3.13.10-200.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.
kernel-3.13.11-100.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/kernel-3.13.11-100.fc19
kernel-3.13.11-100.fc19 has been pushed to the Fedora 19 stable repository. If problems still persist, please make note of it in this bug report.
Problem is still persistent on Linux host-01 3.16.6-203.fc20.x86_64 #1 SMP Sat Oct 25 12:44:32 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux HP EliteBook 8440p: buttons work OK, but tap to click does not.
I have a dell inspiron 13 7000 series. It has one of these new synaptics touchpad that are described above, with both a ps2 and hid mode. I'm running Fedora 21, kernel-3.17.3-300.fc21.x86_64. If I blacklist the i2c_hid module, the trackpad works as expected, and I can also use the touchscreen. Hoever, I can't properly suspend the system. It immediately wakes up again. If I insert the i2c_hid module, I can suspend the system properly, but I cannot right click by pressing in the bottom right of the trackpad -- I have to press with two fingers.