diff options
author | Benoit Goby <benoit@android.com> | 2010-12-13 15:27:06 -0800 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:38:25 -0800 |
commit | 0c6b69bd67e32a76fdb72fd177e36577374a7dfb (patch) | |
tree | b2c10d7d64bb74420940a1c7dd78c0619451636c /drivers/base/power/main.c | |
parent | 977087e8d324ac7f19d3690b5ecdf65382ce2a72 (diff) |
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>
Diffstat (limited to 'drivers/base/power/main.c')
-rw-r--r-- | drivers/base/power/main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index cb55a9609207..9fbff36cb3ac 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -514,7 +514,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); |