[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