Skip to content

Commit

Permalink
dmaengine: omap-dma: Add support to suppress interrupts in cyclic mode
Browse files Browse the repository at this point in the history
When requested (DMA_PREP_INTERRUPT is cleared in flags) disable all DMA
interrupts for the channel. In this mode user space does not expect
periodic reports from kernel about the progress of the audio stream.
PulseAudio for example support this type of mode.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Peter Ujfalusi authored and Mark Brown committed Sep 22, 2012
1 parent ec8b5e4 commit 2dde5b9
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions drivers/dma/omap-dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand All @@ -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)
Expand Down

0 comments on commit 2dde5b9

Please sign in to comment.