Subject: DMA Problem

From: Sanjay Bajaj <[email-masked]>
Date: Wed, 20 Apr 2005 13:37:52 -0400

I am having a setup issue with the DMA channel 0 with the DMA Controller 
on PPC440GX. The code I wrote is:

#if defined(CONFIG_PPC4xx_DMA)
    /* Setup the DMA */
    DPRINTK("PPC4xx pwidth: %d\n", ppc4xx_get_peripheral_width(DMA_CH0));
    ppc4xx_set_dma_mode(DMA_CH0, DMA_MODE_READ);
    ppc4xx_set_src_addr(DMA_CH0, (phys_addr_t)(pdev->x2mem_phys_addr + 
src_addr));
    ppc4xx_set_dst_addr(DMA_CH0, (phys_addr_t)dst_addr);
    ppc4xx_set_dma_count(DMA_CH0, count);
    ppc4xx_enable_dma(DMA_CH0);
    DPRINTK("PPC4xx DMA Status: %d\n", ppc4xx_get_dma_status());
#endif

The DMA never completes and leaves a residue of 'count'. What am I missing?

Please Help.
Sanjay