Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Bo Shen <voice.shen@atmel.com>
Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>

authored by

Bo Shen and committed by
Mark Brown
cede8d7a f1b0dd8b

+1 -14
-14
sound/soc/atmel/atmel-pcm-dma.c
··· 175 175 return ret; 176 176 } 177 177 178 - static int atmel_pcm_dma_prepare(struct snd_pcm_substream *substream) 179 - { 180 - struct snd_soc_pcm_runtime *rtd = substream->private_data; 181 - struct atmel_pcm_dma_params *prtd; 182 - 183 - prtd = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream); 184 - 185 - ssc_writex(prtd->ssc->regs, SSC_IER, prtd->mask->ssc_error); 186 - ssc_writex(prtd->ssc->regs, SSC_CR, prtd->mask->ssc_enable); 187 - 188 - return 0; 189 - } 190 - 191 178 static int atmel_pcm_open(struct snd_pcm_substream *substream) 192 179 { 193 180 snd_soc_set_runtime_hwparams(substream, &atmel_pcm_dma_hardware); ··· 187 200 .close = snd_dmaengine_pcm_close_release_chan, 188 201 .ioctl = snd_pcm_lib_ioctl, 189 202 .hw_params = atmel_pcm_hw_params, 190 - .prepare = atmel_pcm_dma_prepare, 191 203 .trigger = snd_dmaengine_pcm_trigger, 192 204 .pointer = snd_dmaengine_pcm_pointer_no_residue, 193 205 .mmap = atmel_pcm_mmap,
+1
sound/soc/atmel/atmel_ssc_dai.c
··· 649 649 dma_params = ssc_p->dma_params[dir]; 650 650 651 651 ssc_writel(ssc_p->ssc->regs, CR, dma_params->mask->ssc_enable); 652 + ssc_writel(ssc_p->ssc->regs, IER, dma_params->mask->ssc_error); 652 653 653 654 pr_debug("%s enabled SSC_SR=0x%08x\n", 654 655 dir ? "receive" : "transmit",