On Fri, 16 Apr 2021 15:11:57 +0200, Kai Vehmanen wrote: > > When snd-hda-codec-hdmi is used with ASoC HDA controller like SOF (acomp > used for ELD notifications), display connection change done during suspend, > can be lost due to following sequence of events: > > 1. system in S3 suspend > 2. DP/HDMI receiver connected > 3. system resumed > 4. HDA controller resumed, but card->deferred_resume_work not complete > 5. acomp eld_notify callback > 6. eld_notify ignored as power state is not CTL_POWER_D0 > 7. HDA resume deferred work completed, power state set to CTL_POWER_D0 > > This results in losing the notification, and the jack state reported to > user-space is not correct. > > The check on step 6 was added in commit 8ae743e82f0b ("ALSA: hda - Skip > ELD notification during system suspend"). It would seem with the deferred > resume logic in ASoC core, this check is not safe. > > Fix the issue by modifying the check to use "dev.power.power_state.event" > instead of ALSA specific card power state variable. > > BugLink: https://github.com/thesofproject/linux/issues/2825 > Suggested-by: Takashi Iwai <tiwai@xxxxxxx> > Signed-off-by: Kai Vehmanen <kai.vehmanen@xxxxxxxxxxxxxxx> Thanks, applied now. Takashi