summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Chen <philipchen@google.com>2018-11-14 18:06:48 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2018-11-20 07:05:20 +0000
commita04fd75d825bc33077abfd15822b29f9d53bd34c (patch)
treea2ee99fa90577d1fa3868dcbf56b8edca2492c0c
parentc39081fd324840f24b91f7439b982109c86f1b99 (diff)
downloadchrome-ec-a04fd75d825bc33077abfd15822b29f9d53bd34c.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> (cherry picked from commit c86e5363b920984b9310057ad12b9447cce6e4e5) Reviewed-on: https://chromium-review.googlesource.com/c/1342734 Reviewed-by: Philip Chen <philipchen@chromium.org> Commit-Queue: Philip Chen <philipchen@chromium.org> Trybot-Ready: Philip Chen <philipchen@chromium.org>
-rw-r--r--power/rk3399.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/power/rk3399.c b/power/rk3399.c
index 95059fb3c6..049d07a489 100644
--- a/power/rk3399.c
+++ b/power/rk3399.c
@@ -537,15 +537,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);
}