From 517ab65e133063bb274d1d8d14428be3b5b32cde Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Tue, 22 Oct 2019 14:32:38 +0800 Subject: [PATCH] cpufreq: Adjust target frequency according to cpu threshold Change-Id: Idd86ef55aad09860a6dc726c7285ee39b0845a38 Signed-off-by: Finley Xiao --- drivers/cpufreq/cpufreq.c | 3 +++ include/linux/cpufreq.h | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index db2204d14b87..779acc418da2 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -1983,6 +1983,9 @@ int __cpufreq_driver_target(struct cpufreq_policy *policy, if (cpufreq_disabled()) return -ENODEV; +#ifdef CONFIG_ARM_ROCKCHIP_CPUFREQ + target_freq = rockchip_cpufreq_adjust_target(policy->cpu, target_freq); +#endif /* Make sure that target_freq is within supported range */ target_freq = clamp_val(target_freq, policy->min, policy->max); diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index a9a1c4df2c15..7460c518704b 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h @@ -978,4 +978,13 @@ unsigned int cpufreq_generic_get(unsigned int cpu); int cpufreq_generic_init(struct cpufreq_policy *policy, struct cpufreq_frequency_table *table, unsigned int transition_latency); +#ifdef CONFIG_ARM_ROCKCHIP_CPUFREQ +unsigned int rockchip_cpufreq_adjust_target(int cpu, unsigned int freq); +#else +static inline unsigned int rockchip_cpufreq_adjust_target(int cpu, + unsigned int freq) +{ + return freq; +} +#endif #endif /* _LINUX_CPUFREQ_H */