{
        struct snd_soc_card *card = scomp->card;
        struct snd_soc_pcm_runtime *rtd;
+       struct snd_soc_dai *cpu_dai;
+       int i;
 
        list_for_each_entry(rtd, &card->rtd_list, list) {
                dev_vdbg(scomp->dev, "tplg: check widget: %s stream: %s dai stream: %s\n",
 
                switch (w->id) {
                case snd_soc_dapm_dai_out:
-                       rtd->cpu_dai->capture_widget = w;
+                       for_each_rtd_cpu_dais(rtd, i, cpu_dai)
+                               cpu_dai->capture_widget = w;
                        dai->name = rtd->dai_link->name;
                        dev_dbg(scomp->dev, "tplg: connected widget %s -> DAI link %s\n",
                                w->name, rtd->dai_link->name);
                        break;
                case snd_soc_dapm_dai_in:
-                       rtd->cpu_dai->playback_widget = w;
+                       for_each_rtd_cpu_dais(rtd, i, cpu_dai)
+                               cpu_dai->playback_widget = w;
                        dai->name = rtd->dai_link->name;
                        dev_dbg(scomp->dev, "tplg: connected widget %s -> DAI link %s\n",
                                w->name, rtd->dai_link->name);