struct snd_pcm_hw_params *params)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_dai *codec_dai = rtd->codec_dai;
-       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+       struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
+       struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
        struct device *dev = rtd->card->dev;
        unsigned int fmt;
        int channels, ret = 0, driver_mode, slots;
 static int mop500_ab8500_hw_free(struct snd_pcm_substream *substream)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+       struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
 
        mutex_lock(&mop500_ab8500_params_lock);
        __clear_bit(cpu_dai->id, &mop500_ab8500_usage);
 
 static struct dma_chan *ux500_pcm_request_chan(struct snd_soc_pcm_runtime *rtd,
        struct snd_pcm_substream *substream)
 {
-       struct snd_soc_dai *dai = rtd->cpu_dai;
+       struct snd_soc_dai *dai = asoc_rtd_to_cpu(rtd, 0);
        u16 per_data_width, mem_data_width;
        struct stedma40_chan_cfg *dma_cfg;
        struct ux500_msp_dma_params *dma_params;
                struct dma_slave_config *slave_config)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct msp_i2s_platform_data *pdata = rtd->cpu_dai->dev->platform_data;
+       struct msp_i2s_platform_data *pdata = asoc_rtd_to_cpu(rtd, 0)->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;
 
        if (pdata) {
                ste_dma_params =
-                       snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
+                       snd_soc_dai_get_dma_data(asoc_rtd_to_cpu(rtd, 0), substream);
                dma_addr = ste_dma_params->tx_rx_addr;
        } else {
                snd_dma_params =
-                       snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
+                       snd_soc_dai_get_dma_data(asoc_rtd_to_cpu(rtd, 0), substream);
                dma_addr = snd_dma_params->addr;
        }