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>
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user