cpufreq: cpu0: OPPs can be populated at runtime
OPPs can be populated statically, via DT, or added at run time with dev_pm_opp_add(). While this driver handles the first case correctly, it would fail to populate OPPs added at runtime. Because call to of_init_opp_table() would fail as there are no OPPs in DT and probe will return early. To fix this, remove error checking and call dev_pm_opp_init_cpufreq_table() unconditionally. Update bindings as well. Suggested-by: Stephen Boyd <sboyd@codeaurora.org> Tested-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
2fa1adc070
commit
1bf8cc3d01
|
@ -8,10 +8,12 @@ Both required and optional properties listed below must be defined
|
||||||
under node /cpus/cpu@0.
|
under node /cpus/cpu@0.
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
- operating-points: Refer to Documentation/devicetree/bindings/power/opp.txt
|
- None
|
||||||
for details
|
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
|
- operating-points: Refer to Documentation/devicetree/bindings/power/opp.txt for
|
||||||
|
details. OPPs *must* be supplied either via DT, i.e. this property, or
|
||||||
|
populated at runtime.
|
||||||
- clock-latency: Specify the possible maximum transition latency for clock,
|
- clock-latency: Specify the possible maximum transition latency for clock,
|
||||||
in unit of nanoseconds.
|
in unit of nanoseconds.
|
||||||
- voltage-tolerance: Specify the CPU voltage tolerance in percentage.
|
- voltage-tolerance: Specify the CPU voltage tolerance in percentage.
|
||||||
|
|
|
@ -152,11 +152,8 @@ static int cpu0_cpufreq_probe(struct platform_device *pdev)
|
||||||
goto out_put_reg;
|
goto out_put_reg;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = of_init_opp_table(cpu_dev);
|
/* OPPs might be populated at runtime, don't check for error here */
|
||||||
if (ret) {
|
of_init_opp_table(cpu_dev);
|
||||||
pr_err("failed to init OPP table: %d\n", ret);
|
|
||||||
goto out_put_clk;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table);
|
ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|
Loading…
Reference in New Issue