Skip to content
  • Stephen Warren's avatar
    common: rework bouncebuf implementation · 84d35b28
    Stephen Warren authored
    
    
    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: default avatarStephen Warren <swarren@nvidia.com>
    Acked-by: default avatarSimon Glass <sjg@chromium.org>
    Tested-by: default avatarSimon Glass <sjg@chromium.org>
    Signed-off-by: default avatarAndy Fleming <afleming@freescale.com>
    84d35b28