summaryrefslogtreecommitdiff
path: root/power/qcom.c
diff options
context:
space:
mode:
authorRob Barnes <robbarnes@google.com>2022-03-16 06:20:15 -0600
committerCommit Bot <commit-bot@chromium.org>2022-03-17 20:28:54 +0000
commit4412c9404d6e28e168ed2a4856d6d678707c8967 (patch)
tree730e26a7d6c0b37ce2f9494a47eb21986c069493 /power/qcom.c
parentc24772c046ec72364e61e694694dca7865de0570 (diff)
downloadchrome-ec-4412c9404d6e28e168ed2a4856d6d678707c8967.tar.gz
power: Add chipset and board callbacks for sleep hangs
Instead of passing a callback to host_sleep, define overridable board and chipset callbacks for sleep hang detection. Introduce a sleep_hang_type enum that identifies the type of sleep hang (suspend or resume). These changes make it eaier for boards to implement custom logic to handle sleep hangs. BUG=b:218892808 BRANCH=guybrush TEST=Observe suspend hang detection on Nipperkin with KI Change-Id: Ifacf90f808b1447633f7cfc2d570209d1e233950 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3529606 Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'power/qcom.c')
-rw-r--r--power/qcom.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/power/qcom.c b/power/qcom.c
index 127dbbf6cc..d931e6bb29 100644
--- a/power/qcom.c
+++ b/power/qcom.c
@@ -931,7 +931,8 @@ static inline int chipset_get_sleep_signal(void)
return fake_suspend;
}
-static void suspend_hang_detected(void)
+__override void power_chipset_handle_sleep_hang(
+ enum sleep_hang_type hang_type)
{
CPRINTS("Warning: Detected sleep hang! Waking host up!");
host_set_single_event(EC_HOST_EVENT_HANG_DETECT);
@@ -968,7 +969,7 @@ __override void power_chipset_handle_host_sleep_event(
* notification needs to be sent to listeners.
*/
sleep_set_notify(SLEEP_NOTIFY_SUSPEND);
- sleep_start_suspend(ctx, suspend_hang_detected);
+ sleep_start_suspend(ctx);
power_signal_enable_interrupt(GPIO_AP_SUSPEND);
} else if (state == HOST_SLEEP_EVENT_S3_RESUME) {