summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Tobias <john.tobias.ph@gmail.com>2013-12-19 22:56:28 -0800
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-01-06 13:33:45 +0100
commit20b7cbe2981013cbe449cc642cefc101e23d0f8e (patch)
treeb34b6c92db6c34a47f55e9a766651fdb8e227c1e
parent1d0eaae9b55e1ff2cfa2217b73af2027e07ca480 (diff)
downloadlinux-20b7cbe2981013cbe449cc642cefc101e23d0f8e.tar.gz
linux-20b7cbe2981013cbe449cc642cefc101e23d0f8e.tar.bz2
linux-20b7cbe2981013cbe449cc642cefc101e23d0f8e.zip
cpufreq: imx6q: add of_init_opp_table
Add a routine check to see if the platform supplied the OPP table. Incase there's no OPP table exist, it will try to initialise it. It's been tested on iMX6SL board where the platform doesn't have an OPP table. Signed-off-by: John Tobias <john.tobias.ph@gmail.com> Acked-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-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)
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: %d\n", ret);
+ 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);