dlc = (struct snd_soc_dai_link_component *)(link + 1);
 
        link->cpus      = &dlc[0];
-       link->codecs    = &dlc[1];
-
        link->num_cpus   = 1;
-       link->num_codecs = 1;
 
        link->dobj.index = tplg->index;
        link->dobj.type = SND_SOC_DOBJ_DAI_LINK;
                }
        }
 
-       link->codecs->name = "snd-soc-dummy";
-       link->codecs->dai_name = "snd-soc-dummy-dai";
-
        /*
-        * Many topology is assuming link has Platform.
-        * This might be overwritten at soc_tplg_dai_link_load().
+        * Many topology are assuming link has Codec / Platform, and
+        * these might be overwritten at soc_tplg_dai_link_load().
+        * Don't use &asoc_dummy_dlc here.
         */
-       link->platforms = &dlc[2];
-       link->platforms->name = "snd-soc-dummy";
-       link->num_platforms = 1;
+       link->codecs            = &dlc[1];      /* Don't use &asoc_dummy_dlc here */
+       link->codecs->name      = "snd-soc-dummy";
+       link->codecs->dai_name  = "snd-soc-dummy-dai";
+       link->num_codecs        = 1;
+
+       link->platforms         = &dlc[2];      /* Don't use &asoc_dummy_dlc here */
+       link->platforms->name   = "snd-soc-dummy";
+       link->num_platforms     = 1;
 
        /* enable DPCM */
        link->dynamic = 1;