Commit 201b8c65 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Len Brown
Browse files

ACPI: call acpi_wakeup_device_init() explicitly rather than as initcall



This patch makes acpi_init() call acpi_wakeup_device_init() directly.
Previously, acpi_wakeup_device_init() was a late_initcall (sequence 7).

acpi_wakeup_device_init() depends on acpi_wakeup_device_list, which
is populated when ACPI devices are enumerated by acpi_init() ->
acpi_scan_init().  Using late_initcall is certainly enough to make
sure acpi_wakeup_device_list is populated, but it is more than
necessary.  We can just as easily call acpi_wakeup_device_init()
directly from acpi_init(), which avoids the initcall magic.
Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
CC: Li Shaohua <shaohua.li@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 9cee43e0
...@@ -886,6 +886,7 @@ static int __init acpi_init(void) ...@@ -886,6 +886,7 @@ static int __init acpi_init(void)
acpi_system_init(); acpi_system_init();
acpi_debug_init(); acpi_debug_init();
acpi_sleep_proc_init(); acpi_sleep_proc_init();
acpi_wakeup_device_init();
return result; return result;
} }
......
...@@ -22,6 +22,8 @@ int acpi_power_get_inferred_state(struct acpi_device *device); ...@@ -22,6 +22,8 @@ int acpi_power_get_inferred_state(struct acpi_device *device);
int acpi_power_transition(struct acpi_device *device, int state); int acpi_power_transition(struct acpi_device *device, int state);
extern int acpi_power_nocheck; extern int acpi_power_nocheck;
int acpi_wakeup_device_init(void);
/* -------------------------------------------------------------------------- /* --------------------------------------------------------------------------
Embedded Controller Embedded Controller
-------------------------------------------------------------------------- */ -------------------------------------------------------------------------- */
......
...@@ -138,13 +138,10 @@ void acpi_disable_wakeup_device(u8 sleep_state) ...@@ -138,13 +138,10 @@ void acpi_disable_wakeup_device(u8 sleep_state)
spin_unlock(&acpi_device_lock); spin_unlock(&acpi_device_lock);
} }
static int __init acpi_wakeup_device_init(void) int __init acpi_wakeup_device_init(void)
{ {
struct list_head *node, *next; struct list_head *node, *next;
if (acpi_disabled)
return 0;
spin_lock(&acpi_device_lock); spin_lock(&acpi_device_lock);
list_for_each_safe(node, next, &acpi_wakeup_device_list) { list_for_each_safe(node, next, &acpi_wakeup_device_list) {
struct acpi_device *dev = container_of(node, struct acpi_device *dev = container_of(node,
...@@ -165,5 +162,3 @@ static int __init acpi_wakeup_device_init(void) ...@@ -165,5 +162,3 @@ static int __init acpi_wakeup_device_init(void)
spin_unlock(&acpi_device_lock); spin_unlock(&acpi_device_lock);
return 0; return 0;
} }
late_initcall(acpi_wakeup_device_init);
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment