aboutsummaryrefslogtreecommitdiff
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorSudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>2012-11-30 18:45:47 +0000
committerJon Medhurst <tixy@linaro.org>2013-04-29 09:43:51 +0100
commitbbdd94fe02e9bc54b5c8d873e7dfc0ef3c592aaa (patch)
treef2b38e33fa9d0fd573978514532f5baba219efef /drivers/cpufreq
parent3615b1187865c8c2bbd764e34bcb383318b4adf0 (diff)
cpufreq: vexpress: update parameters to spc get/set perf routines
As the SPC driver now take frequency as the input parameter for get/set performance routines, change the cpufreq driver to reflect the same. With this change Linux no longer rely on DT for freq -> perf index mapping. Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r--drivers/cpufreq/vexpress_bL_cpufreq.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/cpufreq/vexpress_bL_cpufreq.c b/drivers/cpufreq/vexpress_bL_cpufreq.c
index 228542a21d5..5718bbecd98 100644
--- a/drivers/cpufreq/vexpress_bL_cpufreq.c
+++ b/drivers/cpufreq/vexpress_bL_cpufreq.c
@@ -91,11 +91,9 @@ static int vexpress_cpufreq_set_target(struct cpufreq_policy *policy,
/* Read current clock rate */
cur_cluster = get_current_cached_cluster(cpu);
- if (vexpress_spc_get_performance(cur_cluster, &freq_tab_idx))
+ if (vexpress_spc_get_performance(cur_cluster, &freqs.old))
return -EIO;
- freqs.old = freq_table[cur_cluster][freq_tab_idx].frequency;
-
/* Make sure that target_freq is within supported range */
if (target_freq > policy->max)
target_freq = policy->max;
@@ -117,7 +115,7 @@ static int vexpress_cpufreq_set_target(struct cpufreq_policy *policy,
for_each_cpu(freqs.cpu, policy->cpus)
cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
- ret = vexpress_spc_set_performance(cur_cluster, freq_tab_idx);
+ ret = vexpress_spc_set_performance(cur_cluster, freqs.new);
if (ret) {
pr_err("Error %d while setting required OPP\n", ret);
return ret;
@@ -134,16 +132,16 @@ static int vexpress_cpufreq_set_target(struct cpufreq_policy *policy,
/* Get current clock frequency */
static unsigned int vexpress_cpufreq_get(unsigned int cpu)
{
- uint32_t freq_tab_idx = 0;
+ uint32_t freq = 0;
uint32_t cur_cluster = get_current_cached_cluster(cpu);
/*
* Read current clock rate with vexpress_spc call
*/
- if (vexpress_spc_get_performance(cur_cluster, &freq_tab_idx))
+ if (vexpress_spc_get_performance(cur_cluster, &freq))
return -EIO;
- return freq_table[cur_cluster][freq_tab_idx].frequency;
+ return freq;
}
/* translate the integer array into cpufreq_frequency_table entries */