struct snd_soc_jack sof_headset;
        struct list_head hdmi_pcm_list;
        bool common_hdmi_codec_drv;
+       bool idisp_codec;
 };
 
 static int sof_rt5682_quirk_cb(const struct dmi_system_id *id)
        int i = 0;
 
        /* HDMI is not supported by SOF on Baytrail/CherryTrail */
-       if (is_legacy_cpu)
+       if (is_legacy_cpu || !ctx->idisp_codec)
                return 0;
 
        if (list_empty(&ctx->hdmi_pcm_list))
        }
 };
 
+#define IDISP_CODEC_MASK       0x4
+
 static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
                                                          int ssp_codec,
                                                          int ssp_amp,
                                                          int dmic_be_num,
-                                                         int hdmi_num)
+                                                         int hdmi_num,
+                                                         bool idisp_codec)
 {
        struct snd_soc_dai_link_component *idisp_components;
        struct snd_soc_dai_link_component *cpus;
                if (!links[id].cpus->dai_name)
                        goto devm_err;
 
-               idisp_components[i - 1].name = "ehdaudio0D2";
-               idisp_components[i - 1].dai_name = devm_kasprintf(dev,
-                                                                 GFP_KERNEL,
-                                                                 "intel-hdmi-hifi%d",
-                                                                 i);
-               if (!idisp_components[i - 1].dai_name)
-                       goto devm_err;
+               if (idisp_codec) {
+                       idisp_components[i - 1].name = "ehdaudio0D2";
+                       idisp_components[i - 1].dai_name = devm_kasprintf(dev,
+                                                                         GFP_KERNEL,
+                                                                         "intel-hdmi-hifi%d",
+                                                                         i);
+                       if (!idisp_components[i - 1].dai_name)
+                               goto devm_err;
+               } else {
+                       idisp_components[i - 1].name = "snd-soc-dummy";
+                       idisp_components[i - 1].dai_name = "snd-soc-dummy-dai";
+               }
 
                links[id].codecs = &idisp_components[i - 1];
                links[id].num_codecs = 1;
                /* default number of HDMI DAI's */
                if (!hdmi_num)
                        hdmi_num = 3;
+
+               if (mach->mach_params.codec_mask & IDISP_CODEC_MASK)
+                       ctx->idisp_codec = true;
        }
 
        /* need to get main clock from pmc */
                sof_audio_card_rt5682.num_links++;
 
        dai_links = sof_card_dai_links_create(&pdev->dev, ssp_codec, ssp_amp,
-                                             dmic_be_num, hdmi_num);
+                                             dmic_be_num, hdmi_num, ctx->idisp_codec);
        if (!dai_links)
                return -ENOMEM;