diff options
-rw-r--r-- | drivers/dma/amba-pl08x.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c index f61940434669..7c327c315878 100644 --- a/drivers/dma/amba-pl08x.c +++ b/drivers/dma/amba-pl08x.c | |||
@@ -547,19 +547,15 @@ static void pl08x_fill_lli_for_desc(struct pl08x_driver_data *pl08x, | |||
547 | } | 547 | } |
548 | 548 | ||
549 | /* | 549 | /* |
550 | * Return number of bytes to fill to boundary, or len | 550 | * Return number of bytes to fill to boundary, or len. |
551 | * This calculation works for any value of addr. | ||
551 | */ | 552 | */ |
552 | static inline size_t pl08x_pre_boundary(u32 addr, size_t len) | 553 | static inline size_t pl08x_pre_boundary(u32 addr, size_t len) |
553 | { | 554 | { |
554 | u32 boundary; | 555 | size_t boundary_len = PL08X_BOUNDARY_SIZE - |
556 | (addr & (PL08X_BOUNDARY_SIZE - 1)); | ||
555 | 557 | ||
556 | boundary = ((addr >> PL08X_BOUNDARY_SHIFT) + 1) | 558 | return min(boundary_len, len); |
557 | << PL08X_BOUNDARY_SHIFT; | ||
558 | |||
559 | if (boundary < addr + len) | ||
560 | return boundary - addr; | ||
561 | else | ||
562 | return len; | ||
563 | } | 559 | } |
564 | 560 | ||
565 | /* | 561 | /* |