void asoc_simple_shutdown(struct snd_pcm_substream *substream)
 {
        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 asoc_simple_priv *priv = snd_soc_card_get_drvdata(rtd->card);
        struct simple_dai_props *dai_props =
                simple_priv_to_props(priv, rtd->num);
                          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 asoc_simple_priv *priv = snd_soc_card_get_drvdata(rtd->card);
        struct simple_dai_props *dai_props =
                simple_priv_to_props(priv, rtd->num);
        struct simple_dai_props *dai_props = simple_priv_to_props(priv, rtd->num);
        int ret;
 
-       ret = asoc_simple_init_dai(rtd->codec_dai,
+       ret = asoc_simple_init_dai(asoc_rtd_to_codec(rtd, 0),
                                   dai_props->codec_dai);
        if (ret < 0)
                return ret;
 
-       ret = asoc_simple_init_dai(rtd->cpu_dai,
+       ret = asoc_simple_init_dai(asoc_rtd_to_cpu(rtd, 0),
                                   dai_props->cpu_dai);
        if (ret < 0)
                return ret;