[U-Boot] [PATCH 3/4 V2] USB: Drop cache flush bloat in EHCI-HCD
Marek Vasut
marex at denx.de
Thu May 24 15:21:30 CEST 2012
Dear Anatolij Gustschin,
> Hi Marek,
>
> On Mon, 9 Apr 2012 06:47:31 +0200
>
> Marek Vasut <marex at denx.de> wrote:
> > Discard the creepy cache flushing mechanisms in ehci-hcd.c and replace
> > them with more straightforward flushing. In the new approach, the
> > flushing takes place directly in ehci_submit_async() call instead of
> > going through the QH list and flushing all members and buffers. This
> > discards a lot of weird bit operations on the members of QH and qTD
> > structures.
> >
> > NOTE: Certainly, this flushes even qTDs which are possibly unused in some
> > transactions, though the overhead of the previous code was much higher
> > than is the overhead of flushing two more cache lines (which most
> > probably aren't even cached).
> >
> > Signed-off-by: Marek Vasut <marex at denx.de>
> > Cc: Puneet Saxena <puneets at nvidia.com>
> > ---
> >
> > drivers/usb/host/ehci-hcd.c | 127
> > +++++++++---------------------------------- 1 files changed, 27
> > insertions(+), 100 deletions(-)
>
> Unfortunately this patch breaks compiling for many powerpc boards, mpc512x,
> mpc83xx, mpc85xx and QorIQ Px based with USB support enabled.
Because they have broken cache implementation, right? I mean, they have their
own snooping methods, so they don't need the cache flushing at all, but then, if
they don't, these methods (dcache_flush() etc) should be optimized to empty
functions. Maybe we should implement them for these CPUs then? btw. I thought
these compiled before, hm...
> Thanks,
> Anatolij
Best regards,
Marek Vasut
More information about the U-Boot
mailing list