summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--power/sc7180.c34
-rw-r--r--power/sdm845.c34
2 files changed, 36 insertions, 32 deletions
diff --git a/power/sc7180.c b/power/sc7180.c
index 01f588fe61..3da8d5c4bb 100644
--- a/power/sc7180.c
+++ b/power/sc7180.c
@@ -567,6 +567,17 @@ static uint8_t check_for_power_on_event(void)
ap_off_flag = system_get_reset_flags() & EC_RESET_FLAG_AP_OFF;
system_clear_reset_flags(EC_RESET_FLAG_AP_OFF);
+
+ if (power_request == POWER_REQ_ON) {
+ power_request = POWER_REQ_NONE;
+ return POWER_ON_BY_POWER_REQ_ON;
+ }
+
+ if (power_request == POWER_REQ_RESET) {
+ power_request = POWER_REQ_NONE;
+ return POWER_ON_BY_POWER_REQ_RESET;
+ }
+
/* check if system is already ON */
if (power_get_signals() & IN_POWER_GOOD) {
if (ap_off_flag) {
@@ -602,16 +613,6 @@ static uint8_t check_for_power_on_event(void)
if (power_button_is_pressed())
return POWER_ON_BY_POWER_BUTTON_PRESSED;
- if (power_request == POWER_REQ_ON) {
- power_request = POWER_REQ_NONE;
- return POWER_ON_BY_POWER_REQ_ON;
- }
-
- if (power_request == POWER_REQ_RESET) {
- power_request = POWER_REQ_NONE;
- return POWER_ON_BY_POWER_REQ_RESET;
- }
-
return POWER_OFF_CANCEL;
}
@@ -628,12 +629,7 @@ static uint8_t check_for_power_off_event(void)
timestamp_t now;
int pressed = 0;
- /*
- * Check for power button press.
- */
- if (power_button_is_pressed()) {
- pressed = POWER_OFF_BY_POWER_BUTTON_PRESSED;
- } else if (power_request == POWER_REQ_OFF) {
+ if (power_request == POWER_REQ_OFF) {
power_request = POWER_REQ_NONE;
return POWER_OFF_BY_POWER_REQ_OFF;
} else if (power_request == POWER_REQ_RESET) {
@@ -644,6 +640,12 @@ static uint8_t check_for_power_off_event(void)
return POWER_OFF_BY_POWER_REQ_RESET;
}
+ /*
+ * Check for power button press.
+ */
+ if (power_button_is_pressed())
+ pressed = POWER_OFF_BY_POWER_BUTTON_PRESSED;
+
now = get_time();
if (pressed) {
if (!power_button_was_pressed) {
diff --git a/power/sdm845.c b/power/sdm845.c
index ac5b814ad3..a799ec5883 100644
--- a/power/sdm845.c
+++ b/power/sdm845.c
@@ -555,6 +555,17 @@ static uint8_t check_for_power_on_event(void)
ap_off_flag = system_get_reset_flags() & EC_RESET_FLAG_AP_OFF;
system_clear_reset_flags(EC_RESET_FLAG_AP_OFF);
+
+ if (power_request == POWER_REQ_ON) {
+ power_request = POWER_REQ_NONE;
+ return POWER_ON_BY_POWER_REQ_ON;
+ }
+
+ if (power_request == POWER_REQ_RESET) {
+ power_request = POWER_REQ_NONE;
+ return POWER_ON_BY_POWER_REQ_RESET;
+ }
+
/* check if system is already ON */
if (power_get_signals() & IN_POWER_GOOD) {
if (ap_off_flag) {
@@ -590,16 +601,6 @@ static uint8_t check_for_power_on_event(void)
if (power_button_is_pressed())
return POWER_ON_BY_POWER_BUTTON_PRESSED;
- if (power_request == POWER_REQ_ON) {
- power_request = POWER_REQ_NONE;
- return POWER_ON_BY_POWER_REQ_ON;
- }
-
- if (power_request == POWER_REQ_RESET) {
- power_request = POWER_REQ_NONE;
- return POWER_ON_BY_POWER_REQ_RESET;
- }
-
return POWER_OFF_CANCEL;
}
@@ -616,12 +617,7 @@ static uint8_t check_for_power_off_event(void)
timestamp_t now;
int pressed = 0;
- /*
- * Check for power button press.
- */
- if (power_button_is_pressed()) {
- pressed = POWER_OFF_BY_POWER_BUTTON_PRESSED;
- } else if (power_request == POWER_REQ_OFF) {
+ if (power_request == POWER_REQ_OFF) {
power_request = POWER_REQ_NONE;
return POWER_OFF_BY_POWER_REQ_OFF;
} else if (power_request == POWER_REQ_RESET) {
@@ -632,6 +628,12 @@ static uint8_t check_for_power_off_event(void)
return POWER_OFF_BY_POWER_REQ_RESET;
}
+ /*
+ * Check for power button press.
+ */
+ if (power_button_is_pressed())
+ pressed = POWER_OFF_BY_POWER_BUTTON_PRESSED;
+
now = get_time();
if (pressed) {
if (!power_button_was_pressed) {