};
 
+static int skylake_rt286_fe_init(struct snd_soc_pcm_runtime *rtd)
+{
+       struct snd_soc_dapm_context *dapm;
+       struct snd_soc_component *component = rtd->cpu_dai->component;
+
+       dapm = snd_soc_component_get_dapm(component);
+       snd_soc_dapm_ignore_suspend(dapm, "Reference Capture");
+
+       return 0;
+}
+
 static int skylake_rt286_codec_init(struct snd_soc_pcm_runtime *rtd)
 {
        struct snd_soc_codec *codec = rtd->codec;
 
        rt286_mic_detect(codec, &skylake_headset);
 
+       snd_soc_dapm_ignore_suspend(&rtd->card->dapm, "SoC DMIC");
+       snd_soc_dapm_ignore_suspend(&rtd->card->dapm, "WoV Sink");
+
        return 0;
 }
 
                .dynamic = 1,
                .codec_name = "snd-soc-dummy",
                .codec_dai_name = "snd-soc-dummy-dai",
+               .init = skylake_rt286_fe_init,
                .trigger = {
                        SND_SOC_DPCM_TRIGGER_POST,
                        SND_SOC_DPCM_TRIGGER_POST
                .platform_name = "0000:00:1f.3",
                .init = NULL,
                .dpcm_capture = 1,
-               .ignore_suspend = 1,
                .nonatomic = 1,
                .dynamic = 1,
                .ops = &skylake_dmic_ops,
                .dai_fmt = SND_SOC_DAIFMT_I2S |
                        SND_SOC_DAIFMT_NB_NF |
                        SND_SOC_DAIFMT_CBS_CFS,
-               .ignore_suspend = 1,
                .ignore_pmdown_time = 1,
                .be_hw_params_fixup = skylake_ssp0_fixup,
                .ops = &skylake_rt286_ops,