ExpressCard uPD720202 2 port USB 3.0 controller hangs and disconnects when both ports are used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

https://bugzilla.kernel.org/buglist.cgi?quicksearch=uPD72020&list_id=1019103
reveals a whole list of 'NEW'-state bugs for this chip. The mileage
varies, but here is a detailed description of the issue I face on laptop
with ECUSB3S254F from StarTech:

https://www.startech.com/Cards-Adapters/USB-3.0/Cards/2-Port-Flush-Mount-USB-3-ExpressCard-Adapter~ECUSB3S254F

The system is running GNU/Gentoo Linux with kernel 5.0.3, same problem
was observed with kernel 4.19.27 for a reference.

Most of the bugs mentioned in the bugzilla list from the start of the
email exist, however I manage to workaround them by simply telling the
PCI bus to remove the ID and/or rescan for new devices.

Commands to use:

echo 1 > /sys/bus/pci/devices/0000\:04\:00.0/remove
echo 1 > /sys/bus/pci/rescan

When a single USB port is in use, chances are that the device will just
work(though sometimes IO subsystem to the connected USB device may just
hang, but this is for another time). However, if you plug in two USB
devices, say two USB sticks or disks, then it fails to work.

[  136.136819] xhci_hcd 0000:04:00.0: xHCI host controller not
responding, assume dead
[  136.136836] xhci_hcd 0000:04:00.0: HC died; cleaning up

or

[  341.214239] xhci_hcd 0000:04:00.0: remove, state 1
[  341.214258] usb usb4: USB disconnect, device number 1
[  341.214801] xhci_hcd 0000:04:00.0: USB bus 4 deregistered
[  341.214956] xhci_hcd 0000:04:00.0: remove, state 4
[  341.214968] usb usb3: USB disconnect, device number 1
[  341.216006] xhci_hcd 0000:04:00.0: Host halt failed, -19
[  341.216016] xhci_hcd 0000:04:00.0: Host not accessible, reset failed.
[  341.216480] xhci_hcd 0000:04:00.0: USB bus 3 deregistered

Power issues I rule out, as I have provided auxiliary external source of
5V and more than enough AMPs, so the controller should be able to feed
the needed. Also it happens with USB sticks, which do not draw a lot of
AMPs.

Here is the controller as reported by lspci -nn:
04:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB
3.0 Host Controller [1912:0015] (rev 02)

and the verbose output of lspci attached to the email.

lsusb -t:
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

(UAS kernel module is also available, but I believe a kernel quirk
disables it for this controller/disk), thus it falls back to
usb-storage, which is ok.

Any hope to get this to behave under Linux? The vendor only lists
Windows as a supported OS, however it seems like the linux driver is
almost there too...

Any pointers/patches/suggestions are welcome.
I did not open a separate bug for this, as there are too many 'NEW' already.

Thank you,
-Nikolay

04:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02) (prog-if 30 [XHCI])
	Subsystem: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller
	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 18
	Region 0: Memory at e5b00000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
		Vector table: BAR=0 offset=00001000
		PBA: BAR=0 offset=00001080
	Capabilities: [a0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
		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 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 unlimited
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
		LnkCtl:	ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR+, OBFF Not Supported
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
			 AtomicOpsCtl: ReqEn-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux