Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wacom_set_report: ran out of retries (EREMOTEIO) #25

Closed
AndreaOrru opened this issue Apr 16, 2018 · 9 comments
Closed

wacom_set_report: ran out of retries (EREMOTEIO) #25

AndreaOrru opened this issue Apr 16, 2018 · 9 comments
Labels
need info Waiting on information from bug reporter

Comments

@AndreaOrru
Copy link

AndreaOrru commented Apr 16, 2018

I'm using the latest version of the driver (0.39.0) on a 4.15.15 kernel (Arch Linux) on my Lenovo Yoga 920. I'm getting the following message when I load the module:

[ 1042.530504] input: Wacom HID 5110 Pen as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-WCOM5110:00/0018:056A:5110.0001/input/input27
[ 1042.530863] input: Wacom HID 5110 Finger as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-WCOM5110:00/0018:056A:5110.0001/input/input28
[ 1042.531119] wacom 0018:056A:5110.0001: hidraw1: I2C HID v1.00 Mouse [WCOM5110:00 056A:5110] on i2c-WCOM5110:00
[ 1043.745527] i2c_hid i2c-WCOM5110:00: failed to set a report to device.
[ 1043.745543] wacom 0018:056A:5110.0001: wacom_set_report: ran out of retries (last error = -121)
[ 1043.745704] i2c_hid i2c-WCOM5110:00: failed to set a report to device.

-121 seems to be a EREMOTEIO error. However, the touchscreen works just fine. Any idea why this is happening?

P.S. This seems to be related:
https://patchwork.kernel.org/patch/10105647/

@jigpu
Copy link
Member

jigpu commented Apr 17, 2018

Looks like a proper fix was never created and sent upstream (just the test patch in your link). We should have something for you to test shortly.

jigpu added a commit to jigpu/input-wacom that referenced this issue Apr 24, 2018
It appears that some I2C controllers will send EREMOTEIO if a NAK is
triggered at some point during the transfer. Some NAK conditions are
transient, so it makes sense to retry the get/set command rather than
failing, especially if the get/set occurs during the probe process.

Ref: https://patchwork.kernel.org/patch/10105647/
Ref: linuxwacom#25
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
@jigpu
Copy link
Member

jigpu commented Apr 24, 2018

Sorry for the delay. I've created a fix-issue-25 branch on my repository; would you mind cloning and checking that it fixes the issue for you?

git clone https://github.com/jigpu/input-wacom -b fix-issue-25

@jigpu jigpu added the need info Waiting on information from bug reporter label Apr 26, 2018
@AndreaOrru
Copy link
Author

AndreaOrru commented Apr 28, 2018

Same error :(

I'm using the correct version, I believe (freshly compiled).

$ grep "" /sys/module/wacom*/version
v2.00-0.38.0.64.g65ebb48

$ modinfo -n wacom
/lib/modules/4.16.4-1-ARCH/extra/wacom.ko.xz

$ ls -al /lib/modules/4.16.4-1-ARCH/extra/wacom.ko.xz
-rw-r--r-- 1 root root 38244 Apr 28 18:10 /lib/modules/4.16.4-1-ARCH/extra/wacom.ko.xz

@phileas2
Copy link

phileas2 commented May 1, 2018

Same exact problem on my Lenovo Yoga 920. Touchscreen works fine as well.
Current setup: Solus kernel 4.15.17-65.
I believe this error is also responsible for a little system freeze during login.

$ grep "" /sys/module/wacom*/version
v2.00

 $ modinfo -n wacom
/lib/modules/4.15.17-65.current/kernel/drivers/hid/wacom.ko

 $ ls -al /lib/modules/4.15.17-65.current/kernel/drivers/hid/wacom.ko
-rw-r--r-- 1 root root 194672 Apr 20 13:52 /lib/modules/4.15.17-65.current/kernel/drivers/hid/wacom.ko

@jigpu
Copy link
Member

jigpu commented May 8, 2018

I haven't been able to come up with any reason the patch shouldn't work, so I've updated my branch to have the same (completely hacky) fix in the linked Yoga 920 thread. Let's see if that at least works, and then work backwards towards something that still reliably sets up the sensor without being as hacky.

@AndreaOrru please run git checkout fix-issue-25 and git pull from inside your input-wacom source directory and then rebuild/reinstall the driver.

@phileas2 Please run git clone https://github.com/jigpu/input-wacom -b fix-issue-25 to clone a copy of the branch and then rebuild/reinstall the driver.

@phileas2
Copy link

phileas2 commented May 21, 2018

Sorry for the late response, as you can see the driver is reinstalled properly

$ grep "" /sys/module/wacom*/version
v2.00-0.38.0.65.g59e0375

But the issue still persists :

[    8.593970] input: Wacom HID 5113 Pen as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-WCOM5113:00/0018:056A:5113.0001/input/input23
[    8.594217] input: Wacom HID 5113 Finger as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-WCOM5113:00/0018:056A:5113.0001/input/input24
[    8.594415] wacom 0018:056A:5113.0001: hidraw1: I2C HID v1.00 Mouse [WCOM5113:00 056A:5113] on i2c-WCOM5113:00
[   10.616721] i2c_designware i2c_designware.0: controller timed out
[   10.616734] i2c_hid i2c-WCOM5113:00: failed to set a report to device.
[   10.616736] wacom 0018:056A:5113.0001: wacom_set_report: ran out of retries (last error = -110)
[   11.626945] i2c_designware i2c_designware.0: controller timed out
[   11.626989] i2c_hid i2c-WCOM5113:00: failed to set a report to device.

But here's another update to the issue:
It turns out this is also a Lenovo Active Pen 2 issue. The system completely freezes during boot (right after login screen) when the pen is already turned on, leaving me a plethora of controller timed out kernel messages

[    8.593970] input: Wacom HID 5113 Pen as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-WCOM5113:00/0018:056A:5113.0001/input/input23
[    8.594217] input: Wacom HID 5113 Finger as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-WCOM5113:00/0018:056A:5113.0001/input/input24
[    8.594415] wacom 0018:056A:5113.0001: hidraw1: I2C HID v1.00 Mouse [WCOM5113:00 056A:5113] on i2c-WCOM5113:00
[   10.616721] i2c_designware i2c_designware.0: controller timed out
[   10.616734] i2c_hid i2c-WCOM5113:00: failed to set a report to device.
[   10.616736] wacom 0018:056A:5113.0001: wacom_set_report: ran out of retries (last error = -110)
[   11.626945] i2c_designware i2c_designware.0: controller timed out
[   11.626989] i2c_hid i2c-WCOM5113:00: failed to set a report to device.
[   12.640626] i2c_designware i2c_designware.0: controller timed out
[   13.653415] i2c_designware i2c_designware.0: controller timed out
[   14.666746] i2c_designware i2c_designware.0: controller timed out
[   15.680631] i2c_designware i2c_designware.0: controller timed out
[   16.693816] i2c_designware i2c_designware.0: controller timed out
[   17.707318] i2c_designware i2c_designware.0: controller timed out
[   18.720083] i2c_designware i2c_designware.0: controller timed out
[   19.733984] i2c_designware i2c_designware.0: controller timed out
[   20.747307] i2c_designware i2c_designware.0: controller timed out
[   21.760646] i2c_designware i2c_designware.0: controller timed out
[   22.773409] i2c_designware i2c_designware.0: controller timed out
[   23.786744] i2c_designware i2c_designware.0: controller timed out
[   24.800072] i2c_designware i2c_designware.0: controller timed out
[   25.813419] i2c_designware i2c_designware.0: controller timed out
[   26.826749] i2c_designware i2c_designware.0: controller timed out
[   27.840088] i2c_designware i2c_designware.0: controller timed out
[   28.853944] i2c_designware i2c_designware.0: controller timed out
[   29.866751] i2c_designware i2c_designware.0: controller timed out
[   30.880078] i2c_designware i2c_designware.0: controller timed out
[   31.893412] i2c_designware i2c_designware.0: controller timed out
[   32.906743] i2c_designware i2c_designware.0: controller timed out
[   33.920078] i2c_designware i2c_designware.0: controller timed out
[   33.920120] i2c_hid i2c-WCOM5113:00: failed to change power setting.
[   34.933400] i2c_designware i2c_designware.0: controller timed out
[   35.946735] i2c_designware i2c_designware.0: controller timed out
[   36.960080] i2c_designware i2c_designware.0: controller timed out
[   37.973980] i2c_designware i2c_designware.0: controller timed out
[   38.986733] i2c_designware i2c_designware.0: controller timed out
[   40.000070] i2c_designware i2c_designware.0: controller timed out
[   41.013412] i2c_designware i2c_designware.0: controller timed out
[   42.026749] i2c_designware i2c_designware.0: controller timed out
[   43.040080] i2c_designware i2c_designware.0: controller timed out
[   44.053414] i2c_designware i2c_designware.0: controller timed out
[   45.067276] i2c_designware i2c_designware.0: controller timed out
[   46.080631] i2c_designware i2c_designware.0: controller timed out
[   47.093970] i2c_designware i2c_designware.0: controller timed out
[   48.106724] i2c_designware i2c_designware.0: controller timed out
[   49.120063] i2c_designware i2c_designware.0: controller timed out
[   50.133394] i2c_designware i2c_designware.0: controller timed out
[   51.146736] i2c_designware i2c_designware.0: controller timed out
[   52.160077] i2c_designware i2c_designware.0: controller timed out
[   53.173821] i2c_designware i2c_designware.0: controller timed out
[   54.186744] i2c_designware i2c_designware.0: controller timed out
[   55.200063] i2c_designware i2c_designware.0: controller timed out
[   56.213409] i2c_designware i2c_designware.0: controller timed out
[   57.226727] i2c_designware i2c_designware.0: controller timed out
[   58.240069] i2c_designware i2c_designware.0: controller timed out
[   59.253397] i2c_designware i2c_designware.0: controller timed out
[   60.266725] i2c_designware i2c_designware.0: controller timed out
[   61.280059] i2c_designware i2c_designware.0: controller timed out
[   62.293398] i2c_designware i2c_designware.0: controller timed out
[   63.306729] i2c_designware i2c_designware.0: controller timed out
[   64.320071] i2c_designware i2c_designware.0: controller timed out
[   65.333399] i2c_designware i2c_designware.0: controller timed out
[   66.346724] i2c_designware i2c_designware.0: controller timed out
[   67.360065] i2c_designware i2c_designware.0: controller timed out
[   67.360102] i2c_hid i2c-WCOM5113:00: failed to change power setting.
[   68.373980] i2c_designware i2c_designware.0: controller timed out

Once I turn the pen off, the system freeze goes off. And everything works out of the box including the pen itself after turning it on again.

There's also a more technical related bug that might solve the issue.

@jigpu
Copy link
Member

jigpu commented May 30, 2018

Hmm. Does what you're experiencing sound like bug #28? The "last error" in your logs is -110 which better matches that bug (as opposed to a "last error" of -121 for this bug). These two bugs could very well be related...

@AndreaOrru can you see if your system reports error number -121 while using the fix-issue-25 branch? I wonder if this branch is fixing one error (-121) but then something else is still failing later in the process (-110).

@jigpu jigpu changed the title wacom_set_report: ran out of retries wacom_set_report: ran out of retries (EREMOTEIO) May 30, 2018
@jigpu
Copy link
Member

jigpu commented May 30, 2018

Oops, nevermind. I forgot that bug #28 is dealing with a system that has a USB-attached sensor, not an I2C-attached sensor like for these systems. Its less likely that they're the same or related issues...

@Pinglinux
Copy link
Member

I'd say it is a system/hardware, not a tablet/driver, issue. Those integrated systems/laptops require more integration testing, which is beyond the scope of this project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need info Waiting on information from bug reporter
Projects
None yet
Development

No branches or pull requests

4 participants