diff options
author | Abe Levkoy <alevkoy@chromium.org> | 2022-09-29 14:33:04 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-30 17:00:52 +0000 |
commit | 96ea2431171ecfa4b3233601c3b0f2a58c589988 (patch) | |
tree | 16e0ce8587444d0c60c2869e221e95df6b7262eb /zephyr/mock | |
parent | 4b8df114dce6362c946161ed5739a5c0306a03ef (diff) | |
download | chrome-ec-96ea2431171ecfa4b3233601c3b0f2a58c589988.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>
Diffstat (limited to 'zephyr/mock')
-rw-r--r-- | zephyr/mock/power.c | 9 |
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; |