The ELD notification can be received asynchronously from the graphics
side, and this may happen just at the moment the sound driver is
processing the suspend or the resume, and it would confuse the whole
procedure.  Since the ELD and connection states are updated in anyway
at the end of the resume, we can skip it when received during PM
process.

Signed-off-by: Takashi Iwai <ti...@suse.de>
---
 sound/pci/hda/patch_hdmi.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 4dc21ecf7230..75815acb77db 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -2450,6 +2450,9 @@ static void intel_pin_eld_notify(void *audio_ptr, int 
port)
         */
        if (snd_power_get_state(codec->card) != SNDRV_CTL_POWER_D0)
                return;
+       /* ditto during suspend/resume process itself */
+       if (atomic_read(&(codec)->core.in_pm))
+               return;
 
        /* execute ELD update in a work for avoiding a deadlock */
        per_pin = get_pin(spec, pin_idx);
-- 
2.6.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to