aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2013-01-16 13:35:43 +0530
committerAndrey Konovalov <andrey.konovalov@linaro.org>2013-05-25 13:28:05 +0400
commitf5a36b6f0395bfba8273d259d738dbc826bf5715 (patch)
treee37d811889c94c3a86081291e0e00f2c8d635530
parent742c11a54c736b38211a93406dd8d5ca6cf758f6 (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.c8
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);