Browse Source

ALSA: hda - Clear the power-saving states properly at reset

Some power-saving states have been left unchanged in
snd_hda_codec_reset(), and this is a potential danger because the
function may be called in various situations including the continuous
operation after that call.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 13 years ago
parent
commit
339876d70a
1 changed files with 3 additions and 0 deletions
  1. 3 0
      sound/pci/hda/hda_codec.c

+ 3 - 0
sound/pci/hda/hda_codec.c

@@ -2265,6 +2265,9 @@ int snd_hda_codec_reset(struct hda_codec *codec)
 
 #ifdef CONFIG_SND_HDA_POWER_SAVE
 	cancel_delayed_work(&codec->power_work);
+	codec->power_on = 0;
+	codec->power_transition = 0;
+	codec->power_jiffies = jiffies;
 	flush_workqueue(codec->bus->workq);
 #endif
 	snd_hda_ctls_clear(codec);