[RFC][USB] powerpc: Workaround for the PPC440EPX USBH_23 errata
Alan Stern
stern at rowland.harvard.edu
Fri Aug 29 06:13:30 EST 2008
On Thu, 28 Aug 2008, Vitaly Bordug wrote:
> > This doesn't explain why the fatal error occurs.
> >
> On certain 44x set of SoCs, only one controller is able to function,
> e.g. technically they are mutually exclusive.
>
> There used to be recommendation to use only hi-speed or full-speed
> devices with specific conditions, when respective module was unloaded.
> Later, it was observed that ohci suspend is enough to keep things
> going, and it was turned into workaround, as explained below.
Okay, good. _This_ is what you should have put in the patch
description, instead of all that other stuff.
> > I have some doubts about parts of this patch.
> What stands about noted gotchas, I agree and will fix them, thanks for
> looking through the patch. I agree this doesn't look pleasant, but
> unfortunately is the only way to say use USB keyboard, and hi-speed
> memory stick at the same time.
Your original post mentioned that the 440EPx has only one USB 2.0 host
port. Then how can you use a keyboard and memory stick at the same
time? You'd have to plug them into a hub -- in which case only one
controller would be needed, the one driving the hub. The patch would
be unnecessary.
> > I doubt this will interact properly with usbcore and the rest of
> > ohci-hcd. They do not expect the root hub to be suspended unless they
> > know about it.
>
> I need to reemphasize, that upper is not "normal", but unfortunately
> the only way to have both full and hi-speed usb live in peace with
> 44xEPX family. Quirks are not going to be executed on other chip
> anyway, and on chip in question, it was tested and works stable enough.
>
> I can add an explicit warning, that workaround is being utilised, to
> make things clear if it will be considered appropriate.
Do these systems support CONFIG_PM? If they do then your patch
shouldn't be needed, because then ohci-hcd will automatically suspend
the OHCI root hub 1 second after the last full/low-speed device is
unplugged. You could reduce that 1 second value if you wanted to
decrease the probability of conflicts.
Alan Stern
More information about the Linuxppc-dev
mailing list