From: Tony Lindgren <tony@atomide.com>
To: Kevin Hilman <khilman@linaro.org>
Cc: Andrii Tseglytskyi <andrii.tseglytskyi@ti.com>,
j-keerthy@ti.com, linux-kernel@vger.kernel.org,
linux-omap@vger.kernel.org, linux-pm@vger.kernel.org
Subject: Re: [PATCH v2 2/2] PM / AVS: SmartReflex/class3: Fix order of initialization of SR class and SR driver
Date: Wed, 12 Jun 2013 06:32:31 -0700 [thread overview]
Message-ID: <20130612133231.GQ8164@atomide.com> (raw)
In-Reply-To: <87fvwpdfab.fsf@linaro.org>
* Kevin Hilman <khilman@linaro.org> [130610 10:58]:
> Andrii Tseglytskyi <andrii.tseglytskyi@ti.com> writes:
>
> > SmartReflex consists of three entities: SR device, SR class and
> > SR driver. SmartReflex driver depends on SmartReflex class, but
> > order of their initialization is not clear. They both use
> > late_initcall(), and order depends on Makefile calls.
> > Patch moves initialization of SR class to device_initcall(),
> > and removes redundant call of sr_late_init().
> >
> > This provides predictable order of SmartReflex initcalls:
> > 1. device_initcall() -> SmartReflex class init
> > 2. late_initcall() -> SmartReflex driver init
> >
> > Signed-off-by: Andrii Tseglytskyi <andrii.tseglytskyi@ti.com>
>
> Tony will have to decide on whether he's OK with the initcall changes.
>
> I can queue this with the rest of the AVS changes with Tony's ack.
I'd rather not make anything earlier, relying on the Makefile is just
fine here. These pieces are always compiled in too. The reason why
we should only minimal things initialized earlier than module_init
is that this way we have a proper console initialized and see real
error messages without having to have DEBUG_LL + earlyprintk enabled.
If anything else is needed, you have have just one late_initcall
that checks the return values of the various SR related init functions
to make sure all the dependencies are met.
Regards,
Tony
> > arch/arm/mach-omap2/smartreflex-class3.c | 2 +-
> > drivers/power/avs/smartreflex.c | 9 ---------
> > 2 files changed, 1 insertion(+), 10 deletions(-)
> >
> > diff --git a/arch/arm/mach-omap2/smartreflex-class3.c b/arch/arm/mach-omap2/smartreflex-class3.c
> > index aee3c89..50523b8 100644
> > --- a/arch/arm/mach-omap2/smartreflex-class3.c
> > +++ b/arch/arm/mach-omap2/smartreflex-class3.c
> > @@ -59,4 +59,4 @@ static int __init sr_class3_init(void)
> > pr_info("SmartReflex Class3 initialized\n");
> > return sr_register_class(&class3_data);
> > }
> > -omap_late_initcall(sr_class3_init);
> > +omap_device_initcall(sr_class3_init);
> > diff --git a/drivers/power/avs/smartreflex.c b/drivers/power/avs/smartreflex.c
> > index fd71d5a..42eed34 100644
> > --- a/drivers/power/avs/smartreflex.c
> > +++ b/drivers/power/avs/smartreflex.c
> > @@ -650,8 +650,6 @@ void sr_disable(struct voltagedomain *voltdm)
> > */
> > int sr_register_class(struct omap_sr_class_data *class_data)
> > {
> > - struct omap_sr *sr_info;
> > -
> > if (!class_data) {
> > pr_warning("%s:, Smartreflex class data passed is NULL\n",
> > __func__);
> > @@ -666,13 +664,6 @@ int sr_register_class(struct omap_sr_class_data *class_data)
> >
> > sr_class = class_data;
> >
> > - /*
> > - * Call into late init to do intializations that require
> > - * both sr driver and sr class driver to be initiallized.
> > - */
> > - list_for_each_entry(sr_info, &sr_list, node)
> > - sr_late_init(sr_info);
> > -
> > return 0;
> > }
next prev parent reply other threads:[~2013-06-12 13:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-04 9:58 [PATCH v2 0/2] PM / AVS: SmartReflex: optimization series Andrii Tseglytskyi
2013-06-04 9:58 ` [PATCH v2 1/2] PM / AVS: SmartReflex: use devm_* API to initialize SmartReflex Andrii Tseglytskyi
2013-06-10 17:51 ` Kevin Hilman
2013-06-04 9:58 ` [PATCH v2 2/2] PM / AVS: SmartReflex/class3: Fix order of initialization of SR class and SR driver Andrii Tseglytskyi
2013-06-10 17:52 ` Kevin Hilman
2013-06-12 13:32 ` Tony Lindgren [this message]
2013-06-12 15:33 ` Andrii Tseglytskyi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130612133231.GQ8164@atomide.com \
--to=tony@atomide.com \
--cc=andrii.tseglytskyi@ti.com \
--cc=j-keerthy@ti.com \
--cc=khilman@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).