struct hdac_bus *bus = hstream->bus;
        struct hdac_ext_stream *link_dev;
        struct snd_soc_pcm_runtime *rtd = snd_pcm_substream_chip(substream);
-       struct snd_soc_dai *codec_dai = rtd->codec_dai;
+       struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
        struct sof_intel_hda_stream *hda_stream;
        struct hda_pipe_params p_params = {0};
        struct hdac_ext_link *link;
        bus = hstream->bus;
        rtd = snd_pcm_substream_chip(substream);
 
-       link = snd_hdac_ext_bus_get_link(bus, rtd->codec_dai->component->name);
+       link = snd_hdac_ext_bus_get_link(bus, asoc_rtd_to_codec(rtd, 0)->component->name);
        if (!link)
                return -EINVAL;
 
        if (ret < 0)
                return ret;
 
-       link = snd_hdac_ext_bus_get_link(bus, rtd->codec_dai->component->name);
+       link = snd_hdac_ext_bus_get_link(bus, asoc_rtd_to_codec(rtd, 0)->component->name);
        if (!link)
                return -EINVAL;
 
 
                 */
                if (stream->link_substream) {
                        rtd = snd_pcm_substream_chip(stream->link_substream);
-                       name = rtd->codec_dai->component->name;
+                       name = asoc_rtd_to_codec(rtd, 0)->component->name;
                        link = snd_hdac_ext_bus_get_link(bus, name);
                        if (!link)
                                return -EINVAL;