Message ID | 1387512929-7304-1-git-send-email-john.tobias.ph@gmail.com |
---|---|
State | New |
Headers | show |
On Thu, Dec 19, 2013 at 08:15:28PM -0800, John Tobias wrote: > Re-use imx6q cpufreq driver to support cpu > frequency scaling on imx6sl. > > Signed-off-by: John Tobias <john.tobias.ph@gmail.com> This one is already applied, so you do not have to resend. Shawn > --- > arch/arm/mach-imx/mach-imx6sl.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/arm/mach-imx/mach-imx6sl.c b/arch/arm/mach-imx/mach-imx6sl.c > index 2f952e3..3072e15 100644 > --- a/arch/arm/mach-imx/mach-imx6sl.c > +++ b/arch/arm/mach-imx/mach-imx6sl.c > @@ -34,6 +34,13 @@ static void __init imx6sl_fec_init(void) > } > } > > +static void __init imx6sl_init_late(void) > +{ > + /* imx6sl reuses imx6q cpufreq driver */ > + if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) > + platform_device_register_simple("imx6q-cpufreq", -1, NULL, 0); > +} > + > static void __init imx6sl_init_machine(void) > { > struct device *parent; > @@ -70,6 +77,7 @@ DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)") > .map_io = debug_ll_io_init, > .init_irq = imx6sl_init_irq, > .init_machine = imx6sl_init_machine, > + .init_late = imx6sl_init_late, > .dt_compat = imx6sl_dt_compat, > .restart = mxc_restart, > MACHINE_END > -- > 1.8.3.2 >
On Thu, Dec 19, 2013 at 08:15:29PM -0800, John Tobias wrote: > 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.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..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. > + */ /* * Multi-lines comment */ > 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"); It should be good to print the error code, i.e. 'ret', here. > + ret = -ENODEV; There is no need to make up an error code, and just return what you get from of_init_opp_table(). Shawn > + 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 >
diff --git a/arch/arm/mach-imx/mach-imx6sl.c b/arch/arm/mach-imx/mach-imx6sl.c index 2f952e3..3072e15 100644 --- a/arch/arm/mach-imx/mach-imx6sl.c +++ b/arch/arm/mach-imx/mach-imx6sl.c @@ -34,6 +34,13 @@ static void __init imx6sl_fec_init(void) } } +static void __init imx6sl_init_late(void) +{ + /* imx6sl reuses imx6q cpufreq driver */ + if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ)) + platform_device_register_simple("imx6q-cpufreq", -1, NULL, 0); +} + static void __init imx6sl_init_machine(void) { struct device *parent; @@ -70,6 +77,7 @@ DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)") .map_io = debug_ll_io_init, .init_irq = imx6sl_init_irq, .init_machine = imx6sl_init_machine, + .init_late = imx6sl_init_late, .dt_compat = imx6sl_dt_compat, .restart = mxc_restart, MACHINE_END
Re-use imx6q cpufreq driver to support cpu frequency scaling on imx6sl. Signed-off-by: John Tobias <john.tobias.ph@gmail.com> --- arch/arm/mach-imx/mach-imx6sl.c | 8 ++++++++ 1 file changed, 8 insertions(+)