From fbe6f8708d4f26ec2f73544786bbec3cb0ba53cc Mon Sep 17 00:00:00 2001 From: Jeson Gao Date: Thu, 7 Apr 2022 19:49:31 +0800 Subject: [PATCH] ANDROID: thermal: Add hook for cpufreq thermal Add hook to get cpufreq policy data after registering and unregistering cpufreq thermal for platform thermal requirement. Bug: 228423762 Signed-off-by: Jeson Gao Change-Id: I9c6bc88f348f252c428560427bd8bca91092edfa --- drivers/android/vendor_hooks.c | 2 ++ drivers/cpufreq/cpufreq.c | 6 +++++- include/trace/hooks/thermal.h | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 981b77349338..060bc7e72ad0 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -261,6 +261,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_encrypt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_aes_decrypt); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_request_freq); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_target_freq); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_register); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_thermal_unregister); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery_set); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_power_throttle); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init); diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 92302f03cae8..28d3a88a42a3 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -31,6 +31,7 @@ #include #include #include +#include static LIST_HEAD(cpufreq_policy_list); @@ -1530,8 +1531,10 @@ static int cpufreq_online(unsigned int cpu) kobject_uevent(&policy->kobj, KOBJ_ADD); - if (cpufreq_thermal_control_enabled(cpufreq_driver)) + if (cpufreq_thermal_control_enabled(cpufreq_driver)) { policy->cdev = of_cpufreq_cooling_register(policy); + trace_android_vh_thermal_register(policy); + } pr_debug("initialization complete\n"); @@ -1626,6 +1629,7 @@ static int cpufreq_offline(unsigned int cpu) if (cpufreq_thermal_control_enabled(cpufreq_driver)) { cpufreq_cooling_unregister(policy->cdev); + trace_android_vh_thermal_unregister(policy); policy->cdev = NULL; } diff --git a/include/trace/hooks/thermal.h b/include/trace/hooks/thermal.h index 59741a88af48..96723ac9a76b 100644 --- a/include/trace/hooks/thermal.h +++ b/include/trace/hooks/thermal.h @@ -18,6 +18,14 @@ DECLARE_HOOK(android_vh_modify_thermal_target_freq, TP_PROTO(struct cpufreq_policy *policy, unsigned int *target_freq), TP_ARGS(policy, target_freq)); +DECLARE_HOOK(android_vh_thermal_register, + TP_PROTO(struct cpufreq_policy *policy), + TP_ARGS(policy)); + +DECLARE_HOOK(android_vh_thermal_unregister, + TP_PROTO(struct cpufreq_policy *policy), + TP_ARGS(policy)); + DECLARE_HOOK(android_vh_enable_thermal_power_throttle, TP_PROTO(int *enable), TP_ARGS(enable));