|
@@ -429,7 +429,10 @@ static struct dma_async_tx_descriptor *omap_dma_prep_dma_cyclic(
|
|
|
if (!c->cyclic) {
|
|
|
c->cyclic = true;
|
|
|
omap_dma_link_lch(c->dma_ch, c->dma_ch);
|
|
|
- omap_enable_dma_irq(c->dma_ch, OMAP_DMA_FRAME_IRQ);
|
|
|
+
|
|
|
+ if (flags & DMA_PREP_INTERRUPT)
|
|
|
+ omap_enable_dma_irq(c->dma_ch, OMAP_DMA_FRAME_IRQ);
|
|
|
+
|
|
|
omap_disable_dma_irq(c->dma_ch, OMAP_DMA_BLOCK_IRQ);
|
|
|
}
|
|
|
|
|
@@ -438,7 +441,7 @@ static struct dma_async_tx_descriptor *omap_dma_prep_dma_cyclic(
|
|
|
omap_set_dma_dest_burst_mode(c->dma_ch, OMAP_DMA_DATA_BURST_16);
|
|
|
}
|
|
|
|
|
|
- return vchan_tx_prep(&c->vc, &d->vd, DMA_CTRL_ACK | DMA_PREP_INTERRUPT);
|
|
|
+ return vchan_tx_prep(&c->vc, &d->vd, flags);
|
|
|
}
|
|
|
|
|
|
static int omap_dma_slave_config(struct omap_chan *c, struct dma_slave_config *cfg)
|