]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Wed, 5 Dec 2018 09:41:15 +0000 (17:41 +0800)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 14 Jan 2019 09:28:55 +0000 (09:28 +0000)
commit4178d55b0bc5d6d9d02cbd4ddfb7b9a0801220bc
tree4c284d794d5e26e19dd1c147d71351f7244a9cb2
parentdda7c6b187e1caabd948abf4bb7a6441117964b0
USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub

BugLink: https://bugs.launchpad.net/bugs/1806850
Devices connected under Terminus Technology Inc. Hub (1a40:0101) may
fail to work after the system resumes from suspend:
[  206.063325] usb 3-2.4: reset full-speed USB device number 4 using xhci_hcd
[  206.143691] usb 3-2.4: device descriptor read/64, error -32
[  206.351671] usb 3-2.4: device descriptor read/64, error -32

Info for this hub:
T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=480 MxCh= 4
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1a40 ProdID=0101 Rev=01.11
S:  Product=USB 2.0 Hub
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

Some expirements indicate that the USB devices connected to the hub are
innocent, it's the hub itself is to blame. The hub needs extra delay
time after it resets its port.

Hence wait for extra delay, if the device is connected to this quirky
hub.

Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Cc: stable <stable@vger.kernel.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(backported from commit 781f0766cc41a9dd2e5d118ef4b1d5d89430257b)
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Kleber Souza <kleber.souza@canonical.com>
Acked-by: AceLan Kao <acelan.kao@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
Documentation/admin-guide/kernel-parameters.txt
drivers/usb/core/hub.c
drivers/usb/core/quirks.c
include/linux/usb/quirks.h