[U-Boot] [PATCH V2 3/4] common: rework bouncebuf implementation

Simon Glass sjg at chromium.org
Tue Nov 6 23:53:57 CET 2012


On Tue, Nov 6, 2012 at 1:27 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> From: Stephen Warren <swarren at nvidia.com>
>
> The current bouncebuf API requires all parameters to be passed to both
> bounce_buffer_start() and bounce_buffer_stop(). Modify the bouncebuf
> start function to accept a state structure as a parameter, and only
> require that state struct to be passed to the stop function. This
> simplifies usage of the bounce buffer by clients.
>
> Don't modify the data pointer, but rather store the temporary buffer in
> this state struct. The bouncebuf code ensures that client code can
> always use a single buffer pointer in the state structure, irrespective
> of whether a bounce buffer actually had to be allocated.
>
> Move cache management logic into the bounce buffer code, so that each
> client doesn't have to duplicate this. I believe there's no need to
> invalidate the buffer before a DMA operation, since flushing the cache
> should prevent any write-backs.
>
> Update the MXS MMC driver for this change.
>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>

Tested on Seaboard, loading a kernel from ext2 partition.

Acked-by: Simon Glass <sjg at chromium.org>
Tested-by: Simon Glass <sjg at chromium.org>

This is a really nice change, thank you Stephen.

Regards,
Simon


More information about the U-Boot mailing list