[PATCH] DMA: PL330: Fix calculating burst_size

From: Kukjin Kim
Date: Mon Jan 09 2012 - 02:11:26 EST


From: Boojin Kim <boojin.kim@xxxxxxxxxxx>

The burst size of PL330 DMAC should be aligned with source
address, destination address and size. If not, PL330 DMAC
HW generates transmit or data mismatch error. This patch
adds the condition that checks the align of source and
destination address for burst size.

Signed-off-by: Boojin Kim <boojin.kim@xxxxxxxxxxx>
Signed-off-by: Kukjin Kim <kgene.kim@xxxxxxxxxxx>
---
drivers/dma/pl330.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index d87d884..c3f7fcb 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -2553,7 +2553,7 @@ pl330_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst,
burst = pi->pcfg.data_bus_width / 8;

while (burst > 1) {
- if (!(len % burst))
+ if (!(len % burst) && !(dst % burst) && !(src % burst))
break;
burst /= 2;
}
--
1.7.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/