diff options
author | Randall Spangler <rspangler@chromium.org> | 2012-07-22 14:00:37 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-07-23 11:03:33 -0700 |
commit | 085b31222b9f34e5470031fe1e957804beded69d (patch) | |
tree | 0b986941af233ccaabd9d4e32093854a5a0f700a /common/gaia_power.c | |
parent | 93f2e8213325741b189841d57c849c1f55651ff2 (diff) | |
download | chrome-ec-085b31222b9f34e5470031fe1e957804beded69d.tar.gz |
Refactor reboot command to add ap-off and cancel options
Also add 'preserve' flag, for tracking when flags have been preserved
from a previous boot.
BUG=chrome-os-partner:11663
TEST=manual
reboot -> flags = soft
reboot preserve -> flags = soft preserve
From ectool, 'ectool reboot_ec cold at-shutdown'
sysinfo -> shows reboot at shutdown: 4
reboot cancel
sysinfo -> no longer shows pending reboot
reboot ap-off -> flags = soft ap-off, AP is not powered on
Change-Id: I117f33fe21048edb2261be4dcdc6c828a5794d54
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/28139
Diffstat (limited to 'common/gaia_power.c')
-rw-r--r-- | common/gaia_power.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/common/gaia_power.c b/common/gaia_power.c index 9d009c9e98..48377523c3 100644 --- a/common/gaia_power.c +++ b/common/gaia_power.c @@ -23,13 +23,14 @@ * - If XPSHOLD is dropped by the AP, then we power the AP off */ -#include "board.h" #include "chipset.h" /* This module implements chipset functions too */ +#include "common.h" #include "console.h" #include "gpio.h" #include "hooks.h" #include "keyboard_scan.h" #include "power_led.h" +#include "system.h" #include "task.h" #include "timer.h" #include "util.h" @@ -247,7 +248,11 @@ int gaia_power_init(void) gpio_enable_interrupt(GPIO_SOC1V8_XPSHOLD); gpio_enable_interrupt(GPIO_SUSPEND_L); - /* auto power on if the recovery combination was pressed */ + /* Leave power off if requested by reset flags */ + if (system_get_reset_flags() & RESET_FLAG_AP_OFF) + auto_power_on = 0; + + /* Auto power on if the recovery combination was pressed */ if (keyboard_scan_recovery_pressed()) auto_power_on = 1; |