mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 15:58:47 +00:00
cpufreq: dt: Check OPP count before marking them shared
We need to explicitly mark OPPs as shared, when they are not defined with OPP-v2 bindings. But this isn't required to be done if we failed to initialize OPP table. Reorder code to verify OPP count before marking them shared. Fixes: 2e02d8723edf ("cpufreq: dt: Add support for operating-points-v2 bindings") 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
0ed537b5fd
commit
7d5d0c8ba3
@ -239,6 +239,17 @@ static int cpufreq_init(struct cpufreq_policy *policy)
|
|||||||
*/
|
*/
|
||||||
of_cpumask_init_opp_table(policy->cpus);
|
of_cpumask_init_opp_table(policy->cpus);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* But we need OPP table to function so if it is not there let's
|
||||||
|
* give platform code chance to provide it for us.
|
||||||
|
*/
|
||||||
|
ret = dev_pm_opp_get_opp_count(cpu_dev);
|
||||||
|
if (ret <= 0) {
|
||||||
|
pr_debug("OPP table is not ready, deferring probe\n");
|
||||||
|
ret = -EPROBE_DEFER;
|
||||||
|
goto out_free_opp;
|
||||||
|
}
|
||||||
|
|
||||||
if (need_update) {
|
if (need_update) {
|
||||||
struct cpufreq_dt_platform_data *pd = cpufreq_get_driver_data();
|
struct cpufreq_dt_platform_data *pd = cpufreq_get_driver_data();
|
||||||
|
|
||||||
@ -256,17 +267,6 @@ static int cpufreq_init(struct cpufreq_policy *policy)
|
|||||||
transition_latency = dev_pm_opp_get_max_clock_latency(cpu_dev);
|
transition_latency = dev_pm_opp_get_max_clock_latency(cpu_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* But we need OPP table to function so if it is not there let's
|
|
||||||
* give platform code chance to provide it for us.
|
|
||||||
*/
|
|
||||||
ret = dev_pm_opp_get_opp_count(cpu_dev);
|
|
||||||
if (ret <= 0) {
|
|
||||||
pr_debug("OPP table is not ready, deferring probe\n");
|
|
||||||
ret = -EPROBE_DEFER;
|
|
||||||
goto out_free_opp;
|
|
||||||
}
|
|
||||||
|
|
||||||
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
|
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
|
||||||
if (!priv) {
|
if (!priv) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user