diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2013-01-16 13:35:43 +0530 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2013-05-25 13:28:05 +0400 |
commit | f5a36b6f0395bfba8273d259d738dbc826bf5715 (patch) | |
tree | e37d811889c94c3a86081291e0e00f2c8d635530 | |
parent | 742c11a54c736b38211a93406dd8d5ca6cf758f6 (diff) |
cpufreq: arm_big_little: Make 1.2 GHz max freq for IKS
Currently following is the frequency range we have for IKS:
A7 (actual freq): 350 MHz -> 1 GHz
A15 (actual freq): 500 MHz-> 1.2 GHz
A15 (virtual freq): 1 GHz -> 2.4 GHz
Problem: From user space it looks like the cpu can support upto 2.4 GHz
physically, which is incorrect. Over that benchmarking tests done by many people
consider the highest freq available in their results, which would make our
results poor.
Instead of using virtual A15 freqs, lets use virtual A7 freqs. That can be
easily done by making virtual A7 freqs half of their actual value. And so our
new range would be: 175 MHz to 1.2 GHz.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reported-by: Praveen Prakash <praveen.prakash@arm.com>
Signed-off-by: Nicolas Pitre <nico@linaro.org>
-rw-r--r-- | drivers/cpufreq/arm_big_little.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/cpufreq/arm_big_little.c b/drivers/cpufreq/arm_big_little.c index 25fbf68ce05..5ccd099fa94 100644 --- a/drivers/cpufreq/arm_big_little.c +++ b/drivers/cpufreq/arm_big_little.c @@ -44,8 +44,8 @@ static bool bL_switching_enabled; #define A7_CLUSTER 1 #define MAX_CLUSTERS 2 -#define ACTUAL_FREQ(cluster, freq) ((cluster == A15_CLUSTER) ? freq >> 1 : freq) -#define VIRT_FREQ(cluster, freq) ((cluster == A15_CLUSTER) ? freq << 1 : freq) +#define ACTUAL_FREQ(cluster, freq) ((cluster == A7_CLUSTER) ? freq << 1 : freq) +#define VIRT_FREQ(cluster, freq) ((cluster == A7_CLUSTER) ? freq >> 1 : freq) static struct cpufreq_arm_bL_ops *arm_bL_ops; static struct clk *clk[MAX_CLUSTERS]; @@ -411,8 +411,8 @@ static int get_cluster_clk_and_freq_table(u32 cluster) goto put_clusters; /* Assuming 2 cluster, set clk_big_min and clk_little_max */ - clk_big_min = VIRT_FREQ(0, get_table_min(freq_table[0])); - clk_little_max = get_table_max(freq_table[1]); + clk_big_min = get_table_min(freq_table[0]); + clk_little_max = VIRT_FREQ(1, get_table_max(freq_table[1])); pr_debug("%s: cluster: %d, clk_big_min: %d, clk_little_max: %d\n", __func__, cluster, clk_big_min, clk_little_max); |