From: 黄涛 Date: Thu, 31 May 2012 01:28:26 +0000 (+0800) Subject: rk: earlysuspend: only works on system is running X-Git-Tag: firefly_0821_release~9142^2~14 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=193a36f0962127f3c6b732cfcd414a6a8fd83f3e;p=firefly-linux-kernel-4.4.55.git rk: earlysuspend: only works on system is running --- diff --git a/kernel/power/earlysuspend.c b/kernel/power/earlysuspend.c index ba5e9763a8a3..11d476062245 100644 --- a/kernel/power/earlysuspend.c +++ b/kernel/power/earlysuspend.c @@ -77,6 +77,11 @@ static void early_suspend(struct work_struct *work) unsigned long irqflags; int abort = 0; +#ifdef CONFIG_PLAT_RK + if (system_state != SYSTEM_RUNNING) + return; +#endif + mutex_lock(&early_suspend_lock); spin_lock_irqsave(&state_lock, irqflags); if (state == SUSPEND_REQUESTED) @@ -124,6 +129,11 @@ static void late_resume(struct work_struct *work) unsigned long irqflags; int abort = 0; +#ifdef CONFIG_PLAT_RK + if (system_state != SYSTEM_RUNNING) + return; +#endif + mutex_lock(&early_suspend_lock); spin_lock_irqsave(&state_lock, irqflags); if (state == SUSPENDED) @@ -158,6 +168,11 @@ void request_suspend_state(suspend_state_t new_state) unsigned long irqflags; int old_sleep; +#ifdef CONFIG_PLAT_RK + if (system_state != SYSTEM_RUNNING) + return; +#endif + spin_lock_irqsave(&state_lock, irqflags); old_sleep = state & SUSPEND_REQUESTED; if (debug_mask & DEBUG_USER_STATE) {