Bug 206897

Summary: Huion tablet not recognized from kernel 5.3.1
Product: Drivers Reporter: Hector (hebm12)
Component: USBAssignee: Default virtual assignee for Drivers/USB (drivers_usb)
Status: NEW ---    
Severity: normal CC: andryandrew, florianmey, gdevenyi, hawk.it, henning, kernel.org, leho, miren_radia, msdeleonpeque, passini.valerio
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: from 5.3.1 to 5.6-rc6 Tree: Mainline
Regression: No
Attachments: dmesg 20200408
trace 20200408

Description Hector 2020-03-20 21:54:47 UTC
Hi Kernel Experts!

My Huion 1060plus tablet is not recognized from kernel version 5.3.1

dmesg output is:

[ 4168.587592] usb 1-1.1: new full-speed USB device number 13 using xhci_hcd
[ 4168.990456] usb 1-1.1: New USB device found, idVendor=256c, idProduct=006e, bcdDevice=30.00
[ 4168.990461] usb 1-1.1: New USB device strings: Mfr=5, Product=6, SerialNumber=0
[ 4168.990463] usb 1-1.1: Product: PenTablet 
[ 4169.003082] usb 1-1.1: can't set config #1, error -32

Previous working versions have this output:

[   62.724538] usb 2-3.1: new full-speed USB device number 3 using xhci_hcd
[   62.851463] usb 2-3.1: New USB device found, idVendor=256c, idProduct=006e, bcdDevice=30.00
[   62.851470] usb 2-3.1: New USB device strings: Mfr=5, Product=6, SerialNumber=0
[   62.851475] usb 2-3.1: Product: PenTablet 
[   62.909757] hidraw: raw HID events driver (C) Jiri Kosina
[   62.929599] usbcore: registered new interface driver usbhid
[   62.929601] usbhid: USB HID core driver
[   62.939433] input: PenTablet  as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.0/0003:256C:006E.0001/input/input15
[   62.939691] input: PenTablet  Mouse as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.0/0003:256C:006E.0001/input/input16
[   62.939804] hid-generic 0003:256C:006E.0001: input,hidraw0: USB HID v1.11 Mouse [PenTablet ] on usb-0000:00:14.0-3.1/input0
[   62.943515] input: PenTablet  Mouse as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.1/0003:256C:006E.0002/input/input17
[   62.943646] input: PenTablet  as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.1/0003:256C:006E.0002/input/input18
[   62.943805] hid-generic 0003:256C:006E.0002: input,hiddev0,hidraw1: USB HID v1.11 Mouse [PenTablet ] on usb-0000:00:14.0-3.1/input1
[   62.944370] input: PenTablet  Keyboard as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.2/0003:256C:006E.0003/input/input19
[   62.951136] usb 2-3.4: new high-speed USB device number 4 using xhci_hcd
[   62.997966] input: PenTablet  Consumer Control as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.2/0003:256C:006E.0003/input/input20
[   62.998070] input: PenTablet  System Control as /devices/pci0000:00/0000:00:14.0/usb2/2-3/2-3.1/2-3.1:1.2/0003:256C:006E.0003/input/input21
[   62.998161] hid-generic 0003:256C:006E.0003: input,hidraw2: USB HID v1.0b Keyboard [PenTablet ] on usb-0000:00:14.0-3.1/input2

Looking further down, the commit that creates the problem is (thanks to https://bbs.archlinux.org/viewtopic.php?pid=1878478#p1878478):

commit ef513be0a9057cc6baf5d29566aaaefa214ba344
Author: Jim Lin <jilin@nvidia.com>
Date:   Mon Jun 3 18:53:44 2019 +0800

    usb: xhci: Add Clear_TT_Buffer
    USB 2.0 specification chapter 11.17.5 says "as part of endpoint halt
    processing for full-/low-speed endpoints connected via a TT, the host
    software must use the Clear_TT_Buffer request to the TT to ensure
    that the buffer is not in the busy state".
    In our case, a full-speed speaker (ConferenceCam) is behind a high-
    speed hub (ConferenceCam Connect), sometimes once we get STALL on a
    request we may continue to get STALL with the folllowing requests,
    like Set_Interface.
    Here we invoke usb_hub_clear_tt_buffer() to send Clear_TT_Buffer
    request to the hub of the device for the following Set_Interface
    requests to the device to get ACK successfully.
    Signed-off-by: Jim Lin <jilin@nvidia.com>
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

drivers/usb/host/xhci-ring.c | 27 ++++++++++++++++++++++++++-
drivers/usb/host/xhci.c      | 21 +++++++++++++++++++++
drivers/usb/host/xhci.h      |  5 +++++
3 files changed, 52 insertions(+), 1 deletion(-)

Thanks for your help!
Comment 1 Valerio Passini 2020-03-23 05:31:07 UTC
*** Bug 206921 has been marked as a duplicate of this bug. ***
Comment 2 Jan Jurzitza 2020-03-29 16:05:22 UTC
this is a regression, ef513be0a9057cc6baf5d29566aaaefa214ba344 is the first bad commit
Comment 3 Andrea Olivo 2020-04-06 17:52:04 UTC
I recently bought the tablet. If there's testing to be done, I am willing to help with it
Comment 4 Vincenzo Di Massa 2020-04-08 10:05:45 UTC
Hello, please have look at bug 206897, they look related.

Bug 206897, comment 21 asks to provide logs with the following procedure... maybe we can anticipate it here for our device. Let's see who gets the job done faster :-)

### Detailed log generation procedure from Bug 206897, comment 21

> Also traces and logs with more usb details enabled could be useful.
> These can be taken with any recent kernel.

> mount -t debugfs none /sys/kernel/debug
> echo 'module xhci_hcd =p' >/sys/kernel/debug/dynamic_debug/control
> echo 'module usbcore =p' >/sys/kernel/debug/dynamic_debug/control
> echo 81920 > /sys/kernel/debug/tracing/buffer_size_kb
> echo 1 > /sys/kernel/debug/tracing/events/xhci-hcd/enable
> < connect the logitec device >
> Send output of dmesg
> Send content of /sys/kernel/debug/tracing/trace
Comment 5 Henning Eiden 2020-04-08 13:15:31 UTC
(In reply to Vincenzo Di Massa from comment #4)


I am facing the same issue. Trace and dmesg uploaded.


Comment 6 Henning Eiden 2020-04-08 13:16:20 UTC
Created attachment 288281 [details]
dmesg 20200408
Comment 7 Henning Eiden 2020-04-08 13:17:22 UTC
Created attachment 288283 [details]
trace 20200408
Comment 8 Vincenzo Di Massa 2020-04-10 18:00:23 UTC
bug 207065, comment 7 contains two patches to fix the problem.
Comment 9 Henning Eiden 2020-04-10 18:19:39 UTC
Comment 10 Valerio Passini 2020-04-11 10:56:21 UTC
(In reply to Vincenzo Di Massa from comment #8)
> bug 207065, comment 7 contains two patches to fix the problem.

Hi, I tried your patches and I can confirm that the graphical tablet is now recognized and the pen works; I've not tested all the features, but I think that you have probably hit the right spot.