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

Commit cede8d7a authored by Bo Shen's avatar Bo Shen Committed by Mark Brown
Browse files

ASoC: atmel-pcm-dma: move prepare for dma to dai prepare



as prepare callback for dma is acctually access ssc register
which better done in dai driver, so move it to dai prepare
callback function

Signed-off-by: default avatarBo Shen <voice.shen@atmel.com>
Reviewed-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent f1b0dd8b
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -175,19 +175,6 @@ err:
	return ret;
}

static int atmel_pcm_dma_prepare(struct snd_pcm_substream *substream)
{
	struct snd_soc_pcm_runtime *rtd = substream->private_data;
	struct atmel_pcm_dma_params *prtd;

	prtd = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);

	ssc_writex(prtd->ssc->regs, SSC_IER, prtd->mask->ssc_error);
	ssc_writex(prtd->ssc->regs, SSC_CR, prtd->mask->ssc_enable);

	return 0;
}

static int atmel_pcm_open(struct snd_pcm_substream *substream)
{
	snd_soc_set_runtime_hwparams(substream, &atmel_pcm_dma_hardware);
@@ -200,7 +187,6 @@ static struct snd_pcm_ops atmel_pcm_ops = {
	.close		= snd_dmaengine_pcm_close_release_chan,
	.ioctl		= snd_pcm_lib_ioctl,
	.hw_params	= atmel_pcm_hw_params,
	.prepare	= atmel_pcm_dma_prepare,
	.trigger	= snd_dmaengine_pcm_trigger,
	.pointer	= snd_dmaengine_pcm_pointer_no_residue,
	.mmap		= atmel_pcm_mmap,
+1 −0
Original line number Diff line number Diff line
@@ -649,6 +649,7 @@ static int atmel_ssc_prepare(struct snd_pcm_substream *substream,
	dma_params = ssc_p->dma_params[dir];

	ssc_writel(ssc_p->ssc->regs, CR, dma_params->mask->ssc_enable);
	ssc_writel(ssc_p->ssc->regs, IER, dma_params->mask->ssc_error);

	pr_debug("%s enabled SSC_SR=0x%08x\n",
			dir ? "receive" : "transmit",