summaryrefslogtreecommitdiff
path: root/common/power_button_x86.c
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2017-05-24 12:17:04 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-05-30 10:26:41 -0700
commitbb559311c8b6077e8823a1f47d7e427f92ecc118 (patch)
tree7a370cb573fa9203f279b3f11df5660806508864 /common/power_button_x86.c
parentc35fad0f2bc16fffe25dfe3b86f0df508d6d0b87 (diff)
downloadchrome-ec-bb559311c8b6077e8823a1f47d7e427f92ecc118.tar.gz
power_button_x86: Set PB state to ON in recovery mode
This patch sets the initial power button state to on if recovery mode is requested. BUG=b:37274183 BRANCH=none TEST=Verify EC boots AP immediately in recovery mode on Fizz. Verify EC doesn't boot AP immediately in normal mode. Change-Id: Ib24eb6c6b7e9200cf7ba6af3e486337da3c68355 Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/514209 Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'common/power_button_x86.c')
-rw-r--r--common/power_button_x86.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/common/power_button_x86.c b/common/power_button_x86.c
index 7fd7101c29..096fd478ce 100644
--- a/common/power_button_x86.c
+++ b/common/power_button_x86.c
@@ -212,6 +212,7 @@ static void set_initial_pwrbtn_state(void)
} else {
CPRINTS("PB init-jumped");
}
+ return;
} else if ((reset_flags & RESET_FLAG_AP_OFF) ||
(keyboard_scan_get_boot_keys() == BOOT_KEY_DOWN_ARROW)) {
/*
@@ -227,22 +228,18 @@ static void set_initial_pwrbtn_state(void)
*/
CPRINTS("PB init-off");
power_button_pch_release();
- } else if (power_button_is_pressed()) {
- CPRINTS("PB init-on");
- pwrbtn_state = PWRBTN_STATE_INIT_ON;
- } else {
- /*
- * All other EC reset conditions power on the main processor so
- * it can verify the EC.
- */
+ return;
+ }
+
+ pwrbtn_state = PWRBTN_STATE_INIT_ON;
+
#if defined(CONFIG_BRINGUP) || defined(CONFIG_POWER_BUTTON_INIT_IDLE)
- CPRINTS("PB idle");
+ if (!power_button_is_pressed() &&
+ !host_is_event_set(EC_HOST_EVENT_KEYBOARD_RECOVERY))
pwrbtn_state = PWRBTN_STATE_IDLE;
-#else
- CPRINTS("PB init-on");
- pwrbtn_state = PWRBTN_STATE_INIT_ON;
#endif
- }
+ CPRINTS("PB %s",
+ pwrbtn_state == PWRBTN_STATE_INIT_ON ? "init-on" : "idle");
}
/**