Bug 108581 - No touchpad on ASUS Zenbook beacuse i2c loses arbitration
Summary: No touchpad on ASUS Zenbook beacuse i2c loses arbitration
Status: CLOSED CODE_FIX
Alias: None
Product: Drivers
Classification: Unclassified
Component: I2C (show other bugs)
Hardware: x86-64 Linux
: P1 normal
Assignee: Drivers/I2C virtual user
URL:
Keywords:
: 109211 109241 109281 110331 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-11-28 13:30 UTC by János Illés
Modified: 2016-04-18 19:56 UTC (History)
16 users (show)

See Also:
Kernel Version: 4.4-rc6
Tree: Mainline
Regression: No


Attachments
working compiled kernel (940.12 KB, application/octet-stream)
2016-01-07 01:31 UTC, zenPhysics
Details

Description János Illés 2015-11-28 13:30:07 UTC
The touchpad on the ASUS Zenbook UX305CA doesn't work because the driver (elan_i2c) fails due to an i2c error. 


[    4.054751] i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration
[    4.054754] i2c_hid i2c-ELAN1000:00: hid_descr_cmd failed
[    4.071952] i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration
[    4.071955] elan_i2c i2c-ELAN1000:00: writing cmd (0x0005) failed: -11
[    4.071956] elan_i2c i2c-ELAN1000:00: device reset failed: -11
[    4.071957] elan_i2c i2c-ELAN1000:00: device initialize failed: -11
[    4.104790] i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration
[    4.104794] elan_i2c i2c-ELAN1000:00: writing cmd (0x0005) failed: -11
[    4.104795] elan_i2c i2c-ELAN1000:00: device reset failed: -11
[    4.104796] elan_i2c i2c-ELAN1000:00: device initialize failed: -11
[    4.140533] i2c_designware i2c_designware.0: i2c_dw_handle_tx_abort: lost arbitration
[    4.140536] elan_i2c i2c-ELAN1000:00: writing cmd (0x0005) failed: -11
[    4.140537] elan_i2c i2c-ELAN1000:00: device reset failed: -11
[    4.140538] elan_i2c i2c-ELAN1000:00: device initialize failed: -11
[    4.185068] elan_i2c: probe of i2c-ELAN1000:00 failed with error -11
Comment 1 Dmitry Torokhov 2015-12-11 18:54:42 UTC
*** Bug 109211 has been marked as a duplicate of this bug. ***
Comment 2 Dmitry Torokhov 2015-12-11 23:44:35 UTC
*** Bug 109241 has been marked as a duplicate of this bug. ***
Comment 3 Dmitry Torokhov 2015-12-13 04:26:07 UTC
*** Bug 109281 has been marked as a duplicate of this bug. ***
Comment 4 Griffin Ciluffo 2015-12-16 20:55:11 UTC
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.
Comment 5 János Illés 2015-12-16 21:13:49 UTC
I've tried i8042.nomux=1 i8042.reset but nothing changed.

Should I try something else?
Comment 6 Griffin Ciluffo 2015-12-16 21:31:54 UTC
i8042.kbdreset=1 does not work either
Comment 8 Griffin Ciluffo 2015-12-22 18:41:17 UTC
The touchpad gets recognized? Can this also work on debian systems? And are you still on rc2?
Comment 9 János Illés 2015-12-22 19:06:44 UTC
Well I guess it can work on debian systems.

I'm on mainline rc6 currently and the touchpad doesn't work.
Comment 10 mama 2015-12-28 19:40:48 UTC
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. :)
Comment 12 nakednous 2015-12-31 16:15:55 UTC
sorry for duplicating the message. Next time I'll read throughout the whole thread :)
Comment 13 zenPhysics 2015-12-31 17:16:48 UTC
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?
Comment 14 zenPhysics 2015-12-31 17:17:45 UTC
Should have said I'm on Ubuntu 14.04LTS.
Comment 15 D. Hugh Redelmeier 2016-01-01 21:23:49 UTC
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.
Comment 16 Andrew Klaus 2016-01-02 01:21:28 UTC
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.
Comment 17 zenPhysics 2016-01-05 20:17:38 UTC
Works for me, too.  Thanks, Andrew.
I'm using Ubuntu 15.10 on an Asus Zenbok UX305CA
Comment 18 Michael 2016-01-06 13:52:59 UTC
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. ;)
Comment 19 zenPhysics 2016-01-07 01:31:09 UTC
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!
Comment 20 zenPhysics 2016-01-07 01:33:10 UTC
Hm.  There's a maximum size limit on attachments.  If I'm able to upload the files elsewhere I'll let you know.
Comment 21 Andrew Klaus 2016-01-07 07:12:15 UTC
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
Comment 22 Michael 2016-01-07 08:06:27 UTC
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.
Comment 23 Andrew Klaus 2016-01-07 17:00:36 UTC
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.
Comment 24 zenPhysics 2016-01-07 19:41:20 UTC
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!
Comment 25 Michael 2016-01-08 08:12:47 UTC
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.
Comment 26 mama 2016-01-08 15:43:37 UTC
zenPhysics, thanks a lot, my touchpad finally works now. :)
Comment 27 Griffin Ciluffo 2016-01-13 17:16:02 UTC
Thanks zenPhysics! Confirmed working on Ubuntu 14.04
Comment 28 Andrew Klaus 2016-01-13 17:21:53 UTC
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.
Comment 29 Griffin Ciluffo 2016-01-13 17:46:23 UTC
I tried 4.4.0 and touchpad remains undetected.
Comment 30 Andrew Klaus 2016-01-13 18:18:26 UTC
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.
Comment 31 Andrew Klaus 2016-01-13 18:28:00 UTC
Speak of the devil. It looks like Linus pulled these patches into mainline about 14 hours ago: https://github.com/torvalds/linux/commit/67990608c8b95d2b8ccc29932376ae73d5818727
Comment 32 Kulcsar Gergo 2016-01-13 19:48:25 UTC
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.
Comment 33 Griffin Ciluffo 2016-01-15 17:47:41 UTC
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.
Comment 34 Andrew Klaus 2016-01-15 20:38:53 UTC
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.
Comment 35 Kulcsar Gergo 2016-01-19 18:41:23 UTC
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
Comment 36 Andrew Klaus 2016-01-20 03:04:05 UTC
(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
Comment 37 Wolfram Sang 2016-01-20 23:47:24 UTC
*** Bug 110331 has been marked as a duplicate of this bug. ***
Comment 38 Wolfram Sang 2016-01-20 23:52:09 UTC
Reported fixed. Thanks for all the input here.
Comment 39 Dennis Schridde 2016-02-08 01:04:55 UTC
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
Comment 40 Wolfram Sang 2016-02-08 10:17:10 UTC
It depends on a series of patches, so it is not trivial to backport. I
pinged the developer and asked is opinion.
Comment 41 Bram Bouwens 2016-04-04 21:04:10 UTC
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.
Comment 42 Bram Bouwens 2016-04-18 18:59:16 UTC
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
Comment 43 Wolfram Sang 2016-04-18 19:56:28 UTC
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.

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