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>
This commit is contained in:
Takashi Iwai 2012-05-08 16:57:12 +02:00
parent 7f30830b7b
commit 339876d70a

View File

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