RE: Mx28 USB workaround for errata

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

 



 
> >> The reason was an mx28 errata: "ENGR119653 USB: ARM to USB register
> >> error issue"
> 
> Peter, does this erratum only affect mx28?

Yes

> >>
> >> Freescale issued a patch for 2.6.35 to workaround this problem last
> >> year. I ported this patch. However, it is not totally "device tree
> >> compatible". I mean, this patch is only needed for mx28, not for the
> >> other SOCs using chipidea, and I used ifdefs. So you can't compile a
> >> kernel both for mx28 and e.g. for mx23. If you check the patch, you
> see,
> >> that it is modifying the lowest layer, the writel() function; it is
> >> changing it to an SWP instruction. According the errata, I need to use
> >> SWP instructions to write USB registers.
> >
> > Presumably you _could_ use the SWP instructions for other SOCs, but
> > they would slow down the driver.  Right?
> >
> >> So I'm curious, what other possibilities do I have to make this patch
> >> device tree compatible? I mean, I can't check the machine's type on
> each
> >> USB register writing.
> >
> > Actually you can.  See the definition of ehci_writel for an example.
> >
> >> Then I could use function pointers for register
> >> writing function, or weak aliases somehow. But that would causes an
> >> overhead because of the additional function calling, instead of simple
> >> inline assembly codes.
> >>
> >> What's the standard way in this case? Or should I just leave the patch
> >> as it is?
> >
> > Let's see what the Freescale and ChipIdea maintainers suggest.
 
I will try to submit patches for both ehci and chipidea driver.

Best regards,
Peter

��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥





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

  Powered by Linux