summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
Diffstat (limited to 'power')
-rw-r--r--power/rk3399.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/power/rk3399.c b/power/rk3399.c
index dd76f5ef74..720ec09151 100644
--- a/power/rk3399.c
+++ b/power/rk3399.c
@@ -314,14 +314,15 @@ static void power_button_changed(void)
/* Power up from off */
chipset_exit_hard_off();
- else if (!chipset_in_state(CHIPSET_STATE_ON))
+ else if (!chipset_in_state(CHIPSET_STATE_ON)) {
/* Power down immediately from S3 */
force_shutdown();
+ return;
+ }
- else
- /* Delayed power down from S0 */
- hook_call_deferred(&force_shutdown_data,
- FORCED_SHUTDOWN_DELAY);
+ /* Delayed power down from S0, cancel on PB release */
+ hook_call_deferred(&force_shutdown_data,
+ FORCED_SHUTDOWN_DELAY);
} else {
/* Power button released, cancel deferred shutdown */
hook_call_deferred(&force_shutdown_data, -1);