I'm trying to set up a Raspberry Pi 3B (or a 3B+) to run an Elgato Stream Deck (if you've never heard of that it's basically a fancy macro keyboard). I've had no problems using the Stream Deck on my x86_64 desktop (Fedora 32) and on a Raspberry Pi 3B or 3B+ running Raspbian (kernel 5.4.51-v7+).

However all of my attempts trying to run my code on Fedora (tried using both 32 and 33 alpha 64-bit) result in the USB bus on the Raspberry Pi locking up after a minute or so. It appears to be the whole bus as unplugging the Stream Deck and plugging it back in have no effect. Only a full reboot appears to restore functionality. The following messages appear in the kernel:

dwc2 3f980000.usb: dwc2_hc_halt() Channel can't be halted

So it would seem to me that Raspbian still has some secret sauce for the USB bus on the Raspberry Pi that hasn't been upstreamed yet. Googling around appears to confirm this. Raspbian uses dwc_otg_hcd, a highly optimized driver for host-only mode (despite the name). The upstream kernel offers dwc2 which can switch between host mode and OTG mode and is also apparently buggy as well.

This isn't really a call for help or action as there's probably not much the Fedora community can do. Really it's more of an opportunity to vent my frustration at the Raspberry Pi Foundation developers that haven't worked harder at upstreaming all of their changes.

--
Jeff Ollie
The majestik møøse is one of the mäni interesting furry animals in Sweden.