|
@@ -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;
|