aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/dma/amba-pl08x.c14
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 */
552static inline size_t pl08x_pre_boundary(u32 addr, size_t len) 553static 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/*