Commit 982bce11 authored by Viresh Kumar's avatar Viresh Kumar Committed by Rafael J. Wysocki

cpufreq: omap: use cpufreq_generic_init()

Use generic cpufreq_generic_init() routine instead of replicating the same code
here.

This also rearranges the code a bit to make it more sensible. Also removes some
unnecessary checks.

Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 7bfd2483
...@@ -160,50 +160,31 @@ static inline void freq_table_free(void) ...@@ -160,50 +160,31 @@ static inline void freq_table_free(void)
static int omap_cpu_init(struct cpufreq_policy *policy) static int omap_cpu_init(struct cpufreq_policy *policy)
{ {
int result = 0; int result;
mpu_clk = clk_get(NULL, "cpufreq_ck"); mpu_clk = clk_get(NULL, "cpufreq_ck");
if (IS_ERR(mpu_clk)) if (IS_ERR(mpu_clk))
return PTR_ERR(mpu_clk); return PTR_ERR(mpu_clk);
if (policy->cpu >= NR_CPUS) { if (!freq_table) {
result = -EINVAL;
goto fail_ck;
}
if (!freq_table)
result = opp_init_cpufreq_table(mpu_dev, &freq_table); result = opp_init_cpufreq_table(mpu_dev, &freq_table);
if (result) {
if (result) { dev_err(mpu_dev,
dev_err(mpu_dev, "%s: cpu%d: failed creating freq table[%d]\n", "%s: cpu%d: failed creating freq table[%d]\n",
__func__, policy->cpu, result); __func__, policy->cpu, result);
goto fail_ck; goto fail;
}
} }
atomic_inc_return(&freq_table_users); atomic_inc_return(&freq_table_users);
result = cpufreq_table_validate_and_show(policy, freq_table);
if (result)
goto fail_table;
/*
* On OMAP SMP configuartion, both processors share the voltage
* and clock. So both CPUs needs to be scaled together and hence
* needs software co-ordination. Use cpufreq affected_cpus
* interface to handle this scenario. Additional is_smp() check
* is to keep SMP_ON_UP build working.
*/
if (is_smp())
cpumask_setall(policy->cpus);
/* FIXME: what's the actual transition time? */ /* FIXME: what's the actual transition time? */
policy->cpuinfo.transition_latency = 300 * 1000; result = cpufreq_generic_init(policy, freq_table, 300 * 1000);
if (!result)
return 0; return 0;
fail_table:
freq_table_free(); freq_table_free();
fail_ck: fail:
clk_put(mpu_clk); clk_put(mpu_clk);
return result; return result;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment