ASoC: mmp-pcm: config pcm slave via generic dmaengine
authorQiao Zhou <zhouqiao@marvell.com>
Tue, 17 Dec 2013 08:22:24 +0000 (16:22 +0800)
committerMark Brown <broonie@linaro.org>
Tue, 17 Dec 2013 12:48:45 +0000 (12:48 +0000)
use snd_dmaengine_pcm_prepare_slave_config to set slave config,
and remove the max_burst_size = 4 hard code.

select SND_SOC_GENERIC_DMAENGINE_PCM for mmp-pcm.

Signed-off-by: Qiao Zhou <zhouqiao@marvell.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/pxa/Kconfig
sound/soc/pxa/mmp-pcm.c

index 4db74a0..6473052 100644 (file)
@@ -11,7 +11,7 @@ config SND_PXA2XX_SOC
 config SND_MMP_SOC
        bool "Soc Audio for Marvell MMP chips"
        depends on ARCH_MMP
-       select SND_DMAENGINE_PCM
+       select SND_SOC_GENERIC_DMAENGINE_PCM
        select SND_ARM
        help
          Say Y if you want to add support for codecs attached to
index 7929e19..682ee52 100644 (file)
@@ -67,27 +67,15 @@ static int mmp_pcm_hw_params(struct snd_pcm_substream *substream,
                              struct snd_pcm_hw_params *params)
 {
        struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream);
-       struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_dmaengine_dai_dma_data *dma_params;
        struct dma_slave_config slave_config;
        int ret;
 
-       dma_params = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
-       if (!dma_params)
-               return 0;
-
-       ret = snd_hwparams_to_dma_slave_config(substream, params, &slave_config);
+       ret =
+           snd_dmaengine_pcm_prepare_slave_config(substream, params,
+                                                  &slave_config);
        if (ret)
                return ret;
 
-       if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
-               slave_config.dst_addr     = dma_params->addr;
-               slave_config.dst_maxburst = 4;
-       } else {
-               slave_config.src_addr     = dma_params->addr;
-               slave_config.src_maxburst = 4;
-       }
-
        ret = dmaengine_slave_config(chan, &slave_config);
        if (ret)
                return ret;