Bug 74241 - Touch input on Dell Venue 8 Pro (Baytrail) broken with 3.15 kernels
Summary: Touch input on Dell Venue 8 Pro (Baytrail) broken with 3.15 kernels
Status: RESOLVED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: Input Devices (show other bugs)
Hardware: i386 Linux
: P1 high
Assignee: drivers_input-devices
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-17 00:53 UTC by Adam Williamson
Modified: 2014-08-15 17:05 UTC (History)
5 users (show)

See Also:
Kernel Version: 3.15
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
xinput output from a (working) 3.14rc6 boot (4.97 KB, text/plain)
2014-04-17 00:54 UTC, Adam Williamson
Details
xinput output from a (broken) 3.15rc1 boot (3.08 KB, text/plain)
2014-04-17 00:54 UTC, Adam Williamson
Details
journalctl from a (working) 3.14rc6 boot (214.33 KB, text/plain)
2014-04-17 00:55 UTC, Adam Williamson
Details
journalctl from a (broken) 3.15rc1 boot (206.56 KB, text/plain)
2014-04-17 00:55 UTC, Adam Williamson
Details

Description Adam Williamson 2014-04-17 00:53:47 UTC
Not sure how I didn't spot this before, but 3.15 kernels seem to break touch input on my Dell Venue 8 Pro (Baytrail-based tablet, Baytrail's a very active development area ATM).

I've booted multiple 3.15 kernels - both my lightly-patched 'fedlet' builds, which add a few patches of Baytrail-specific interest, and the nodebug version of the current stock Rawhide kernel, 3.15.0-0.rc1.git1.2.fc21 . In all of them, touch input just flat out doesn't work.

Going back to 3.14.0-0.rc6.git2.1.1awb , the last 3.14 build I have handily available, touch input is fine.

I'm attaching 'xinput list --long' and 'journalctl -b' output from those two kernels, for comparison. It looks at least like one input device is entirely missing on 3.15. Not sure what other diagnostic info would be useful.
Comment 1 Adam Williamson 2014-04-17 00:54:36 UTC
Created attachment 132491 [details]
xinput output from a (working) 3.14rc6 boot
Comment 2 Adam Williamson 2014-04-17 00:54:54 UTC
Created attachment 132501 [details]
xinput output from a (broken) 3.15rc1 boot
Comment 3 Adam Williamson 2014-04-17 00:55:16 UTC
Created attachment 132511 [details]
journalctl from a (working) 3.14rc6 boot
Comment 4 Adam Williamson 2014-04-17 00:55:33 UTC
Created attachment 132521 [details]
journalctl from a (broken) 3.15rc1 boot
Comment 5 Adam Williamson 2014-04-17 01:03:08 UTC
Ah, in the 3.15 journalctl output, I see this:

Apr 16 17:32:56 fedlet.happyassassin.net kernel: input: SYNA7500:00 06CB:00F2 as /devices/platform/80860F41:05/i2c-12/i2c-SYNA7500:00/0018:06CB:00F2.0003/input/input4
Apr 16 17:32:56 fedlet.happyassassin.net kernel: hid-rmi 0018:06CB:00F2.0003: input,hidraw2: <UNKNOWN> HID v1.00 Device [SYNA7500:00 06CB:00F2] on 
Apr 16 17:32:56 fedlet.happyassassin.net kernel: hid-rmi: probe of 0018:06CB:00F2.0003 failed with error -5

In the 3.14 output:

Apr 16 17:43:02 fedlet.happyassassin.net kernel: input: SYNA7500:00 06CB:00F2 as /devices/platform/80860F41:05/i2c-12/i2c-SYNA7500:00/0018:06CB:00F2.0003/input/input5
Apr 16 17:43:02 fedlet.happyassassin.net kernel: hid-multitouch 0018:06CB:00F2.0003: input,hidraw2: <UNKNOWN> HID v1.00 Device [SYNA7500:00 06CB:00F2] on 
Apr 16 17:43:02 fedlet.happyassassin.net systemd[1]: Found device /dev/disk/by-uuid/f4707cca-8279-48ca-81db-78819ff2cf81.

So it looks like the new hid-rmi driver chokes on the hardware. CCing Benjamin Tissoires, the culprit. =) https://lkml.org/lkml/2014/4/7/310
Comment 6 Adam Williamson 2014-04-17 01:03:43 UTC
hrm, bentiss doesn't seem to have a bko account I can find. I'll poke him by mail.
Comment 7 Adam Williamson 2014-04-17 01:12:40 UTC
I suspect this line from the hid-rmi driver is a mite too broad:

       { HID_I2C_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },

and covers this I2C-connected, Synaptics-produced touch screen, despite the driver not really working with it? Just a guess.
Comment 8 Adam Williamson 2014-04-17 01:20:20 UTC
oh - and this bug is showing up in Fedora 3.15 kernels even though hid-rmi is only queued for 3.16, because it's been backported to Fedora's 3.15 to fix the Dell laptops which need it.
Comment 9 Adam Williamson 2014-04-17 06:03:46 UTC
Hrm, even if I build a kernel with the hid-rmi driver patch dropped, the touchscreen still doesn't work. This time it seems like i2c_hid kicks in and fails:

Apr 16 22:58:57 fedlet.happyassassin.net gdm-Xorg-:0[835]: Initializing built-in extension XInputExtension
Apr 16 22:58:57 fedlet.happyassassin.net gdm-Xorg-:0[835]: Initializing built-in extension XTEST
Apr 16 22:58:57 fedlet.happyassassin.net gdm-Xorg-:0[835]: Initializing built-in extension BIG-REQUESTS
Apr 16 22:58:57 fedlet.happyassassin.net gdm-Xorg-:0[835]: Initializing built-in extension SYNC
Apr 16 22:58:57 fedlet.happyassassin.net gdm-Xorg-:0[835]: Initializing built-in extension XKEYBOARD
Apr 16 22:58:57 fedlet.happyassassin.net gdm-Xorg-:0[835]: Initializing built-in extension XC-MISC
Apr 16 22:58:57 fedlet.happyassassin.net gdm-Xorg-:0[835]: Initializing built-in extension XINERAMA
--
Apr 16 22:59:02 fedlet.happyassassin.net dbus[631]: [system] Activating via systemd: service name='org.freedesktop.GeoClue2' unit='geoclue.service'
Apr 16 22:59:02 fedlet.happyassassin.net dbus-daemon[631]: dbus[631]: [system] Activating via systemd: service name='org.freedesktop.GeoClue2' unit='geoclue.service'
Apr 16 22:59:02 fedlet.happyassassin.net systemd[1]: Starting Location Lookup Service...
Apr 16 22:59:02 fedlet.happyassassin.net kernel: i2c_hid i2c-SYNA7500:00: failed to reset device.
Apr 16 22:59:02 fedlet.happyassassin.net gdm-Xorg-:0[835]: The XKEYBOARD keymap compiler (xkbcomp) reports:
Apr 16 22:59:02 fedlet.happyassassin.net gdm-Xorg-:0[835]: > Warning:          Compat map for group 2 redefined
Apr 16 22:59:02 fedlet.happyassassin.net gdm-Xorg-:0[835]: >                   Using new definition
--
Apr 16 22:59:07 fedlet.happyassassin.net gnome-session[1058]: (gnome-settings-daemon:1101): color-plugin-WARNING **: failed to get edid: unable to get EDID for output
Apr 16 22:59:07 fedlet.happyassassin.net colord[1138]: Device added: xrandr-VGA1
Apr 16 22:59:07 fedlet.happyassassin.net gnome-session[1058]: (gnome-settings-daemon:1101): color-plugin-WARNING **: unable to get EDID for xrandr-VGA1: unable to get EDID for output
Apr 16 22:59:08 fedlet.happyassassin.net kernel: i2c_hid i2c-SYNA7500:00: failed to reset device.
Apr 16 22:59:12 fedlet.happyassassin.net dbus-daemon[631]: string index out of range
Apr 16 22:59:14 fedlet.happyassassin.net kernel: i2c_hid i2c-SYNA7500:00: failed to reset device.
Apr 16 22:59:14 fedlet.happyassassin.net NetworkManager[723]: <info> (wlp0s20u2u4u3): supplicant interface state: scanning -> associating
Apr 16 22:59:15 fedlet.happyassassin.net kernel: IPv6: ADDRCONF(NETDEV_CHANGE): wlp0s20u2u4u3: link becomes ready
Apr 16 22:59:15 fedlet.happyassassin.net NetworkManager[723]: <info> (wlp0s20u2u4u3): supplicant interface state: associating -> 4-way handshake
--
Apr 16 22:59:17 fedlet.happyassassin.net avahi-daemon[619]: Registering new address record for fe80::76d0:2bff:fece:fba8 on wlp0s20u2u4u3.*.
Apr 16 22:59:17 fedlet.happyassassin.net systemd-udevd[504]: worker [521] /devices/LNXSYSTM:00/LNXSYBUS:00/80860F41:04/SMO91D0:00 timeout; kill it
Apr 16 22:59:17 fedlet.happyassassin.net systemd-udevd[504]: seq 1733 '/devices/LNXSYSTM:00/LNXSYBUS:00/80860F41:04/SMO91D0:00' killed
Apr 16 22:59:17 fedlet.happyassassin.net systemd-udevd[504]: worker [525] /devices/LNXSYSTM:00/LNXSYBUS:00/80860F41:05/SYNA7500:00 timeout; kill it
Apr 16 22:59:17 fedlet.happyassassin.net systemd-udevd[504]: seq 1736 '/devices/LNXSYSTM:00/LNXSYBUS:00/80860F41:05/SYNA7500:00' killed
Apr 16 22:59:17 fedlet.happyassassin.net systemd-udevd[504]: worker [521] terminated by signal 9 (Killed)
Apr 16 22:59:20 fedlet.happyassassin.net kernel: i2c_hid i2c-SYNA7500:00: failed to reset device.
Apr 16 22:59:20 fedlet.happyassassin.net systemd-udevd[504]: worker [526] /devices/platform/80860F41:05/i2c-12/i2c-SYNA7500:00 timeout; kill it
Apr 16 22:59:20 fedlet.happyassassin.net systemd-udevd[504]: seq 2145 '/devices/platform/80860F41:05/i2c-12/i2c-SYNA7500:00' killed
Apr 16 22:59:20 fedlet.happyassassin.net systemd-udevd[504]: worker [529] /devices/platform/80860F41:04/i2c-11/i2c-SMO91D0:00 timeout; kill it
Apr 16 22:59:20 fedlet.happyassassin.net systemd-udevd[504]: seq 2143 '/devices/platform/80860F41:04/i2c-11/i2c-SMO91D0:00' killed
Apr 16 22:59:20 fedlet.happyassassin.net systemd-udevd[504]: worker [526] terminated by signal 9 (Killed)
Apr 16 22:59:20 fedlet.happyassassin.net systemd-udevd[504]: worker [529] terminated by signal 9 (Killed)
Apr 16 22:59:21 fedlet.happyassassin.net kernel: i2c_hid i2c-SYNA7500:00: can't add hid device: -61
Apr 16 22:59:21 fedlet.happyassassin.net kernel: i2c_hid: probe of i2c-SYNA7500:00 failed with error -61
Apr 16 22:59:21 fedlet.happyassassin.net systemd-udevd[504]: worker [525] terminated by signal 9 (Killed)
Apr 16 22:59:21 fedlet.happyassassin.net chronyd[630]: Selected source 206.108.0.132
Apr 16 22:59:21 fedlet.happyassassin.net chronyd[630]: System clock wrong by 0.526987 seconds, adjustment started
Comment 10 Adam Williamson 2014-04-17 06:05:27 UTC
From the 3.14rc6 log:

Apr 16 17:43:02 fedlet.happyassassin.net kernel: i2c_hid i2c-SMO91D0:00: unable to fetch the size of HID descriptor (ret=-121)
...
Apr 16 17:43:02 fedlet.happyassassin.net kernel: i2c_hid i2c-SYNA7500:00: failed to retrieve report from device.

but then after that, hid-multitouch kicks in. With 3.15, it doesn't seem to (even with hid-rmi out of the way).
Comment 11 Doug Johnson 2014-04-18 16:02:06 UTC
I can confirm a similar bug on the ASUS T100A. Multitouch worked in previous kernels but is now broken in 3.15. Here are the relevant log messages:

[    5.487248] input: ATML1000:00 03EB:8C0E as /devices/platform/80860F41:05/i2c-5/i2c-ATML1000:00/0018:03EB:8C0E.0004/input/input8 
[    5.491405] hid-multitouch 0018:03EB:8C0E.0004: input,hidraw3: <UNKNOWN> HID v1.00 Device [ATML1000:00 03EB:8C0E] on  

And then later when I attempt to get data from the device the following appears:

[  170.351034] i2c_designware 80860F41:05: timeout in enabling adapter
[  171.370461] i2c_designware 80860F41:05: controller timed out
[  171.389695] i2c_designware 80860F41:05: Unknown Synopsys component type: 0x00000000
[  171.408678] i2c_hid i2c-ATML1000:00: failed to change power setting.




Looks like the Dell and ASUS have the same touchscreen hardware but different i2c bus drivers.
Comment 12 Doug Johnson 2014-04-18 16:08:48 UTC
Correction: Similar i2c bus drivers but not similar touchscreen hardware.
Comment 13 Adam Williamson 2014-04-18 16:39:25 UTC
Doug: aside from the hid-rmi issue, Benjamin found that the IRQ crash workaround patch breaks this (by interfering with things that try to get an IRQ via ACPI):

"ok, so as told on IRC, the second patch is the problem. It shifts the irq definitions. i2c_hid driver relies on the acpi to get its irq number, and I suspect that the irq it gets is the one not shifted.

The logs shows that no irq gets triggered to i2c_hid, so no events are coming, and thus the driver never get the notification that the reset has been successful.

The guys who made the patch has to find an other way of fixing the problem, because it messes the acpi enumeration."

so, we need to drop that patch until someone comes up with a better approach :(
Comment 14 Doug Johnson 2014-04-18 22:07:33 UTC
I just discovered that for myself a little bit earlier. So, is it a matter of choosing between touchscreen and wifi then at this point? Or does my hack that stops all pinctrl IRQ control work with this OK?
Comment 15 Adam Williamson 2014-04-18 23:03:35 UTC
I'm gonna try a build with just the version of your patch that disables pinctrl IRQ control later. I suspect it'll make the touch screen work again. I don't know if SDIO devices would work in that case, but we're still missing actual driver support for the V8P's wifi anyway so I wouldn't really lose anything. Don't know about other models.
Comment 16 Michael 2014-06-12 16:08:18 UTC
Same problem on Dell XPS 13. Touchscreen works with 3.14 and 3.15 but touchpad only works with 3.14.
Comment 17 Adam Williamson 2014-06-12 16:31:49 UTC
Are you sure that's the same problem? Do you see the same stuff in the logs? This is about touch screens, not touchpads, note. Hard to know what you're seeing without more detail, but it may be more along the lines of https://bugzilla.redhat.com/show_bug.cgi?id=1048314 .

If you post your logs we can probably see whether you're hitting this bug or not.

Note, this bug looks to have actually been addressed:

https://patchwork.kernel.org/patch/4217661/

The hid-rmi driver itself is only tracked for 3.16 and backported to 3.15, so you're definitely only hitting this in 3.15 if you're running a Fedora kernel or other that has backported hid-rmi. You'd need to check with your downstream to get that patch also backported (I'll check if it's in Fedora now). The fix is definitely in Linus' tree for 3.16 now, so I'll mark this as fixed:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/hid/hid-rmi.c?id=ba391e5a5ac6697b8bcae8c0d01439cb765d9ef8
Comment 18 Adam Williamson 2014-06-12 16:34:05 UTC
the patch is applied to Fedora's 3.15 kernels since April 22 (though note it's the older version, not the v2 which was eventually applied upstream).
Comment 19 Michael 2014-06-12 18:09:41 UTC
I have installed aptosid ...
Comment 20 Adam Williamson 2014-06-12 18:30:04 UTC
I don't know what kernel customizations that distro would be using. You'd have to check for yourself. Again, the logs would help identify what problem you are hitting.
Comment 21 Michael 2014-06-12 20:06:57 UTC
it follows quite closely the stable release (mainline)
thus it's since 9. June 3.15
Comment 22 Adam Williamson 2014-06-12 20:15:05 UTC
if they are not backporting the hid-rmi driver from 3.16 then you are definitely not seeing this particular bug, because that driver is not in mainline 3.15 at all. You're probably seeing something more along the lines of RH 1048314 (see link above), though I think that precise bug ought to be resolved by now.
Comment 23 Michael 2014-08-04 09:56:00 UTC
Just installed 3.16 - still the same problem.
The synaptics driver is not loaded for the touchpad.
The touchscreen works fine.
Comment 24 Michael 2014-08-05 10:01:33 UTC
Even 3.16 seems to need patches for the Dell XPS 13 touchpad to work: https://github.com/dhl/pkgbuild-linux-mainline-xps13-9333
Comment 25 Michael 2014-08-05 15:59:50 UTC
forget the previous comment - all there mentioned patches are included in 3.16

Is there any way to get more information about the boot process? Or anything I can try to let the kernel know that there is a touchpad?

Note You need to log in before you can comment on or make changes to this bug.