aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorRuchi Kandoi <kandoiruchi@google.com>2015-05-07 10:18:55 -0700
committerRuchi Kandoi <kandoiruchi@google.com>2015-05-18 16:57:19 +0000
commit6e9c6582376ac3c430bf7c89647313b2e685a597 (patch)
tree3dca5c42f47dbe1df6ef43d629852381fd935ce3 /kernel
parentba6f1652e0c153aae45ff3c6259e1c91378b9cfe (diff)
downloadedison-v3.10-6e9c6582376ac3c430bf7c89647313b2e685a597.tar.gz
suspend: Return error when pending wakeup source is found.
If a wakeup source is found to be pending in the last stage of suspend after syscore suspend then the device doesn't suspend but the error is not propogated which causes an error in the accounting for the number of suspend aborts and successful suspends. Change-Id: Ib63b4ead755127eaf03e3b303aab3c782ad02ed1 Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/suspend.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 7c53fea31cb..221037af99a 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -232,10 +232,11 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
if (!(suspend_test(TEST_CORE) || *wakeup)) {
error = suspend_ops->enter(state);
events_check_enabled = false;
- } else {
+ } else if (*wakeup) {
pm_get_active_wakeup_sources(suspend_abort,
MAX_SUSPEND_ABORT_LEN);
log_suspend_abort_reason(suspend_abort);
+ error = -EBUSY;
}
syscore_resume();
}