diff options
author | Nicolas Ferre <nicolas.ferre@atmel.com> | 2011-04-30 16:57:45 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2011-05-02 15:42:09 +0530 |
commit | 9b3aa589eaa1366200062ce1f9cc7ddca8d1d578 (patch) | |
tree | 31237c0bfbea0a79548fd4a3e18e2260f97de6fb /drivers/dma/at_hdmac.c | |
parent | 364de77831213be20f7f33c39ca1c194593b5c11 (diff) | |
download | linux-3.10-9b3aa589eaa1366200062ce1f9cc7ddca8d1d578.tar.gz linux-3.10-9b3aa589eaa1366200062ce1f9cc7ddca8d1d578.tar.bz2 linux-3.10-9b3aa589eaa1366200062ce1f9cc7ddca8d1d578.zip |
dmaengine: at_hdmac: modify way to use interrupts
Now we use Buffer Transfer Completed interrupts. If we
want a chained buffer completed information, we setup the
ATC_IEN bit in CTRLB register in the lli.
This is done by set_desc_eol() function and used by
memcpy/slave_sg functions.
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma/at_hdmac.c')
-rw-r--r-- | drivers/dma/at_hdmac.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index 3d7d705f026..13050e646f8 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -464,7 +464,7 @@ static irqreturn_t at_dma_interrupt(int irq, void *dev_id) for (i = 0; i < atdma->dma_common.chancnt; i++) { atchan = &atdma->chan[i]; - if (pending & (AT_DMA_CBTC(i) | AT_DMA_ERR(i))) { + if (pending & (AT_DMA_BTC(i) | AT_DMA_ERR(i))) { if (pending & AT_DMA_ERR(i)) { /* Disable channel on AHB error */ dma_writel(atdma, CHDR, atchan->mask); @@ -549,7 +549,7 @@ atc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, } ctrla = ATC_DEFAULT_CTRLA; - ctrlb = ATC_DEFAULT_CTRLB + ctrlb = ATC_DEFAULT_CTRLB | ATC_IEN | ATC_SRC_ADDR_MODE_INCR | ATC_DST_ADDR_MODE_INCR | ATC_FC_MEM2MEM; |