common: bouncebuf: Permit passing custom alignment check function
Add extended version of the bounce_buffer_start(), which permits passing in a custom alignment checker function for the buffer. This is useful e.g. on systems with various DMA restrictions and where the checker function might be more complex than a simple CPU cache alignment check. Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Peng Fan <peng.fan@nxp.com> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@konsulko.com>
This commit is contained in:
@@ -62,6 +62,21 @@ struct bounce_buffer {
|
||||
*/
|
||||
int bounce_buffer_start(struct bounce_buffer *state, void *data,
|
||||
size_t len, unsigned int flags);
|
||||
|
||||
/**
|
||||
* bounce_buffer_start() -- Start the bounce buffer session with external align check function
|
||||
* state: stores state passed between bounce_buffer_{start,stop}
|
||||
* data: pointer to buffer to be aligned
|
||||
* len: length of the buffer
|
||||
* flags: flags describing the transaction, see above.
|
||||
* alignment: alignment of the newly allocated bounce buffer
|
||||
* addr_is_aligned: function for checking the alignment instead of the default one
|
||||
*/
|
||||
int bounce_buffer_start_extalign(struct bounce_buffer *state, void *data,
|
||||
size_t len, unsigned int flags,
|
||||
size_t alignment,
|
||||
int (*addr_is_aligned)(struct bounce_buffer *state));
|
||||
|
||||
/**
|
||||
* bounce_buffer_stop() -- Finish the bounce buffer session
|
||||
* state: stores state passed between bounce_buffer_{start,stop}
|
||||
|
||||
Reference in New Issue
Block a user