summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbe Levkoy <alevkoy@chromium.org>2022-09-29 14:33:04 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-30 17:00:52 +0000
commit96ea2431171ecfa4b3233601c3b0f2a58c589988 (patch)
tree16e0ce8587444d0c60c2869e221e95df6b7262eb
parent4b8df114dce6362c946161ed5739a5c0306a03ef (diff)
downloadchrome-ec-firmware-duplo-15151.B-main.tar.gz
zephyr: mock power: Support soft offfirmware-duplo-15151.B-main
Honor a request to enter a soft-off state, analogous to S5 in ACPI. BUG=b:239515386 TEST=twister -T test/drivers BRANCH=none LOW_COVERAGE_REASON=This is a mock. It will be used later. Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I36a2f6c08aaa127b969556e20cba2eadd658a18c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3926350 Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Reviewed-by: Al Semjonovs <asemjonovs@google.com>
-rw-r--r--zephyr/mock/power.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/zephyr/mock/power.c b/zephyr/mock/power.c
index 7f424cf23b..73f93ce3b5 100644
--- a/zephyr/mock/power.c
+++ b/zephyr/mock/power.c
@@ -56,6 +56,7 @@ static const char *power_req_name[POWER_REQ_COUNT] = {
"none",
"OFF",
"ON",
+ "SOFT_OFF",
};
static enum power_request_t current_power_request = POWER_REQ_NONE;
@@ -176,12 +177,15 @@ enum power_state power_handle_state_custom_fake(enum power_state state)
new_state = POWER_S5S3;
} else if (current_power_request == POWER_REQ_OFF) {
/* S5 timeout should transition to G3 */
+ } else if (current_power_request == POWER_REQ_SOFT_OFF) {
+ power_request_complete();
}
break;
case POWER_S3: /* Suspend; RAM on, processor is asleep */
if (current_power_request == POWER_REQ_ON) {
new_state = POWER_S3S0;
- } else if (current_power_request == POWER_REQ_OFF) {
+ } else if (current_power_request == POWER_REQ_OFF ||
+ current_power_request == POWER_REQ_SOFT_OFF) {
new_state = POWER_S3S5;
}
break;
@@ -192,7 +196,8 @@ enum power_state power_handle_state_custom_fake(enum power_state state)
sleep_notify_transition(SLEEP_NOTIFY_RESUME,
HOOK_CHIPSET_RESUME);
- } else if (current_power_request == POWER_REQ_OFF) {
+ } else if (current_power_request == POWER_REQ_OFF ||
+ current_power_request == POWER_REQ_SOFT_OFF) {
new_state = POWER_S0S3;
}
break;