[PATCH] ppc: fix memory-to-memory DMA on PPC4xx

Niklaus Giger niklaus.giger at member.fsf.org
Sat Jan 20 07:40:35 EST 2007


[PATCH] pcc: fix memory-to-memory DMA on PPC4xx

During a memory-to-memory DMA transfers using the PPC4xx internal DMA 
controllers the source and destination addresses were not incremented after 
each data transfer.

Signed-off-by: Niklaus Giger <niklaus.giger at member.fsf.org>
---
c97d534851539b5ac18a90761bba9ea261545972
 arch/ppc/syslib/ppc4xx_dma.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/ppc/syslib/ppc4xx_dma.c b/arch/ppc/syslib/ppc4xx_dma.c
index 1eef4ff..1cb68a6 100644
--- a/arch/ppc/syslib/ppc4xx_dma.c
+++ b/arch/ppc/syslib/ppc4xx_dma.c
@@ -104,7 +104,8 @@ ppc4xx_enable_dma(unsigned int dmanr)
 	control &= ~(DMA_TM_MASK | DMA_TD);	/* clear all mode bits */
 	if (p_dma_ch->mode == DMA_MODE_MM) {
 		/* software initiated memory to memory */
-		control |= DMA_ETD_OUTPUT | DMA_TCE_ENABLE;
+		control |= DMA_ETD_OUTPUT | DMA_TCE_ENABLE |
+			   DMA_SAI | DMA_DAI ;
 	}
 
 	mtdcr(DCRN_DMACR0 + (dmanr * 0x8), control);



More information about the Linuxppc-embedded mailing list