All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
To: Len Brown <lenb@kernel.org>
Cc: linux-acpi@vger.kernel.org, Li Shaohua <shaohua.li@intel.com>,
	Alexey Starikovskiy <astarikovskiy@suse.de>Li Shaohua
	<shaohua.li@intel.com>, Zhao Yakui <yakui.zhao@intel.com>
Subject: [PATCH 07/10] ACPI: call init_acpi_device_notify() explicitly rather than as initcall
Date: Tue, 24 Mar 2009 16:50:09 -0600	[thread overview]
Message-ID: <20090324225009.1262.3104.stgit@bob.kio> (raw)
In-Reply-To: <20090324224834.1262.65260.stgit@bob.kio>

This patch makes acpi_init() call init_acpi_device_notify() directly.
Previously, init_acpi_device_notify() was an arch_initcall (sequence 3),
so it was called before acpi_init() (a subsys_initcall at sequence 4).

init_acpi_device_notify() sets the platform_notify and
platform_notify_remove function pointers.  These pointers
are not used until acpi_init() enumerates ACPI devices in
this path:

    acpi_init()
	    acpi_scan_init()
		acpi_bus_scan()
		    acpi_add_single_object()
			acpi_device_register()
			    device_add()
				<use platform_notify>

So it is sufficient to have acpi_init() call init_acpi_device_notify()
directly before it enumerates devices.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
---
 drivers/acpi/bus.c      |    1 +
 drivers/acpi/glue.c     |    6 +-----
 drivers/acpi/internal.h |    1 +
 3 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index f32cfd6..db9eca8 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -855,6 +855,7 @@ static int __init acpi_init(void)
 		acpi_kobj = NULL;
 	}
 
+	init_acpi_device_notify();
 	result = acpi_bus_init();
 
 	if (!result) {
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index 5479b9f..8bd2c2a 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -286,10 +286,8 @@ static int acpi_platform_notify_remove(struct device *dev)
 	return 0;
 }
 
-static int __init init_acpi_device_notify(void)
+int __init init_acpi_device_notify(void)
 {
-	if (acpi_disabled)
-		return 0;
 	if (platform_notify || platform_notify_remove) {
 		printk(KERN_ERR PREFIX "Can't use platform_notify\n");
 		return 0;
@@ -298,5 +296,3 @@ static int __init init_acpi_device_notify(void)
 	platform_notify_remove = acpi_platform_notify_remove;
 	return 0;
 }
-
-arch_initcall(init_acpi_device_notify);
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 44b8402..8a45dd8 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -1,5 +1,6 @@
 /* For use by Linux/ACPI infrastructure, not drivers */
 
+int init_acpi_device_notify(void);
 int acpi_scan_init(void);
 int acpi_system_init(void);
 


  parent reply	other threads:[~2009-03-24 22:50 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-24 22:49 [PATCH 00/10] ACPI: remove several initcalls Bjorn Helgaas
2009-03-24 22:49 ` [PATCH 01/10] ACPI: skip DMI power state check when ACPI disabled Bjorn Helgaas
2009-03-24 22:49 ` [PATCH 02/10] ACPI: call acpi_scan_init() explicitly rather than as initcall Bjorn Helgaas
2009-03-24 22:49 ` [PATCH 03/10] ACPI: call acpi_ec_init() " Bjorn Helgaas
2009-03-24 22:49 ` [PATCH 04/10] ACPI: call acpi_power_init() " Bjorn Helgaas
2009-03-24 22:49 ` [PATCH 05/10] ACPI: call acpi_system_init() " Bjorn Helgaas
2009-03-24 22:50 ` [PATCH 06/10] ACPI: call acpi_debug_init() " Bjorn Helgaas
2009-03-24 23:08   ` Yinghai Lu
2009-03-24 23:15     ` Bjorn Helgaas
2009-03-24 23:20       ` Yinghai Lu
2009-03-25 14:53         ` Bjorn Helgaas
2009-03-25 19:29           ` Yinghai Lu
2009-03-25 22:47             ` Bjorn Helgaas
2009-03-24 22:50 ` Bjorn Helgaas [this message]
2009-03-24 22:50 ` [PATCH 08/10] ACPI: call acpi_sleep_proc_init() " Bjorn Helgaas
2009-03-24 22:50 ` [PATCH 09/10] ACPI: call acpi_wakeup_device_init() " Bjorn Helgaas
2009-03-24 22:50 ` [PATCH 10/10] ACPI: tidy up makefile Bjorn Helgaas
2009-03-27 16:57 ` [PATCH 00/10] ACPI: remove several initcalls Len Brown

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=20090324225009.1262.3104.stgit@bob.kio \
    --to=bjorn.helgaas@hp.com \
    --cc=astarikovskiy@suse.de \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=shaohua.li@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.