aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Goby <benoit@android.com>2010-12-13 15:27:06 -0800
committerErik Gilling <konkers@android.com>2011-03-30 11:24:37 -0700
commitde30082c186b99aa6ecc760cfc7c972cf6fcc5e5 (patch)
tree7bedc3cf830126b4399bfcf3043efa3a67a38e8d
parent994d0554d04dd18fa4f125239d2032dd680acd22 (diff)
downloadexperimental-de30082c186b99aa6ecc760cfc7c972cf6fcc5e5.tar.gz
PM: Wait for completion of the parent resume before resuming
If the parent device is in the DPM_RESUMING state, resume might get called before the parent's resume has completed, because dpm_wait won't get called. This issue was introduced by: 3d46a3c PM: Prevent waiting forever on asynchronous resume after abort Wait for completion of the parent resume if the parent state is >= DPM_OFF or == DPM_RESUMING Signed-off-by: Benoit Goby <benoit@android.com> [dima: fixed to work on 2.6.38, use .in_suspend instead of .state] Signed-off-by: Dima Zavin <dima@android.com>
-rw-r--r--drivers/base/power/main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 6ab2a6ea0aa..e7bb4ead9ee 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -513,7 +513,7 @@ static int device_resume(struct device *dev, pm_message_t state, bool async)
TRACE_DEVICE(dev);
TRACE_RESUME(0);
- if (dev->parent && dev->parent->power.status >= DPM_OFF)
+ if (dev->parent && dev->parent->power.in_suspend)
dpm_wait(dev->parent, async);
device_lock(dev);