[alsa-devel] [PATCH] ALSA: hda - Fix suspend/resume calls

Rodrigo Vivi rodrigo.vivi at intel.com
Tue Jan 29 22:25:10 CET 2019


Besides the compilation issue the resume function was calling
the force_suspend.

Fixes: d81f8c6b6ced ("ALSA: hda - Record the current power state before suspend/resume calls")
Cc: Takashi Iwai <tiwai at suse.de>
Cc: Jaroslav Kysela <perex at perex.cz>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
---
 sound/pci/hda/hda_codec.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 43bcc6f1ea8c..0b86aa2b649c 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -2894,6 +2894,8 @@ static unsigned int hda_call_codec_suspend(struct hda_codec *codec)
  */
 static void hda_call_codec_resume(struct hda_codec *codec)
 {
+	struct device *dev = hda_codec_dev(codec);
+
 	snd_hdac_enter_pm(&codec->core);
 	if (codec->core.regmap)
 		regcache_mark_dirty(codec->core.regmap);
@@ -2955,10 +2957,16 @@ static int hda_codec_pm_suspend(struct device *dev)
 	return pm_runtime_force_suspend(dev);
 }
 
+static int hda_codec_pm_freeze(struct device *dev)
+{
+	dev->power.power_state = PMSG_FREEZE;
+	return pm_runtime_force_suspend(dev);
+}
+
 static int hda_codec_pm_resume(struct device *dev)
 {
 	dev->power.power_state = PMSG_RESUME;
-	return pm_runtime_force_suspend(dev);
+	return pm_runtime_force_resume(dev);
 }
 
 static int hda_codec_pm_thaw(struct device *dev)
-- 
2.20.1



More information about the Alsa-devel mailing list