aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/imx6q-cpufreq.c
diff options
context:
space:
mode:
authorJohn Tobias <john.tobias.ph@gmail.com>2013-12-20 01:56:28 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-01-06 07:33:45 -0500
commit20b7cbe2981013cbe449cc642cefc101e23d0f8e (patch)
treeb34b6c92db6c34a47f55e9a766651fdb8e227c1e /drivers/cpufreq/imx6q-cpufreq.c
parent1d0eaae9b55e1ff2cfa2217b73af2027e07ca480 (diff)
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>
Diffstat (limited to 'drivers/cpufreq/imx6q-cpufreq.c')
-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);