diff options
author | Philip Chen <philipchen@google.com> | 2018-11-14 18:06:48 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-11-19 19:14:00 -0800 |
commit | c86e5363b920984b9310057ad12b9447cce6e4e5 (patch) | |
tree | ef18e39caf6aee3afb72c31b3c6adda60fdc9304 | |
parent | 34747dbadded27fa5c76b0d3e1e607a81908c718 (diff) | |
download | chrome-ec-c86e5363b920984b9310057ad12b9447cce6e4e5.tar.gz |
power/rk3399: Do not boot until power button is released
This is the expected behavior for tablet/detachable.
BUG=b:119508214
BRANCH=scarlet
TEST=When a dru is off, press VolUP + VolDN + Pwr buttons
for 10 secs without seeing dru boots, and then release those
buttons, confirm dru enters recovery mode.
Change-Id: Ib8d018da2af23a80a644f75808f9ed391b35d0f0
Signed-off-by: Philip Chen <philipchen@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1336739
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Philip Chen <philipchen@chromium.org>
Reviewed-by: Wai-Hong Tam <waihong@google.com>
-rw-r--r-- | power/rk3399.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/power/rk3399.c b/power/rk3399.c index b229684e7a..e669ee7224 100644 --- a/power/rk3399.c +++ b/power/rk3399.c @@ -539,15 +539,28 @@ enum power_state power_handle_state(enum power_state state) static void power_button_changed(void) { + static uint8_t tablet_boot_on_button_release; + if (power_button_is_pressed()) { - if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) + if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) { +#if CONFIG_CHIPSET_POWER_SEQ_VERSION != 2 /* Power up from off */ chipset_exit_hard_off(); - +#else + tablet_boot_on_button_release = 1; +#endif + } /* Delayed power down from S0/S3, cancel on PB release */ hook_call_deferred(&force_shutdown_data, FORCED_SHUTDOWN_DELAY); } else { +#if CONFIG_CHIPSET_POWER_SEQ_VERSION == 2 + if (tablet_boot_on_button_release) { + /* Power up from off */ + chipset_exit_hard_off(); + tablet_boot_on_button_release = 0; + } +#endif /* Power button released, cancel deferred shutdown */ hook_call_deferred(&force_shutdown_data, -1); } |