|
@@ -289,6 +289,8 @@ static void _put_cluster_clk_and_freq_table(struct device *cpu_dev)
|
|
|
|
|
|
clk_put(clk[cluster]);
|
|
|
dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table[cluster]);
|
|
|
+ if (arm_bL_ops->free_opp_table)
|
|
|
+ arm_bL_ops->free_opp_table(cpu_dev);
|
|
|
dev_dbg(cpu_dev, "%s: cluster: %d\n", __func__, cluster);
|
|
|
}
|
|
|
|
|
@@ -337,7 +339,7 @@ static int _get_cluster_clk_and_freq_table(struct device *cpu_dev)
|
|
|
if (ret) {
|
|
|
dev_err(cpu_dev, "%s: failed to init cpufreq table, cpu: %d, err: %d\n",
|
|
|
__func__, cpu_dev->id, ret);
|
|
|
- goto out;
|
|
|
+ goto free_opp_table;
|
|
|
}
|
|
|
|
|
|
name[12] = cluster + '0';
|
|
@@ -354,6 +356,9 @@ static int _get_cluster_clk_and_freq_table(struct device *cpu_dev)
|
|
|
ret = PTR_ERR(clk[cluster]);
|
|
|
dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table[cluster]);
|
|
|
|
|
|
+free_opp_table:
|
|
|
+ if (arm_bL_ops->free_opp_table)
|
|
|
+ arm_bL_ops->free_opp_table(cpu_dev);
|
|
|
out:
|
|
|
dev_err(cpu_dev, "%s: Failed to get data for cluster: %d\n", __func__,
|
|
|
cluster);
|