From 0aaecd3249f512bc62a7d6b152cbba665e18f075 Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Mon, 2 Sep 2019 21:32:56 -0700 Subject: [PATCH] cpufreq: Allow configuring default minimum frequencies in Kconfig This adds config options that set the default minimum frequency for the little, big, and prime CPU clusters. Signed-off-by: Danny Lin Signed-off-by: UtsavBalar1231 --- drivers/cpufreq/Kconfig | 27 +++++++++++++++++++++++++++ drivers/cpufreq/freq_table.c | 13 +++++++++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig index 6cfaaeb2e79a..ed23aacc7258 100644 --- a/drivers/cpufreq/Kconfig +++ b/drivers/cpufreq/Kconfig @@ -250,6 +250,33 @@ config CPU_FREQ_GOV_INTERACTIVE If in doubt, say N. +config CPU_FREQ_DEFAULT_LITTLE_MIN + int "Default minimum frequency for the little cluster" + default 0 + help + This sets the default minimum frequency (in kHz) for the little CPU + cluster. + + If in doubt, say 0 to use the hardware's minimum frequency. + +config CPU_FREQ_DEFAULT_BIG_MIN + int "Default minimum frequency for the big cluster" + default 0 + help + This sets the default minimum frequency (in kHz) for the big CPU + cluster. + + If in doubt, say 0 to use the hardware's minimum frequency. + +config CPU_FREQ_DEFAULT_PRIME_MIN + int "Default minimum frequency for the prime cluster" + default 0 + help + This sets the default minimum frequency (in kHz) for the prime CPU + cluster. + + If in doubt, say 0 to use the hardware's minimum frequency. + comment "CPU frequency scaling drivers" config CPUFREQ_DT diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c index 7f205ec61244..b3dbd7186870 100644 --- a/drivers/cpufreq/freq_table.c +++ b/drivers/cpufreq/freq_table.c @@ -58,6 +58,19 @@ int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy, policy->min = policy->cpuinfo.min_freq = min_freq; policy->max = policy->cpuinfo.max_freq = max_freq; +#if CONFIG_CPU_FREQ_DEFAULT_LITTLE_MIN + if (cpumask_test_cpu(policy->cpu, cpu_lp_mask)) + policy->min = CONFIG_CPU_FREQ_DEFAULT_LITTLE_MIN; +#endif +#if CONFIG_CPU_FREQ_DEFAULT_BIG_MIN + if (cpumask_test_cpu(policy->cpu, cpu_perf_mask)) + policy->min = CONFIG_CPU_FREQ_DEFAULT_BIG_MIN; +#endif +#if CONFIG_CPU_FREQ_DEFAULT_PRIME_MIN + if (cpumask_test_cpu(policy->cpu, cpu_perfp_mask)) + policy->min = CONFIG_CPU_FREQ_DEFAULT_PRIME_MIN; +#endif + if (max_freq > cpuinfo_max_freq_cached) cpuinfo_max_freq_cached = max_freq;