Thread (19 messages) 19 messages, 5 authors, 2021-07-11

Re: ODROID-C1/-C2 USB Detection only triggered by some devices

From: Alan Stern <stern@rowland.harvard.edu>
Date: 2021-06-30 00:35:58
Also in: linux-amlogic

On Tue, Jun 29, 2021 at 06:30:08PM +0200, Martin Blumenstingl wrote:
Hi Alan,

On Tue, Jun 29, 2021 at 6:18 PM Alan Stern [off-list ref] wrote:
[...]
quoted
quoted
quoted
        usbcore.autosuspend=-1
wow, this helps indeed
my steps are:
- power off my Odroid-C1+
- unplug all USB devices
- boot with usbcore.autosuspend=-1 in the kernel cmdline
- plugin my Corsair Voyager USB 3.0 flash drive (which was only
detected before if an additional USB 2.0 flash drive was plugged in
during boot)
-> without any lsusb magic the device was immediately recognized
That does show pretty convincingly that runtime suspend is causing the
problem.  But I still have no idea why the problem affects some devices
and not others.  It's a mystery.
Maybe because there's two related problems (I am guessing here):
The first issue is that USB hotplug is not working at all on my
Odroid-C1+ (which means: dwc2 + GL852G USB hub).
The second issue is that the workaround we had before (running lsusb
-vv to make "hot plugged" devices show up) is not working for some USB
devices.

It seems that using a different workaround (usbcore.autosuspend=-1)
makes *all* USB devices show up - even without any "lsusb -vv" call.
So I think we should focus on the first issue as it may also fix the
other problem as well.
Those two issues could well be related; they could both be a result of 
improper handling of USB bus suspend.  Fixing that might fix both 
issues.

Alan Stern
[...]
quoted
quoted
after rebooting without usbcore.autosuspend=-1 (and no USB device
plugged in during boot):
# grep "" /sys/bus/usb/devices/*/power/autosuspend
/sys/bus/usb/devices/1-1/power/autosuspend:0
/sys/bus/usb/devices/usb1/power/autosuspend:0

I think the next step is narrowing down which component is causing this issue.
Maybe Minas can help.  He knows a lot more about dwc2 than I do (which
is practically nothing).
I'll wait for Minas then
quoted
quoted
Interestingly my PC (running 5.12.13-arch1-2) also has two Genesys
Logic USB hubs with the same USB vendor and device IDs as my
Odroid-C1+: 05e3:0610.
These hubs are connected to my AMD Ryzen 5000 CPU or the B550 chipset:
usb1              1d6b:0002 09 1IF  [USB 2.00,   480 Mbps,   0mA]
(xhci-hcd 0000:02:00.0) hub
 1-3               05e3:0610 09 1IF  [USB 2.10,   480 Mbps, 100mA]
(GenesysLogic USB2.0 Hub) hub
[...]
 1-7               05e3:0610 09 1IF  [USB 2.00,   480 Mbps, 100mA]
(Genesys Logic, Inc. Hub) hub

So far I have not observed any problems on my PC.
Presumably because it uses xHCI rather than dwc2.
indeed. I think it's good to know that it's not an issue affecting all
Genesys Logic USB 2.0 hubs.
As you mentioned above it's most likely that dwc2 is the culprit here.
Or it might be some interoperability issue between dwc2 and GL852G


Best regards,
Martin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help