* [PATCH v3] cpufreq: imx6q: add of_init_opp_table
@ 2013-12-20 6:56 John Tobias
2013-12-20 7:00 ` Shawn Guo
0 siblings, 1 reply; 2+ messages in thread
From: John Tobias @ 2013-12-20 6:56 UTC (permalink / raw)
To: linux-arm-kernel
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>
---
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..e125aed 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: %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);
--
1.8.3.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH v3] cpufreq: imx6q: add of_init_opp_table
2013-12-20 6:56 [PATCH v3] cpufreq: imx6q: add of_init_opp_table John Tobias
@ 2013-12-20 7:00 ` Shawn Guo
0 siblings, 0 replies; 2+ messages in thread
From: Shawn Guo @ 2013-12-20 7:00 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Dec 19, 2013 at 10:56:28PM -0800, John Tobias wrote:
> 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>
> ---
> 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..e125aed 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: %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);
> --
> 1.8.3.2
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-12-20 7:00 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-20 6:56 [PATCH v3] cpufreq: imx6q: add of_init_opp_table John Tobias
2013-12-20 7:00 ` Shawn Guo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox