struct qcom_swrm_ctrl *ctrl = dev_get_drvdata(dai->dev);
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct sdw_stream_runtime *sruntime;
+       struct snd_soc_dai *codec_dai;
        int ret, i;
 
        sruntime = sdw_alloc_stream(dai->name);
 
        ctrl->sruntime[dai->id] = sruntime;
 
-       for (i = 0; i < rtd->num_codecs; i++) {
-               ret = snd_soc_dai_set_sdw_stream(rtd->codec_dais[i], sruntime,
+       for_each_rtd_codec_dai(rtd, i, codec_dai) {
+               ret = snd_soc_dai_set_sdw_stream(codec_dai, sruntime,
                                                 substream->stream);
                if (ret < 0 && ret != -ENOTSUPP) {
                        dev_err(dai->dev, "Failed to set sdw stream on %s",
-                               rtd->codec_dais[i]->name);
+                               codec_dai->name);
                        sdw_release_stream(sruntime);
                        return ret;
                }