mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-20 14:16:02 +00:00
[ALSA] hda-intel - fix a race in dynamic power managment
codec->power_transition is supposed to be true while codec is going to be shut off if in the mean time somebody calls snd_hda_power_up, hda_power_work will not shut down the codec, but nether will clear codec->power_transition, thus it stays on forever. Fix this. Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
b7e054a76f
commit
2e4924628a
1 changed files with 3 additions and 1 deletions
|
@ -2195,8 +2195,10 @@ static void hda_power_work(struct work_struct *work)
|
|||
struct hda_codec *codec =
|
||||
container_of(work, struct hda_codec, power_work.work);
|
||||
|
||||
if (!codec->power_on || codec->power_count)
|
||||
if (!codec->power_on || codec->power_count) {
|
||||
codec->power_transition = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
hda_call_codec_suspend(codec);
|
||||
if (codec->bus->ops.pm_notify)
|
||||
|
|
Loading…
Reference in a new issue