> ... assuming you fix the OHCI_BIG_ENDIAN_MMIO typo and #ifdef,
> and other stuff as noted below.  And that you sanity checked it
> on some x86 PC, since I didn't make time for that and since we'd
> all be unhappy if there were some goof in this area.  ;)

I'll try to find an x86 box to boot it on later today and will re-send.

> ... those two lines were wrong, as I guess testing on CELL woud show ...

I actually don't have access to that "mixed" endian hardware just yet
(it should be on the way...).

> > +   ohci_dbg (ohci, "enabled big endian Toshiba quirk\n");
> > +#else
> > +   ohci_err (ohci, "unsupported big endian Toshiba quirk\n");
> 
> I think you should just "ohci_dbg" here and "return -ENXIO"; after
> all, the point of having a failure case here is ... to allow failure!

Yes, I actually added the failure case on purpose (se we can do
blacklists etc...) and forgot to use it, how lame :-) Fixed.

> >  };
> > @@ -444,112 +445,126 @@
> >   * of checking a flag bit.
> >   */
> >  
> > -#ifdef CONFIG_USB_OHCI_BIG_ENDIAN
> > +#ifdef CONFIG_USB_OHCI_BIG_ENDIAN_DESC
> 
> Since it's kind of bizarre, please update the comments (just the tail end
> shown above) to explain that not only did some vendors not stick to little
> endian, but they went overboard and mixed both conventions in the same chip.
> (What you're calling "split" endian.)

Yes. In fact, I though the macro trick would be enough to cover all
cases, but that isn't entirely true... If you build in the kernel both a
"mixed" endian and big endian, but not little endian, then mixed endian
will not work as the LE case will not be defined. Ouch...

I need to rework the macro logic a little bit.

> >  /*
> >   * Big-endian read/write functions are arch-specific.
> >   * Other arches can be added if/when they're needed.
> > + * Note that arch/powerpc now has readl/writel_be, so the
> 
> That's the kind of note I'd rather see flagged as REVISIT ... since
> a "note" is usually a "remember this" but a REVISIT is just a milder
> form of a FIXME.

Ok.

> > + * definition below can die once the STB04xxx support is
> > + * finally ported over.
> >   */
> > -#if defined(CONFIG_PPC)
> > +#if defined(CONFIG_PPC) && !defined(CONFIG_PPC_MERGE)
> >  #define readl_be(addr)             in_be32((__force unsigned *)addr)
> >  #define writel_be(val, addr)       out_be32((__force unsigned *)addr, val)
> >  #endif
> >  
> > -static inline unsigned int ohci_readl (const struct ohci_hcd *ohci,
> > -                                                   __hc32 __iomem * regs)
> > +static inline unsigned int _ohci_readl (const struct ohci_hcd *ohci,
> > +                                   __hc32 __iomem * regs)
> 
> Hmm, didn't Jeff Garzik queue a patch to change how some of this readl()
> magic works?  Check Greg's patch queue; there may be a conflict.

I haven't seen it, I'll take a peek at greg's tree

Ben.



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to