diff options
author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2009-03-24 18:50:19 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-03-27 12:51:31 -0400 |
commit | 201b8c655f7a48563f6a0b66f9e388460a1ea611 (patch) | |
tree | 262341b6fd76e17ddce25c9ea87f081104aca6a8 /drivers | |
parent | 9cee43e07940bee13462e63bd75ce4430b155886 (diff) |
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: Bjorn Helgaas <bjorn.helgaas@hp.com>
CC: Li Shaohua <shaohua.li@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/bus.c | 1 | ||||
-rw-r--r-- | drivers/acpi/internal.h | 2 | ||||
-rw-r--r-- | drivers/acpi/wakeup.c | 7 |
3 files changed, 4 insertions, 6 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index a812e841cb64..7fe0945f7bcf 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -886,6 +886,7 @@ static int __init acpi_init(void) | |||
886 | acpi_system_init(); | 886 | acpi_system_init(); |
887 | acpi_debug_init(); | 887 | acpi_debug_init(); |
888 | acpi_sleep_proc_init(); | 888 | acpi_sleep_proc_init(); |
889 | acpi_wakeup_device_init(); | ||
889 | return result; | 890 | return result; |
890 | } | 891 | } |
891 | 892 | ||
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h index 8870e5fd8494..11a69b53004e 100644 --- a/drivers/acpi/internal.h +++ b/drivers/acpi/internal.h | |||
@@ -22,6 +22,8 @@ int acpi_power_get_inferred_state(struct acpi_device *device); | |||
22 | int acpi_power_transition(struct acpi_device *device, int state); | 22 | int acpi_power_transition(struct acpi_device *device, int state); |
23 | extern int acpi_power_nocheck; | 23 | extern int acpi_power_nocheck; |
24 | 24 | ||
25 | int acpi_wakeup_device_init(void); | ||
26 | |||
25 | /* -------------------------------------------------------------------------- | 27 | /* -------------------------------------------------------------------------- |
26 | Embedded Controller | 28 | Embedded Controller |
27 | -------------------------------------------------------------------------- */ | 29 | -------------------------------------------------------------------------- */ |
diff --git a/drivers/acpi/wakeup.c b/drivers/acpi/wakeup.c index 3f29fd53e9a6..5aee8c26cc9f 100644 --- a/drivers/acpi/wakeup.c +++ b/drivers/acpi/wakeup.c | |||
@@ -138,13 +138,10 @@ void acpi_disable_wakeup_device(u8 sleep_state) | |||
138 | spin_unlock(&acpi_device_lock); | 138 | spin_unlock(&acpi_device_lock); |
139 | } | 139 | } |
140 | 140 | ||
141 | static int __init acpi_wakeup_device_init(void) | 141 | int __init acpi_wakeup_device_init(void) |
142 | { | 142 | { |
143 | struct list_head *node, *next; | 143 | struct list_head *node, *next; |
144 | 144 | ||
145 | if (acpi_disabled) | ||
146 | return 0; | ||
147 | |||
148 | spin_lock(&acpi_device_lock); | 145 | spin_lock(&acpi_device_lock); |
149 | list_for_each_safe(node, next, &acpi_wakeup_device_list) { | 146 | list_for_each_safe(node, next, &acpi_wakeup_device_list) { |
150 | struct acpi_device *dev = container_of(node, | 147 | struct acpi_device *dev = container_of(node, |
@@ -165,5 +162,3 @@ static int __init acpi_wakeup_device_init(void) | |||
165 | spin_unlock(&acpi_device_lock); | 162 | spin_unlock(&acpi_device_lock); |
166 | return 0; | 163 | return 0; |
167 | } | 164 | } |
168 | |||
169 | late_initcall(acpi_wakeup_device_init); | ||