[alsa-devel] [PATCH] ASoC: dmaengine: Use filter_data rather than dma_data for compat requests
Lars-Peter Clausen
lars at metafoo.de
Tue Oct 22 13:30:56 CEST 2013
On 10/19/2013 10:38 PM, Mark Brown wrote:
> From: Mark Brown <broonie at linaro.org>
>
> When using the legacy filter function channel requests we currently pass
> the audio specific struct snd_dmaengine_dai_dma_data which isn't likely to
> be helpful for actual filtering. Since there's already a field in the
> structure called filter_data clearly intended for use here convert the
> driver to use that.
>
> All existing users of plain filter functions have been converted to use
> an explict compat function to override this behaviour except i.MX which
typo: explicit
> is working around this issue in its filter function and is updated to
> just use filter_data directly here.
>
> Signed-off-by: Mark Brown <broonie at linaro.org>
Acked-by: Lars-Peter Clausen <lars at metafoo.de>
> ---
> sound/soc/fsl/imx-pcm-dma.c | 4 +---
> sound/soc/soc-generic-dmaengine-pcm.c | 5 ++++-
> 2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/sound/soc/fsl/imx-pcm-dma.c b/sound/soc/fsl/imx-pcm-dma.c
> index 4dc1296..aee2307 100644
> --- a/sound/soc/fsl/imx-pcm-dma.c
> +++ b/sound/soc/fsl/imx-pcm-dma.c
> @@ -25,12 +25,10 @@
>
> static bool filter(struct dma_chan *chan, void *param)
> {
> - struct snd_dmaengine_dai_dma_data *dma_data = param;
> -
> if (!imx_dma_is_general_purpose(chan))
> return false;
>
> - chan->private = dma_data->filter_data;
> + chan->private = param;
>
> return true;
> }
> diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
> index e29ec3c..17dd379 100644
> --- a/sound/soc/soc-generic-dmaengine-pcm.c
> +++ b/sound/soc/soc-generic-dmaengine-pcm.c
> @@ -126,6 +126,9 @@ static struct dma_chan *dmaengine_pcm_compat_request_channel(
> struct snd_pcm_substream *substream)
> {
> struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform);
> + struct snd_dmaengine_dai_dma_data *dma_data;
> +
> + dma_data = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
>
> if ((pcm->flags & SND_DMAENGINE_PCM_FLAG_HALF_DUPLEX) && pcm->chan[0])
> return pcm->chan[0];
> @@ -134,7 +137,7 @@ static struct dma_chan *dmaengine_pcm_compat_request_channel(
> return pcm->config->compat_request_channel(rtd, substream);
>
> return snd_dmaengine_pcm_request_channel(pcm->config->compat_filter_fn,
> - snd_soc_dai_get_dma_data(rtd->cpu_dai, substream));
> + dma_data->filter_data);
> }
>
> static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd)
>
More information about the Alsa-devel
mailing list