diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 79127e704342..0d33ee078bd6 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -440,3 +440,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_get_folio_trylock_result); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_folio_trylock_clear); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_folio_trylock_set); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_handle_trylock_failed_folio); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_hibernate_state); diff --git a/include/trace/hooks/power.h b/include/trace/hooks/power.h index e845d0ef6025..fcbba69b3f24 100644 --- a/include/trace/hooks/power.h +++ b/include/trace/hooks/power.h @@ -33,6 +33,10 @@ DECLARE_HOOK(android_vh_freq_qos_remove_request, TP_PROTO(struct freq_qos_request *req), TP_ARGS(req)); +DECLARE_HOOK(android_vh_hibernate_state, + TP_PROTO(int error), + TP_ARGS(error)); + #endif /* _TRACE_HOOK_POWER_H */ /* This part must be outside protection */ #include diff --git a/kernel/power/main.c b/kernel/power/main.c index 31ec4a9b9d70..31547d847d06 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include "power.h" @@ -639,6 +641,7 @@ static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr, error = pm_suspend(state); } else if (state == PM_SUSPEND_MAX) { error = hibernate(); + trace_android_vh_hibernate_state(error); } else { error = -EINVAL; }