summaryrefslogtreecommitdiff
path: root/common/gaia_power.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2012-07-22 14:00:37 -0700
committerGerrit <chrome-bot@google.com>2012-07-23 11:03:33 -0700
commit085b31222b9f34e5470031fe1e957804beded69d (patch)
tree0b986941af233ccaabd9d4e32093854a5a0f700a /common/gaia_power.c
parent93f2e8213325741b189841d57c849c1f55651ff2 (diff)
downloadchrome-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.c9
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;