[PATCH 3/4] cpufreq: imx6q: add of_init_opp_table

John Tobias john.tobias.ph at gmail.com
Wed Dec 18 18:50:55 EST 2013


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

Signed-off-by: John Tobias <john.tobias.ph at gmail.com>
---
 drivers/cpufreq/imx6q-cpufreq.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
index 4b3f18e..47dbf3c 100644
--- a/drivers/cpufreq/imx6q-cpufreq.c
+++ b/drivers/cpufreq/imx6q-cpufreq.c
@@ -151,6 +151,7 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
 {
 	struct device_node *np;
 	struct dev_pm_opp *opp;
+	struct device_opp *tmp_dev_opp;
 	unsigned long min_volt, max_volt;
 	int num, ret;
 
@@ -166,6 +167,17 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
 		return -ENOENT;
 	}
 
+	/* Get the OPP table, if the platform did not supply it. */
+	tmp_dev_opp = find_device_opp(cpu_dev);
+	if (IS_ERR(tmp_dev_opp)) {
+		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;
+		}
+	}
+
 	arm_clk = devm_clk_get(cpu_dev, "arm");
 	pll1_sys_clk = devm_clk_get(cpu_dev, "pll1_sys");
 	pll1_sw_clk = devm_clk_get(cpu_dev, "pll1_sw");
-- 
1.8.3.2




More information about the linux-arm-kernel mailing list