Add a routine check to see if the platform supplied the OPP table.
Incase there's not OPP table exist, it will try to get it.

Signed-off-by: John Tobias <john.tobias...@gmail.com>
---
 drivers/cpufreq/imx6q-cpufreq.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
index 4b3f18e..f261a88 100644
--- a/drivers/cpufreq/imx6q-cpufreq.c
+++ b/drivers/cpufreq/imx6q-cpufreq.c
@@ -187,12 +187,25 @@ static int imx6q_cpufreq_probe(struct platform_device 
*pdev)
                goto put_node;
        }
 
-       /* We expect an OPP table supplied by platform */
+       /* We expect an OPP table supplied by platform.
+        * Just, incase the platform did not supply the OPP
+        * table, it will try to get it.
+        */
        num = dev_pm_opp_get_opp_count(cpu_dev);
        if (num < 0) {
-               ret = num;
-               dev_err(cpu_dev, "no OPP table is found: %d\n", ret);
-               goto put_node;
+               ret = of_init_opp_table(cpu_dev);
+               if (ret < 0) {
+                       dev_err(cpu_dev, "failed to init OPP table\n");
+                       ret = -ENODEV;
+                       goto put_node;
+               }
+
+               num = dev_pm_opp_get_opp_count(cpu_dev);
+               if (num < 0) {
+                       ret = num;
+                       dev_err(cpu_dev, "no OPP table is found: %d\n", ret);
+                       goto put_node;
+               }
        }
 
        ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table);
-- 
1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to