[PATCH 001] fix a race in dynamic power managment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>From 90380fbb9865dda45a5be8085ef556f3ce203244 Mon Sep 17 00:00:00 2001
From: Maxim Levitsky <maximlevitsky@xxxxxxxxx>
Date: Mon, 3 Sep 2007 14:01:52 +0300
Subject: [PATCH] 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@xxxxxxxxx>
---
 pci/hda/hda_codec.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/pci/hda/hda_codec.c b/pci/hda/hda_codec.c
index 46d4253..08104e2 100644
--- a/pci/hda/hda_codec.c
+++ b/pci/hda/hda_codec.c
@@ -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)
-- 
1.5.2.3

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux