|
@@ -108,10 +108,21 @@ static int ux500_pcm_prepare_slave_config(struct snd_pcm_substream *substream,
|
|
|
struct dma_slave_config *slave_config)
|
|
|
{
|
|
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
|
|
- struct ux500_msp_dma_params *dma_params;
|
|
|
+ struct msp_i2s_platform_data *pdata = rtd->cpu_dai->dev->platform_data;
|
|
|
+ struct snd_dmaengine_dai_dma_data *snd_dma_params;
|
|
|
+ struct ux500_msp_dma_params *ste_dma_params;
|
|
|
+ dma_addr_t dma_addr;
|
|
|
int ret;
|
|
|
|
|
|
- dma_params = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
|
|
|
+ if (pdata) {
|
|
|
+ ste_dma_params =
|
|
|
+ snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
|
|
|
+ dma_addr = ste_dma_params->tx_rx_addr;
|
|
|
+ } else {
|
|
|
+ snd_dma_params =
|
|
|
+ snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
|
|
|
+ dma_addr = snd_dma_params->addr;
|
|
|
+ }
|
|
|
|
|
|
ret = snd_hwparams_to_dma_slave_config(substream, params, slave_config);
|
|
|
if (ret)
|
|
@@ -124,9 +135,9 @@ static int ux500_pcm_prepare_slave_config(struct snd_pcm_substream *substream,
|
|
|
slave_config->dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
|
|
|
|
|
|
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
|
|
|
- slave_config->dst_addr = dma_params->tx_rx_addr;
|
|
|
+ slave_config->dst_addr = dma_addr;
|
|
|
else
|
|
|
- slave_config->src_addr = dma_params->tx_rx_addr;
|
|
|
+ slave_config->src_addr = dma_addr;
|
|
|
|
|
|
return 0;
|
|
|
}
|