Takashi Iwai 165d26
From 377bc0cfabce0244632dada19060839ced4e6949 Mon Sep 17 00:00:00 2001
Takashi Iwai 165d26
From: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 165d26
Date: Fri, 13 Dec 2019 09:51:09 +0100
Takashi Iwai 165d26
Subject: [PATCH] ALSA: hda/ca0132 - Keep power on during processing DSP response
Takashi Iwai 165d26
Git-commit: 377bc0cfabce0244632dada19060839ced4e6949
Takashi Iwai 165d26
Patch-mainline: v5.5-rc3
Takashi Iwai 165d26
References: git-fixes
Takashi Iwai 165d26
Takashi Iwai 165d26
We need to keep power on while processing the DSP response via unsol
Takashi Iwai 165d26
event.  Each snd_hda_codec_read() call does the power management, so
Takashi Iwai 165d26
it should work normally, but still it's safer to keep the power up for
Takashi Iwai 165d26
the whole function.
Takashi Iwai 165d26
Takashi Iwai 165d26
Fixes: a73d511c4867 ("ALSA: hda/ca0132: Add unsol handler for DSP and jack detection")
Takashi Iwai 165d26
Cc: <stable@vger.kernel.org>
Takashi Iwai 165d26
Link: https://lore.kernel.org/r/20191213085111.22855-2-tiwai@suse.de
Takashi Iwai 165d26
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 165d26
Takashi Iwai 165d26
---
Takashi Iwai 165d26
 sound/pci/hda/patch_ca0132.c | 2 ++
Takashi Iwai 165d26
 1 file changed, 2 insertions(+)
Takashi Iwai 165d26
Takashi Iwai 165d26
diff --git a/sound/pci/hda/patch_ca0132.c b/sound/pci/hda/patch_ca0132.c
Takashi Iwai 165d26
index b7a1abb3e231..c3d34ff3d9ec 100644
Takashi Iwai 165d26
--- a/sound/pci/hda/patch_ca0132.c
Takashi Iwai 165d26
+++ b/sound/pci/hda/patch_ca0132.c
Takashi Iwai 165d26
@@ -7588,12 +7588,14 @@ static void ca0132_process_dsp_response(struct hda_codec *codec,
Takashi Iwai 165d26
 	struct ca0132_spec *spec = codec->spec;
Takashi Iwai 165d26
 
Takashi Iwai 165d26
 	codec_dbg(codec, "ca0132_process_dsp_response\n");
Takashi Iwai 165d26
+	snd_hda_power_up_pm(codec);
Takashi Iwai 165d26
 	if (spec->wait_scp) {
Takashi Iwai 165d26
 		if (dspio_get_response_data(codec) >= 0)
Takashi Iwai 165d26
 			spec->wait_scp = 0;
Takashi Iwai 165d26
 	}
Takashi Iwai 165d26
 
Takashi Iwai 165d26
 	dspio_clear_response_queue(codec);
Takashi Iwai 165d26
+	snd_hda_power_down_pm(codec);
Takashi Iwai 165d26
 }
Takashi Iwai 165d26
 
Takashi Iwai 165d26
 static void hp_callback(struct hda_codec *codec, struct hda_jack_callback *cb)
Takashi Iwai 165d26
-- 
Takashi Iwai 165d26
2.16.4
Takashi Iwai 165d26