[Intel-gfx] [PATCH] snd/hda: Balance hda->need_i915_power across runtime_suspend

Chris Wilson chris at chris-wilson.co.uk
Tue Apr 9 21:27:41 UTC 2019

In runtime_resume, we release the local display_power wakeref if we can
rely on i915 providing a wakeref along the component. On suspend
therefore, we should only release the display_power if we kept it from

Fixes: e454ff8e89b6 ("ALSA: hda/intel: Drop superfluous AZX_DCAPS_I915_POWERWELL checks")
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Takashi Iwai <tiwai at suse.de>
Cc: Imre Deak <imre.deak at intel.com>
This appears to fix the glk-dsi as it performs a pm_runtime_suspend in
the middle of azx_probe_contime(). Hopefully.
 sound/pci/hda/hda_intel.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 2ec91085fa3e..a9faf95c88b5 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -941,10 +941,14 @@ static bool azx_is_pm_ready(struct snd_card *card)
 static void __azx_runtime_suspend(struct azx *chip)
+	struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
-	display_power(chip, false);
+	if (hda->need_i915_power)
+		display_power(chip, false);
 static void __azx_runtime_resume(struct azx *chip, bool from_rt)

More information about the Intel-gfx mailing list