diff mbox

Lenovo Active Pen 2 and wacom tablet on yoga 920

Message ID CANRwn3SWMhrodDbgDn3WzzwEZcgvdo_vWndesD=O87JiEBWAyg@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Gerecke, Jason Dec. 11, 2017, 6:19 p.m. UTC
On Fri, Dec 8, 2017 at 2:24 PM, Kevin Fenzi <kevin@scrye.com> wrote:
> On 12/08/2017 01:24 PM, Jason Gerecke wrote:
>> Sorry about the delay in getting back to you on this issue. It looks
>
> No problem at all. Thanks for looking into it!
>
>> like there are several different reasons that we could be getting
>> EREMOTEIO from the lower levels. Would you mind running the sysinfo.sh
>> script described at [1] and filing a bug to the project with the
>> output attached?
>
> Done:
> https://github.com/linuxwacom/wacom-hid-descriptors/issues/9
>
>> This should give me an idea of what kind of hardware
>> is present in your 920. You might also try doing the following to see
>> if anything interesting gets printed to the dmesg log:
>>
>>     # echo "file drivers/i2c/*.c +p" > /sys/kernel/debug/dynamic_debug/control
>>     # modprobe -r wacom
>>     # modprobe wacom
>
> Seems to say:
>
> # echo "file drivers/i2c/*.c +p" > /sys/kernel/debug/dynamic_debug/control
> -bash: /sys/kernel/debug/dynamic_debug/control: Operation not permitted
>
>>
>> Some of the I2C modules (which I suspect your sensor is using) log
>> debug messages prior to returning EREMOTEIO. The above will cause
>> these debug messages to be printed to dmesg and then reload the wacom
>> module. With luck, we might gain a little more information about
>> what's triggering the error.
>
> Sadly not... but I will poke and it and see if I can figure out why it's
> not working.
>
> kevin
>

Thanks for the sysinfo output :) It looks like your system has the
sensor connected through a designware I2C controller. The only place I
see EREMOTEIO used within the designware driver is to signal that it
got a NAK at some point during the transfer. It is supposed to print
out additional details using dev_dbg, but that won't be useful until
the "Operation not permitted" error is overcome.

Some NAK conditions are transient, so its possible that our driver
just needs to retry the command. Please read the page at [1] for
instructions to compile out out-of-tree version of the wacom driver.
In place of the "Download" instructions on that page, use the
"Development" instructions. Once you're set, apply the attached patch
by running `git am /path/to/file.patch` from within the input-wacom
directory. Compile the driver and then load it in place of the system
driver by running `sudo modprobe -r wacom && sudo insmod
4.5/wacom.ko`. Check to see if there's any interesting dmesg output
and if the pen works.

[1]: http://linuxwacom.sourceforge.net/wiki/index.php/Input-wacom

Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one  /
(That is to say, eight) to the two,     /
But you can’t take seven from three,    /
So you look at the sixty-fours....

Comments

Kevin Fenzi Dec. 11, 2017, 9:03 p.m. UTC | #1
On 12/11/2017 10:19 AM, Jason Gerecke wrote:
> 
> Thanks for the sysinfo output :) It looks like your system has the
> sensor connected through a designware I2C controller. The only place I
> see EREMOTEIO used within the designware driver is to signal that it
> got a NAK at some point during the transfer. It is supposed to print
> out additional details using dev_dbg, but that won't be useful until
> the "Operation not permitted" error is overcome.
> 
> Some NAK conditions are transient, so its possible that our driver
> just needs to retry the command. Please read the page at [1] for
> instructions to compile out out-of-tree version of the wacom driver.
> In place of the "Download" instructions on that page, use the
> "Development" instructions. Once you're set, apply the attached patch
> by running `git am /path/to/file.patch` from within the input-wacom
> directory. Compile the driver and then load it in place of the system
> driver by running `sudo modprobe -r wacom && sudo insmod
> 4.5/wacom.ko`. Check to see if there's any interesting dmesg output
> and if the pen works.
> 
> [1]: http://linuxwacom.sourceforge.net/wiki/index.php/Input-wacom

So, not much change in dmesg:

[Mon Dec 11 12:38:16 2017] wacom: loading out-of-tree module taints kernel.
[Mon Dec 11 12:38:16 2017] wacom: module verification failed: signature and/or required key missing - tainting kernel
[Mon Dec 11 12:38:18 2017] input: Wacom HID 5110 Pen as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-6/i2c-WCOM5110:00/0018:056A:5110.0003/input/input24
[Mon Dec 11 12:38:18 2017] input: Wacom HID 5110 Finger as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-6/i2c-WCOM5110:00/0018:056A:5110.0003/input/input25
[Mon Dec 11 12:38:18 2017] wacom 0018:056A:5110.0003: hidraw3: I2C HID v1.00 Mouse [WCOM5110:00 056A:5110] on i2c-WCOM5110:00
[Mon Dec 11 12:38:20 2017] i2c_hid i2c-WCOM5110:00: failed to set a report to device.
[Mon Dec 11 12:38:20 2017] wacom 0018:056A:5110.0003: wacom_set_report: ran out of retries (last error = -121)
[Mon Dec 11 12:38:20 2017] i2c_hid i2c-WCOM5110:00: failed to set a report to device.

However, the pen now works. ;) 

The tablet/stylus doesn't show up in gnome prefs oddly, but that could be
a problem in the stack somewhere. ;( 

kevin
Gerecke, Jason Dec. 11, 2017, 11:23 p.m. UTC | #2
On Mon, Dec 11, 2017 at 1:03 PM, Kevin Fenzi <kevin@scrye.com> wrote:
> On 12/11/2017 10:19 AM, Jason Gerecke wrote:
>>
>> Thanks for the sysinfo output :) It looks like your system has the
>> sensor connected through a designware I2C controller. The only place I
>> see EREMOTEIO used within the designware driver is to signal that it
>> got a NAK at some point during the transfer. It is supposed to print
>> out additional details using dev_dbg, but that won't be useful until
>> the "Operation not permitted" error is overcome.
>>
>> Some NAK conditions are transient, so its possible that our driver
>> just needs to retry the command. Please read the page at [1] for
>> instructions to compile out out-of-tree version of the wacom driver.
>> In place of the "Download" instructions on that page, use the
>> "Development" instructions. Once you're set, apply the attached patch
>> by running `git am /path/to/file.patch` from within the input-wacom
>> directory. Compile the driver and then load it in place of the system
>> driver by running `sudo modprobe -r wacom && sudo insmod
>> 4.5/wacom.ko`. Check to see if there's any interesting dmesg output
>> and if the pen works.
>>
>> [1]: http://linuxwacom.sourceforge.net/wiki/index.php/Input-wacom
>
> So, not much change in dmesg:
>
> [Mon Dec 11 12:38:16 2017] wacom: loading out-of-tree module taints kernel.
> [Mon Dec 11 12:38:16 2017] wacom: module verification failed: signature and/or required key missing - tainting kernel
> [Mon Dec 11 12:38:18 2017] input: Wacom HID 5110 Pen as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-6/i2c-WCOM5110:00/0018:056A:5110.0003/input/input24
> [Mon Dec 11 12:38:18 2017] input: Wacom HID 5110 Finger as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-6/i2c-WCOM5110:00/0018:056A:5110.0003/input/input25
> [Mon Dec 11 12:38:18 2017] wacom 0018:056A:5110.0003: hidraw3: I2C HID v1.00 Mouse [WCOM5110:00 056A:5110] on i2c-WCOM5110:00
> [Mon Dec 11 12:38:20 2017] i2c_hid i2c-WCOM5110:00: failed to set a report to device.
> [Mon Dec 11 12:38:20 2017] wacom 0018:056A:5110.0003: wacom_set_report: ran out of retries (last error = -121)
> [Mon Dec 11 12:38:20 2017] i2c_hid i2c-WCOM5110:00: failed to set a report to device.
>
> However, the pen now works. ;)
>

\o/

Guess I'll have to add EREMOTEIO to our whitelist of "things to retry on"...

> The tablet/stylus doesn't show up in gnome prefs oddly, but that could be
> a problem in the stack somewhere. ;(
>
> kevin
>
>

GNOME only shows devices that have a libwacom entry, so we'll need to
add one for your device. The sysinfo output you gave should be enough
for me to whip one up. Go ahead and file a bug at
https://github.com/linuxwacom/libwacom/issues with a link to your
wacom-hid-descriptors bug in case somebody else gets to it before me.
If I don't get to it myself in the next few days, please do poke me :)

Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one  /
(That is to say, eight) to the two,     /
But you can’t take seven from three,    /
So you look at the sixty-fours....
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

From 1f846c7d78034b1946080cc9ffb6672f5cfe638c Mon Sep 17 00:00:00 2001
From: Jason Gerecke <killertofu@gmail.com>
Date: Mon, 11 Dec 2017 10:16:11 -0800
Subject: [PATCH input-wacom] TEST: Always retry in get/set report

---
 4.5/wacom_sys.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/4.5/wacom_sys.c b/4.5/wacom_sys.c
index 39aaab0..036b5bb 100644
--- a/4.5/wacom_sys.c
+++ b/4.5/wacom_sys.c
@@ -52,7 +52,7 @@  static int wacom_get_report(struct hid_device *hdev, u8 type, u8 *buf,
 	do {
 		retval = hid_hw_raw_request(hdev, buf[0], buf, size, type,
 				HID_REQ_GET_REPORT);
-	} while ((retval == -ETIMEDOUT || retval == -EAGAIN) && --retries);
+	} while (--retries);
 
 	if (retval < 0)
 		hid_err(hdev, "wacom_get_report: ran out of retries "
@@ -69,7 +69,7 @@  static int wacom_set_report(struct hid_device *hdev, u8 type, u8 *buf,
 	do {
 		retval = hid_hw_raw_request(hdev, buf[0], buf, size, type,
 				HID_REQ_SET_REPORT);
-	} while ((retval == -ETIMEDOUT || retval == -EAGAIN) && --retries);
+	} while (--retries);
 
 	if (retval < 0)
 		hid_err(hdev, "wacom_set_report: ran out of retries "
-- 
2.15.1