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: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
7bfd248356
commit
982bce112f
@ -160,50 +160,31 @@ static inline void freq_table_free(void)
|
||||
|
||||
static int omap_cpu_init(struct cpufreq_policy *policy)
|
||||
{
|
||||
int result = 0;
|
||||
int result;
|
||||
|
||||
mpu_clk = clk_get(NULL, "cpufreq_ck");
|
||||
if (IS_ERR(mpu_clk))
|
||||
return PTR_ERR(mpu_clk);
|
||||
|
||||
if (policy->cpu >= NR_CPUS) {
|
||||
result = -EINVAL;
|
||||
goto fail_ck;
|
||||
}
|
||||
|
||||
if (!freq_table)
|
||||
if (!freq_table) {
|
||||
result = opp_init_cpufreq_table(mpu_dev, &freq_table);
|
||||
|
||||
if (result) {
|
||||
dev_err(mpu_dev, "%s: cpu%d: failed creating freq table[%d]\n",
|
||||
if (result) {
|
||||
dev_err(mpu_dev,
|
||||
"%s: cpu%d: failed creating freq table[%d]\n",
|
||||
__func__, policy->cpu, result);
|
||||
goto fail_ck;
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
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? */
|
||||
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();
|
||||
fail_ck:
|
||||
fail:
|
||||
clk_put(mpu_clk);
|
||||
return result;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user