• Kai-Heng Feng's avatar
    USB: Wait for extra delay time after USB_PORT_FEAT_RESET for quirky hub · ed8acd13
    Kai-Heng Feng authored
    commit 781f0766 upstream.
    
    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: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
    Cc: stable <stable@vger.kernel.org>
    Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    ed8acd13
hub.c 170 KB