aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/cpufreq/imx6q-cpufreq.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
index c29198fbc9b7..564a26523ebc 100644
--- a/drivers/cpufreq/imx6q-cpufreq.c
+++ b/drivers/cpufreq/imx6q-cpufreq.c
@@ -195,12 +195,25 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
195 goto put_node; 195 goto put_node;
196 } 196 }
197 197
198 /* We expect an OPP table supplied by platform */ 198 /*
199 * We expect an OPP table supplied by platform.
200 * Just, incase the platform did not supply the OPP
201 * table, it will try to get it.
202 */
199 num = dev_pm_opp_get_opp_count(cpu_dev); 203 num = dev_pm_opp_get_opp_count(cpu_dev);
200 if (num < 0) { 204 if (num < 0) {
201 ret = num; 205 ret = of_init_opp_table(cpu_dev);
202 dev_err(cpu_dev, "no OPP table is found: %d\n", ret); 206 if (ret < 0) {
203 goto put_node; 207 dev_err(cpu_dev, "failed to init OPP table: %d\n", ret);
208 goto put_node;
209 }
210
211 num = dev_pm_opp_get_opp_count(cpu_dev);
212 if (num < 0) {
213 ret = num;
214 dev_err(cpu_dev, "no OPP table is found: %d\n", ret);
215 goto put_node;
216 }
204 } 217 }
205 218
206 ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table); 219 ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table);