Bug 108581
Summary: | No touchpad on ASUS Zenbook beacuse i2c loses arbitration | ||
---|---|---|---|
Product: | Drivers | Reporter: | János Illés (ijanos) |
Component: | I2C | Assignee: | Drivers/I2C virtual user (drivers-i2c) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | ajbogh, andrewklaus, bram, bugzilla, devurandom, fredrik, griffinciluffo, hugh, kjohnson, kulcsar_gergo, leue, mama, marci_r, nakednous, pellesimon, wsa |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 4.4-rc6 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | working compiled kernel |
Description
János Illés
2015-11-28 13:30:07 UTC
*** Bug 109211 has been marked as a duplicate of this bug. *** *** Bug 109241 has been marked as a duplicate of this bug. *** *** Bug 109281 has been marked as a duplicate of this bug. *** Has any combination of kernel boot parameters been able to detect the touchpad? Seems most hardware detection issues can be resolved in default grub file. However, I am not sure if the boot parameters are related to the i2c bus at all. Since it seems like its confirmed that the bus is the problem. I've tried i8042.nomux=1 i8042.reset but nothing changed. Should I try something else? i8042.kbdreset=1 does not work either I've found a patch in the fedora kernel tree that fixes the issue: http://pkgs.fedoraproject.org/cgit/kernel.git/tree/0014-mfd-intel-lpss-Pass-SDA-hold-time-to-I2C-host-contro.patch?id=d2ede0b2227fc00e3c80bdd4043245332c3047a8 The touchpad gets recognized? Can this also work on debian systems? And are you still on rc2? Well I guess it can work on debian systems. I'm on mainline rc6 currently and the touchpad doesn't work. I'm running 4.4.0-040400rc7-generic #201512272230 SMP Mon Dec 28 03:32:16 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux on an Asus UX305C. Touchpad doesn't work, seems to be related to the I2C bug mentioned here. [ 8.827499] i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration [ 8.827511] i2c_hid i2c-ELAN1000:00: hid_descr_cmd failed [ 8.846565] i2c-ELAN1000:00 supply vcc not found, using dummy regulator [ 8.847534] i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration [ 8.847540] elan_i2c i2c-ELAN1000:00: writing cmd (0x0005) failed: -11 [ 8.847542] elan_i2c i2c-ELAN1000:00: device reset failed: -11 [ 8.847544] elan_i2c i2c-ELAN1000:00: device initialize failed: -11 Would love to see this fixed soon. :) A fedora patch fix can be found here: http://pkgs.fedoraproject.org/cgit/kernel.git/tree/0014-mfd-intel-lpss-Pass-SDA-hold-time-to-I2C-host-contro.patch?id=d2ede0b2227fc00e3c80bdd4043245332c3047a8 sorry for duplicating the message. Next time I'll read throughout the whole thread :) I tried downloading the patched files and recompiling my kernel (3.19) but it still doesn't recognize the touchpad on my Asus Zenbook UX305C. Can someone tell me what I'm missing? Do I need to be on a 4.x kernel for the patch to work? Should have said I'm on Ubuntu 14.04LTS. I have an Asus Zenbook UX305CA. Several things, including the touchpad, failed to work on Fedora 23 (kernel-4.2.8-300.fc23.x86_64). All seem to work with the rawhide kernel-4.4.0.0.rc6.git1.2.fc24.x86_64 installed into Fedora 23. I'm on Arch. First 16 patches from http://pkgs.fedoraproject.org/cgit/kernel.git/tree/ on a 4.4.0-rc7 kernel with .config pulled from Arch default kernel worked for me! Touchpad fully working. Works for me, too. Thanks, Andrew. I'm using Ubuntu 15.10 on an Asus Zenbok UX305CA Hey guys, I am affected by the same problem using Ubuntu 15.10 on an Asus Zenbok UX305CA . Could you go into some more detail on how you applied the mentioned Fedora fix? I am not really following how you pull certain patches from the fedora Kernel tree and "combine" them with your current kernel. Any help is greatly appreciated. ;) Created attachment 198901 [details]
working compiled kernel
Hi,
I compiled a kernel that works on my Asus Zenbook 305CA. I'll upload each of the 5 files separately. After downloading all 5 into one (otherwise empty) directory, open a shell and navigate to that directory. Then type:
sudo dpkg -i *.deb
That will install the new kernel. Restart and choose that kernel from the grub startup options (might be hidden under "Custom Ubuntu" or something like that).
Hope this helps!
Hm. There's a maximum size limit on attachments. If I'm able to upload the files elsewhere I'll let you know. It appears that the patches are in the linux-next tree: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/?id=028af5941dd870afd5eb6a95c39f25564dcca79a That basically means that the patches will appear in the upcoming mainline Kernel (4.5) or am I mistaken? I guess I'd rather rely on your method of pulling in the relevant changes into the 4.4 kernel, because as I understand it, the linux-next kernel is more like a testing-ground to see whether different changes in the merge window affect each other? If zenPhysics manages to upload his custom kernel somewhere I guess I'd prefer that solution for me, because I really lack the experience of playing around with kernel builds, let alone using the linux-next kernel. Once the touchpad works I can then just wait for the 4.5 mainline to be released and use that one. Thanks for all the help. I branched the linux 4.4.0-rc8 source tree and applied the patches that worked for me on my Asus UX305CA. The patched sources are available here: https://github.com/precurse/linux/archive/ux305ca_patches.zip and the source tree showing the patches applied is here: https://github.com/precurse/linux/tree/ux305ca_patches You'll need to read your own distro documentation on how to compile a kernel, but this is a great resource: https://wiki.archlinux.org/index.php/Kernels/Compilation/Traditional Make sure you copy your .config from your running kernel, so it will save you time and headache on updating the config yourself. For those running Ubuntu 15.10 you can download already compiled kernel .deb fiels at: http://www.godisbeautiful.net/4.4rc8deb/ After downloading all 5 files into one (otherwise empty) directory, open a shell and navigate to that directory. Then type: sudo dpkg -i *.deb That will install the new kernel. Restart and choose that kernel from the grub startup options (might be hidden under "Custom Ubuntu" or something like that). This works on my Asus Zenbook UX305CA. Hope it works for others, too! Thanks a lot zenPhysics. The touchpad on my Zenbook UX305CA now works like a charm with the Kernel you uploaded. Thank you for your effort and time. zenPhysics, thanks a lot, my touchpad finally works now. :) Thanks zenPhysics! Confirmed working on Ubuntu 14.04 4.4.0 has been officially released now, but there isn't that much difference between rc8.. So the version zenPhysics compiled is pretty close to the latest stable version. I'll keep monitoring to see when these patches get applied to the mainline branch. I tried 4.4.0 and touchpad remains undetected. That's right. The proper patches have not been applied to the mainline branch yet. I hope they get them in for 4.5 release so that we don't need to keep patching every kernel release. Speak of the devil. It looks like Linus pulled these patches into mainline about 14 hours ago: https://github.com/torvalds/linux/commit/67990608c8b95d2b8ccc29932376ae73d5818727 I've got an Asus e403SA notebook with the same elan touchpad. My experiences are different from the others. I'm on Ubuntu 15.10 with stock 4.2.x kernel. The touchpad works as a ps/2 mouse without multitouch and recognised as ELAN1000:xxx. With 4.3 or 4.4 kernel everything works fine (recognision, multitouch) but after a while (minutes, sometimes hours) the touchpad freezes. In the syslog appears these: Jan 5 20:55:27 darkslide-notebook kernel: [ 1531.867948] i2c_designware 808622C 1:03: Unknown Synopsys component type: 0x00000000 Jan 5 20:55:27 darkslide-notebook kernel: [ 1531.893399] i2c_designware 808622C 1:03: timeout in enabling adapter Jan 5 20:55:28 darkslide-notebook kernel: [ 1532.892319] i2c_designware 808622C 1:03: controller timed out Jan 5 20:55:28 darkslide-notebook kernel: [ 1532.892334] i2c_designware 808622C 1:03: Unknown Synopsys component type: 0x00000000 Jan 5 20:55:28 darkslide-notebook kernel: [ 1532.892343] elan_i2c i2c-ELAN1000:00: failed to read report data: -110 The kernel of zenPhysics doesn't work for me. I'll appreciate any ideas about the problem of mine. When should we expect the patches to be applied to the mainline branch? My touchpad works with zenphysic's patch great but it interferes with some of development software. I know cause when I switch to 4.4 everything works fine. Not a huge issue but would be nice to get one kernel version and stick with it. The patches are in mainline, but won't be 'stable' until 4.5 is released. Only after that will the distros use this. And each distro decides when the latest kernel is released. Arch (what I use) tends to be quicker to adopt the latest kernel (currently 4.3.3 by default), but Ubuntu generally stays a couple back. That's not to say you won't have the option of installing the latest kernel from repos. Just continue using 4.4+patches for now until 4.5 is out of release candidate - assuming that it works for you. Has anybody got information about the merging of the bugfix in the 4.5(rc1) kernel? I'm just confused about why zenPhysics's kernel doesn't work in my case. If everything is right, I've got the same touchpad, identified as "ELAN1000". Do I need to submit another ticket? Reference for elan identifiers: http://cateee.net/lkddb/web-lkddb/MOUSE_ELAN_I2C.html (In reply to Kulcsar Gergo from comment #35) > Has anybody got information about the merging of the bugfix in the 4.5(rc1) > kernel? I'm just confused about why zenPhysics's kernel doesn't work in my > case. If everything is right, I've got the same touchpad, identified as > "ELAN1000". Do I need to submit another ticket? > > Reference for elan identifiers: > http://cateee.net/lkddb/web-lkddb/MOUSE_ELAN_I2C.html Yes. As per above, the patches have already been applied to the mainline kernel which will become 4.5. If zenPhysic's kernel won't work for you, you may want to try compiling the latest kernel yourself, but it's not recommended for production. There may be another patch that was a applied that gets it to work, but your mileage may vary. But I'd probably just create a new ticket to have someone look at it. Make sure you search the errors you're getting, just in case someone has already opened one up. Cheers *** Bug 110331 has been marked as a duplicate of this bug. *** Reported fixed. Thanks for all the input here. Could this please be backported to Linux 4.4 stable? The patch appears to conform to the stable kernel rules: https://www.kernel.org/doc/Documentation/stable_kernel_rules.txt It depends on a series of patches, so it is not trivial to backport. I pinged the developer and asked is opinion. I noticed that on Fedora 23 the problem is fixed in kernel 4.4.0-0.rc8.git0.1.fc24 provided the i915.preliminary_hw_support is enabled, but 4.4.6-300.fc23 is still broken, though it seems to be newer. Just checked again: ``` Linux neptunus.bouwens.biz 4.4.6-301.fc23.x86_64 #1 SMP Wed Mar 30 16:43:58 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux ``` and the log has ``` Apr 18 20:53:14 neptunus.bouwens.biz kernel: i2c_hid i2c-ELAN1000:00: hid_descr_cmd failed Apr 18 20:53:14 neptunus.bouwens.biz kernel: i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration Apr 18 20:53:14 neptunus.bouwens.biz kernel: elan_i2c i2c-ELAN1000:00: writing cmd (0x0005) failed: -11 Apr 18 20:53:14 neptunus.bouwens.biz kernel: elan_i2c i2c-ELAN1000:00: device reset failed: -11 Apr 18 20:53:14 neptunus.bouwens.biz kernel: elan_i2c i2c-ELAN1000:00: device initialize failed: -11 Apr 18 20:53:14 neptunus.bouwens.biz kernel: i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration Apr 18 20:53:14 neptunus.bouwens.biz kernel: elan_i2c i2c-ELAN1000:00: writing cmd (0x0005) failed: -11 Apr 18 20:53:14 neptunus.bouwens.biz kernel: elan_i2c i2c-ELAN1000:00: device reset failed: -11 Apr 18 20:53:14 neptunus.bouwens.biz kernel: elan_i2c i2c-ELAN1000:00: device initialize failed: -11 Apr 18 20:53:14 neptunus.bouwens.biz kernel: elan_i2c: probe of i2c-ELAN1000:00 failed with error -11 ``` which I find strange if the bug is fixed in 4.4rc6 Commit 028af5941dd870afd5eb6a95c39f25564dcca79a is only present in kernels 4.5 and above. Due to the intrusive dependencies, it has not been backported to 4.4-stable. It was also not present in official 4.4-rc6. I don't know about Fedora differences to upstream kernels. |