Skip to content

Commit bfb6074

Browse files
Peter UjfalusiVinod Koul
authored andcommitted
dmaengine: omap-dma: Restore the CLINK_CTRL in resume path
When the audio stream is paused or suspended we stop the sDMA and when it is unpaused/resumed we start the channel without reconfiguring it. The omap_dma_stop() clears the link configuration when we pause the dma, but it is not setting it back on start. This will result only one audio buffer to be played back and the DMA will stop, since the linking is disabled. We need to restore the CLINK_CTRL register in case of resume. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Russell King <[email protected]> Signed-off-by: Vinod Koul <[email protected]>
1 parent b3d09da commit bfb6074

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/dma/omap-dma.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,9 @@ static int omap_dma_resume(struct omap_chan *c)
10191019
if (c->paused) {
10201020
mb();
10211021

1022+
/* Restore channel link register */
1023+
omap_dma_chan_write(c, CLNK_CTRL, c->desc->clnk_ctrl);
1024+
10221025
omap_dma_start(c, c->desc);
10231026
c->paused = false;
10241027
}

0 commit comments

Comments
 (0)