[alsa-devel] [PATCH] ASoC: Flush Samsung DMA on free

Kukjin Kim kgene.kim at samsung.com
Tue Sep 27 02:05:15 CEST 2011


Mark Brown wrote:
> 
> Ever since it was written the Samsung DMA driver has had a TODO in the
> hw_free() function wondering if we need to flush the DMA buffers. Up until
> now the answer has been no but with the recent improvements Boojin has
> done to the DMA infrastructure for the Samsung port the answer has changed
> to yes for at least S3C6410 systems.
> 
> If we don't then when we next prepare() the channel the API will get
> confused trying to run callbacks on the transfers hanging around from the
> previous time the stream was open and oops.
> 
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
> 
> Kukjin, this should probably get added to your branch assuming it's OK
> for other CPUs.
> 
Looks ok to me, applied.
Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

>  sound/soc/samsung/dma.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/sound/soc/samsung/dma.c b/sound/soc/samsung/dma.c
> index 851346f..2d622b6 100644
> --- a/sound/soc/samsung/dma.c
> +++ b/sound/soc/samsung/dma.c
> @@ -198,10 +198,10 @@ static int dma_hw_free(struct snd_pcm_substream
> *substream)
> 
>  	pr_debug("Entered %s\n", __func__);
> 
> -	/* TODO - do we need to ensure DMA flushed */
>  	snd_pcm_set_runtime_buffer(substream, NULL);
> 
>  	if (prtd->params) {
> +		prtd->params->ops->flush(prtd->params->ch);
>  		prtd->params->ops->release(prtd->params->ch,
>  					prtd->params->client);
>  		prtd->params = NULL;
> --
> 1.7.6.3



More information about the Alsa-devel mailing list