mclk = params_rate(params) * SOUND_FS;
 
-       ret = snd_soc_dai_set_sysclk(rtd->cpu_dai, 0, mclk, 0);
+       ret = snd_soc_dai_set_sysclk(asoc_rtd_to_cpu(rtd, 0), 0, mclk, 0);
        if (ret) {
                dev_err(rtd->card->dev, "%s() error setting sysclk to %u: %d\n",
                                __func__, mclk, ret);
                             struct snd_pcm_hw_params *params)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
-       struct snd_soc_dai *codec_dai = rtd->codec_dai;
+       struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
+       struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
        unsigned int mclk;
        int ret;
 
                             struct snd_pcm_hw_params *params)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
-       struct snd_soc_dai *codec_dai = rtd->codec_dai;
+       struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
+       struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
        int mclk, ret;
 
        /* in bypass mode, the mclk has to be one of the frequencies below */
 
 static int rockchip_sound_da7219_init(struct snd_soc_pcm_runtime *rtd)
 {
-       struct snd_soc_component *component = rtd->codec_dais[0]->component;
-       struct snd_soc_dai *codec_dai = rtd->codec_dai;
+       struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
+       struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
        int ret;
 
        /* We need default MCLK and PLL settings for the accessory detection */
 
        mclk = params_rate(params) * SOUND_FS;
 
-       ret = snd_soc_dai_set_sysclk(rtd->cpu_dai, 0, mclk, 0);
+       ret = snd_soc_dai_set_sysclk(asoc_rtd_to_cpu(rtd, 0), 0, mclk, 0);
        if (ret) {
                dev_err(rtd->card->dev, "%s() error setting sysclk to %u: %d\n",
                                __func__, mclk, ret);
 
 {
        int ret = 0;
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
-       struct snd_soc_dai *codec_dai = rtd->codec_dai;
+       struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
+       struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
        int mclk;
 
        switch (params_rate(params)) {
 static int rk_hdmi_init(struct snd_soc_pcm_runtime *runtime)
 {
        struct snd_soc_card *card = runtime->card;
-       struct snd_soc_component *component = runtime->codec_dai->component;
+       struct snd_soc_component *component = asoc_rtd_to_codec(runtime, 0)->component;
        int ret;
 
        /* enable jack detection */
 
 {
        int ret = 0;
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
-       struct snd_soc_dai *codec_dai = rtd->codec_dai;
+       struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0);
+       struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
        int mclk;
 
        switch (params_rate(params)) {
                return ret;
        }
 
-       return rt5645_set_jack_detect(runtime->codec_dai->component,
+       return rt5645_set_jack_detect(asoc_rtd_to_codec(runtime, 0)->component,
                                     &headset_jack,
                                     &headset_jack,
                                     &headset_jack);