On 4/6/20 7:55 PM, Marek Vasut wrote: > On 4/6/20 4:58 AM, Jaehoon Chung wrote: >> On 4/4/20 7:45 PM, Marek Vasut wrote: >>> 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+rene...@gmail.com> >>> Cc: Daniel Schwierzeck <daniel.schwierz...@gmail.com> >>> Cc: Masahiro Yamada <yamada.masah...@socionext.com> >>> Cc: Peng Fan <peng....@nxp.com> >>> Cc: Simon Glass <s...@chromium.org> >>> Cc: Tom Rini <tr...@konsulko.com> >>> --- >>> V2: No change >>> --- >>> common/bouncebuf.c | 20 +++++++++++++++----- >>> include/bouncebuf.h | 15 +++++++++++++++ >>> 2 files changed, 30 insertions(+), 5 deletions(-) >>> >>> diff --git a/common/bouncebuf.c b/common/bouncebuf.c >>> index 614eb36c78..0ace152b98 100644 >>> --- a/common/bouncebuf.c >>> +++ b/common/bouncebuf.c >>> @@ -31,17 +31,19 @@ static int addr_aligned(struct bounce_buffer *state) >>> return 1; >>> } >>> >>> -int bounce_buffer_start(struct bounce_buffer *state, void *data, >>> - size_t len, unsigned int flags) >>> +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)) >>> { >>> state->user_buffer = data; >>> state->bounce_buffer = data; >>> state->len = len; >>> - state->len_aligned = roundup(len, ARCH_DMA_MINALIGN); >>> + state->len_aligned = roundup(len, alignment); >>> state->flags = flags; >>> >>> - if (!addr_aligned(state)) { >>> - state->bounce_buffer = memalign(ARCH_DMA_MINALIGN, >>> + if (!addr_is_aligned(state)) { >> >> how about checking condition whether addr_is_aligned function is present or >> not at here? > > If it's not present, then you're misusing this function.
Right, i'm misusing this function at that case. But i think that someone can do it like me. It's just my opinion. :) Best Regards, Jaehoon Chung > >