Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48b752ac authored by Qiao Zhou's avatar Qiao Zhou Committed by Mark Brown
Browse files

ASoC: mmp-pcm: config pcm slave via generic dmaengine



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: default avatarQiao Zhou <zhouqiao@marvell.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 6ce4eac1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+3 −15
Original line number Diff line number Diff line
@@ -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;