Re: [linux-pm] [PATCH] acpi: intel_idle : break dependency between modules

From: Thomas Renninger
Date: Thu Jun 28 2012 - 03:34:50 EST


On Wednesday, June 27, 2012 06:16:33 PM Srivatsa S. Bhat wrote:
> On 06/27/2012 02:37 PM, Daniel Lezcano wrote:
> > When the system is booted with some cpus offline, the idle
> > driver is not initialized. When a cpu is set online, the
> > acpi code call the intel idle init function. Unfortunately
> > this code introduce a dependency between intel_idle and acpi.
> >
> > This patch is intended to remove this dependency by using the
> > notifier of intel_idle. In order to make it work, the notifier
> > must be initialized in the right order, acpi then intel_idle.
> > This is done in the Makefile.
>
> There is a much better way of doing this. See below.
>
> > This patch has the benefit of
> > encapsulating the intel_idle driver and remove some exported
> > functions.
> >
>
> Nice :)
>
> > Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> > ---
> > drivers/Makefile | 3 ++-
> > drivers/acpi/processor_driver.c | 7 -------
> > drivers/idle/intel_idle.c | 22 ++++++++++++++--------
> > include/linux/cpuidle.h | 7 -------
> > 4 files changed, 16 insertions(+), 23 deletions(-)
> >
> > diff --git a/drivers/Makefile b/drivers/Makefile
> > index 2ba29ff..a2454b8 100644
> > --- a/drivers/Makefile
> > +++ b/drivers/Makefile
> > @@ -12,8 +12,9 @@ obj-$(CONFIG_PCI) += pci/
> > obj-$(CONFIG_PARISC) += parisc/
> > obj-$(CONFIG_RAPIDIO) += rapidio/
> > obj-y += video/
> > -obj-y += idle/
> > +# acpi must come before idle for initialization
> > obj-$(CONFIG_ACPI) += acpi/
> > +obj-y += idle/
> > obj-$(CONFIG_SFI) += sfi/
> > # PnP must come after ACPI since it will eventually need to check if acpi
> > # was used and do nothing if so
>
> OK, so all you are trying to do here is ensure that the intel idle related
> notifier runs _after_ the acpi related one.
I might oversee something, if you have concerns, please point me to it.
If it's all about keeping the order of excuting these functions:
acpi_processor_start(pr)
and
intel_idle_cpu_init()
There should be no need for it. Intel idle is pretty separated.

Thomas
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/