cpufreq-dt: free OPP table created during ->init()
OPP layer now supports freeing of OPPs and we should free them once they aren't useful anymore. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Tested-by: Stefan Wahren <stefan.wahren@i2se.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Родитель
2af3411f0e
Коммит
2f0f609f2e
|
@ -214,7 +214,7 @@ static int cpufreq_init(struct cpufreq_policy *policy)
|
|||
priv = kzalloc(sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv) {
|
||||
ret = -ENOMEM;
|
||||
goto out_put_node;
|
||||
goto out_free_opp;
|
||||
}
|
||||
|
||||
of_property_read_u32(np, "voltage-tolerance", &priv->voltage_tolerance);
|
||||
|
@ -294,7 +294,8 @@ out_free_cpufreq_table:
|
|||
dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table);
|
||||
out_free_priv:
|
||||
kfree(priv);
|
||||
out_put_node:
|
||||
out_free_opp:
|
||||
of_free_opp_table(cpu_dev);
|
||||
of_node_put(np);
|
||||
out_put_reg_clk:
|
||||
clk_put(cpu_clk);
|
||||
|
@ -311,6 +312,7 @@ static int cpufreq_exit(struct cpufreq_policy *policy)
|
|||
if (priv->cdev)
|
||||
cpufreq_cooling_unregister(priv->cdev);
|
||||
dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table);
|
||||
of_free_opp_table(priv->cpu_dev);
|
||||
clk_put(policy->clk);
|
||||
if (!IS_ERR(priv->cpu_reg))
|
||||
regulator_put(priv->cpu_reg);
|
||||
|
|
Загрузка…
Ссылка в новой задаче