ASoC: fsl_asrc_dma: Use dmaengine_terminate_async()
authorSascha Hauer <s.hauer@pengutronix.de>
Fri, 17 Jun 2022 12:01:33 +0000 (14:01 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 20 Jun 2022 10:35:45 +0000 (11:35 +0100)
dmaengine_terminate_all() is deprecated and should no longer be used.
Use dmaengine_terminate_async() instead. This involves no functional change
since both functions do the same.
After dmaengine_terminate_async() dmaengine_synchronize() must be called
to make sure the channel has really stopped before the underlying memory
is freed. This is done implicitly by dma_release_channel() called from
the .hw_free hook.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://lore.kernel.org/r/20220617120133.4011846-1-s.hauer@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_asrc_dma.c

index aaf7993935b74555f3b9d96f0fe707ad73a052d6..33eabb96340eb095692d31c3dfdc4882519596c7 100644 (file)
@@ -114,8 +114,8 @@ static int fsl_asrc_dma_trigger(struct snd_soc_component *component,
        case SNDRV_PCM_TRIGGER_STOP:
        case SNDRV_PCM_TRIGGER_SUSPEND:
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-               dmaengine_terminate_all(pair->dma_chan[OUT]);
-               dmaengine_terminate_all(pair->dma_chan[IN]);
+               dmaengine_terminate_async(pair->dma_chan[OUT]);
+               dmaengine_terminate_async(pair->dma_chan[IN]);
                break;
        default:
                return -EINVAL;