Sunday, September 27, 2020

[fedora-arm] Re: Raspberry Pi 3B/3B+ USB

> 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.

The USB on the RPi 0-3 devices is somewhat broken, and there's issues
that make it extremely slow which the RPi foundation hacks around with
their completely different driver. It was clear from the outset that
the hacks for that driver would never go upstream and as a result the
upstream driver on the RPi basically runs at half speed and has issues
with devices that need high bandwidth.

I've seen some devices that also manage to hit USB in such a way on
the RPi to cause issues too, we had a wifi adapter that did this, and
it's also sometimes a bug in the device driver that just happens to
trigger on the RPi due to the issues. You can see one example in the
following two links, I wonder if the Stream Deck driver has similar
issues:
https://marc.info/?t=154971423200001&r=1&w=2
https://patchwork.kernel.org/cover/10807911/
_______________________________________________
arm mailing list -- arm@lists.fedoraproject.org
To unsubscribe send an email to arm-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org

No comments:

Post a Comment