• Sarah Sharp's avatar
    Revert "usbcore: set lpm_capable field for LPM capable root hubs" · 6cafd971
    Sarah Sharp authored
    commit 140e3026a57ab7d830dab2f2c57796c222db0ea9 upstream.
    
    Commit 9df89d85b407690afa46ddfbccc80bec6869971d "usbcore: set
    lpm_capable field for LPM capable root hubs" was created under the
    assumption that all USB host controllers should have USB 3.0 Link PM
    enabled for all devices under the hosts.
    
    Unfortunately, that's not the case.  The xHCI driver relies on knowledge
    of the host hardware scheduler to calculate the LPM U1/U2 timeout
    values, and it only sets lpm_capable to one for Intel host controllers
    (that have the XHCI_LPM_SUPPORT quirk set).
    
    When LPM is enabled for some Fresco Logic hosts, it causes failures with
    a AgeStar 3UBT USB 3.0 hard drive dock:
    
    Jan 11 13:59:03 sg-laptop kernel: usb 3-1: new SuperSpeed USB device number 2 using xhci_hcd
    Jan 11 13:59:03 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U1 failed.
    Jan 11 13:59:08 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U2 failed.
    Jan 11 13:59:08 sg-laptop kernel: usb-storage 3-1:1.0: USB Mass Storage device detected
    Jan 11 13:59:08 sg-laptop mtp-probe[613]: checking bus 3, device 2: "/sys/devices/pci0000:00/0000:00:1c.3/0000:04:00.0/usb3/3-1"
    Jan 11 13:59:08 sg-laptop mtp-probe[613]: bus: 3, device: 2 was not an MTP device
    Jan 11 13:59:08 sg-laptop kernel: scsi6 : usb-storage 3-1:1.0
    Jan 11 13:59:13 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U1 failed.
    Jan 11 13:59:18 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U2 failed.
    Jan 11 13:59:18 sg-laptop kernel: usbcore: registered new interface driver usb-storage
    Jan 11 13:59:40 sg-laptop kernel: usb 3-1: reset SuperSpeed USB device number 2 using xhci_hcd
    Jan 11 13:59:41 sg-laptop kernel: usb 3-1: device descriptor read/8, error -71
    Jan 11 13:59:41 sg-laptop kernel: usb 3-1: reset SuperSpeed USB device number 2 using xhci_hcd
    Jan 11 13:59:46 sg-laptop kernel: usb 3-1: device descriptor read/8, error -110
    Jan 11 13:59:46 sg-laptop kernel: scsi 6:0:0:0: Device offlined - not ready after error recovery
    Jan 11 13:59:46 sg-laptop kernel: usb 3-1: USB disconnect, device number 2
    
    lspci for the affected host:
    
    04:00.0 0c03: 1b73:1000 (rev 04) (prog-if 30 [XHCI])
            Subsystem: 1043:1039
            Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
            Latency: 0, Cache Line Size: 64 bytes
            Interrupt: pin A routed to IRQ 19
            Region 0: Memory at dd200000 (32-bit, non-prefetchable) [size=64K]
            Capabilities: [50] Power Management version 3
                    Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                    Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
                    Address: 0000000000000000  Data: 0000
            Capabilities: [80] Express (v1) Endpoint, MSI 00
                    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <2us, L1 <32us
                            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                    DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                            MaxPayload 128 bytes, MaxReadReq 512 bytes
                    DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                            ClockPM- Surprise- LLActRep- BwNot-
                    LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
            Kernel driver in use: xhci_hcd
            Kernel modules: xhci_hcd
    
    The commit was backported to stable kernels, and will need to be
    reverted there as well.
    Signed-off-by: 's avatarSarah Sharp <sarah.a.sharp@intel.com>
    Reported-by: 's avatarSergey Galanov <sergey.e.galanov@gmail.com>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6cafd971
Name
Last commit
Last update
..
atm Loading commit data...
c67x00 Loading commit data...
chipidea Loading commit data...
class Loading commit data...
core Loading commit data...
dwc3 Loading commit data...
early Loading commit data...
gadget Loading commit data...
host Loading commit data...
image Loading commit data...
misc Loading commit data...
mon Loading commit data...
musb Loading commit data...
phy Loading commit data...
renesas_usbhs Loading commit data...
serial Loading commit data...
storage Loading commit data...
wusbcore Loading commit data...
Kconfig Loading commit data...
Makefile Loading commit data...
README Loading commit data...
usb-common.c Loading commit data...
usb-skeleton.c Loading commit data...