dmaengine: edma: Support to suppress the period interrupts in cyclic mode
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Wed, 16 Jul 2014 12:29:21 +0000 (15:29 +0300)
committerVinod Koul <vinod.koul@intel.com>
Mon, 28 Jul 2014 11:32:53 +0000 (17:02 +0530)
If the client (audio) does not request interrupts for every period we can
disable them.
With updated audio driver stack we can play audio w/o the need to process
any edma interrupts.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/edma.c

index 8e400c0f35294840e5427d3348973d32eaed0d02..54f7408e14efad8c17563ffab517d29fd230c9ab 100644 (file)
@@ -718,10 +718,10 @@ static struct dma_async_tx_descriptor *edma_prep_dma_cyclic(
                edesc->absync = ret;
 
                /*
-                * Enable interrupts for every period because callback
-                * has to be called for every period.
+                * Enable period interrupt only if it is requested
                 */
-               edesc->pset[i].param.opt |= TCINTEN;
+               if (tx_flags & DMA_PREP_INTERRUPT)
+                       edesc->pset[i].param.opt |= TCINTEN;
        }
 
        return vchan_tx_prep(&echan->vchan, &edesc->vdesc, tx_flags);