Thanks for your advice. But unfortunately codec didn't enter suspend after marking the widgets with snd_soc_dapm_ignore_suspend(). We will modify the trigger conditions for enable_micbias and disable_micbias to solve this issue
Really? We should fix that - that's the use case for this feature. What goes wrong?
We mark "MICBIAS1" and "MICBIAS2" with snd_soc_dapm_ignore_suspend() at es8326_enable_micbias(), and make "MICBIAS1" "MICBIAS2" active with snd_soc_dapm_force_enable_pin_unlocked(). But when the device enter suspend, the codec can't enter suspend.
I'm sorry to bother you. I have marked "MICBIAS1" and "MICBIAS2" with snd_soc_dapm_ignore_suspend() at es8326_enable_micbias().I'll show this part of my drive below. But the codec can't enter suspend. And no error messages were found at the kernel log. Do you have any suggestions?
static void es8326_enable_micbias(struct snd_soc_component *component) { struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
snd_soc_dapm_mutex_lock(dapm); snd_soc_dapm_ignore_suspend(dapm, "MICBIAS1"); snd_soc_dapm_ignore_suspend(dapm, "MICBIAS2"); snd_soc_dapm_force_enable_pin_unlocked(dapm, "MICBIAS1"); snd_soc_dapm_force_enable_pin_unlocked(dapm, "MICBIAS2");