Message ID | 1410422657-30726-1-git-send-email-b51503@freescale.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Eduardo Valentin |
Headers | show |
Hello Bai, On Thu, Sep 11, 2014 at 04:04:17PM +0800, Bai Ping wrote: > Thermal driver should be registered after cpufreq driver have > been registered and probed. Doing so is to make sure that thermal > driver can get the max cpu cooling states correctly when calling > get_property. > OK. > Signed-off-by: Bai Ping <b51503@freescale.com> > --- > drivers/thermal/imx_thermal.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c > index 45af765..d00aaaf 100644 > --- a/drivers/thermal/imx_thermal.c > +++ b/drivers/thermal/imx_thermal.c > @@ -1,5 +1,5 @@ > /* > - * Copyright 2013 Freescale Semiconductor, Inc. > + * Copyright 2013-2014 Freescale Semiconductor, Inc. > * The above does not seam to be part of this patch. > * This program is free software; you can redistribute it and/or modify > * it under the terms of the GNU General Public License version 2 as > @@ -557,7 +557,14 @@ static struct platform_driver imx_thermal = { > .probe = imx_thermal_probe, > .remove = imx_thermal_remove, > }; > -module_platform_driver(imx_thermal); > + > +static int __init imx_thermal_init(void) > +{ > + return platform_driver_register(&imx_thermal); > +} > + > +late_initcall(imx_thermal_init); > + Have you considered checking if the cpufreq driver is loaded in your probe? In case it is not loaded, you may return EPROBE_DEFER. The problem that I have with the approach above is that it does not have effect if you are building this driver as a module. Besides, in some platforms, cpufreq also gets initialized in late phase, when most PM layers are loaded. Are you sure the cpufreq in your case gets always loaded before late init calls? > MODULE_AUTHOR("Freescale Semiconductor, Inc."); > MODULE_DESCRIPTION("Thermal driver for Freescale i.MX SoCs"); > -- > 1.9.1 > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c index 45af765..d00aaaf 100644 --- a/drivers/thermal/imx_thermal.c +++ b/drivers/thermal/imx_thermal.c @@ -1,5 +1,5 @@ /* - * Copyright 2013 Freescale Semiconductor, Inc. + * Copyright 2013-2014 Freescale Semiconductor, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -557,7 +557,14 @@ static struct platform_driver imx_thermal = { .probe = imx_thermal_probe, .remove = imx_thermal_remove, }; -module_platform_driver(imx_thermal); + +static int __init imx_thermal_init(void) +{ + return platform_driver_register(&imx_thermal); +} + +late_initcall(imx_thermal_init); + MODULE_AUTHOR("Freescale Semiconductor, Inc."); MODULE_DESCRIPTION("Thermal driver for Freescale i.MX SoCs"); -- 1.9.1
Thermal driver should be registered after cpufreq driver have been registered and probed. Doing so is to make sure that thermal driver can get the max cpu cooling states correctly when calling get_property. Signed-off-by: Bai Ping <b51503@freescale.com> --- drivers/thermal/imx_thermal.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html