diff options
author | Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com> | 2007-02-10 01:32:16 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-02-10 01:32:16 -0500 |
commit | aafbcd165a2a02e6dff173f66772b3148229ace8 (patch) | |
tree | 57b808dad805d7708721e3c0ebddb718a14a3328 | |
parent | ed41dab90eb40ac4911e60406bc653661f0e4ce1 (diff) |
ACPI: invoke acpi_sleep_init() earlier
late_initcall() is too late for acpi_sleep_init().
Call it directly from acpi_init code.
http://bugzilla.kernel.org/show_bug.cgi?id=7887
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com>
Signed-off-by: Vladimir Lebedev <vladimir.p.lebedev@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r-- | drivers/acpi/bus.c | 13 | ||||
-rw-r--r-- | drivers/acpi/sleep/main.c | 3 | ||||
-rw-r--r-- | include/acpi/acpi_drivers.h | 10 |
3 files changed, 19 insertions, 7 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index c26468da4295..41cebe5bc807 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -147,7 +147,7 @@ int acpi_bus_get_power(acpi_handle handle, int *state) | |||
147 | *state = ACPI_STATE_D0; | 147 | *state = ACPI_STATE_D0; |
148 | } else { | 148 | } else { |
149 | /* | 149 | /* |
150 | * Get the device's power state either directly (via _PSC) or | 150 | * Get the device's power state either directly (via _PSC) or |
151 | * indirectly (via power resources). | 151 | * indirectly (via power resources). |
152 | */ | 152 | */ |
153 | if (device->power.flags.explicit_get) { | 153 | if (device->power.flags.explicit_get) { |
@@ -462,7 +462,7 @@ static void acpi_bus_notify(acpi_handle handle, u32 type, void *data) | |||
462 | "Received BUS CHECK notification for device [%s]\n", | 462 | "Received BUS CHECK notification for device [%s]\n", |
463 | device->pnp.bus_id)); | 463 | device->pnp.bus_id)); |
464 | result = acpi_bus_check_scope(device); | 464 | result = acpi_bus_check_scope(device); |
465 | /* | 465 | /* |
466 | * TBD: We'll need to outsource certain events to non-ACPI | 466 | * TBD: We'll need to outsource certain events to non-ACPI |
467 | * drivers via the device manager (device.c). | 467 | * drivers via the device manager (device.c). |
468 | */ | 468 | */ |
@@ -473,7 +473,7 @@ static void acpi_bus_notify(acpi_handle handle, u32 type, void *data) | |||
473 | "Received DEVICE CHECK notification for device [%s]\n", | 473 | "Received DEVICE CHECK notification for device [%s]\n", |
474 | device->pnp.bus_id)); | 474 | device->pnp.bus_id)); |
475 | result = acpi_bus_check_device(device, NULL); | 475 | result = acpi_bus_check_device(device, NULL); |
476 | /* | 476 | /* |
477 | * TBD: We'll need to outsource certain events to non-ACPI | 477 | * TBD: We'll need to outsource certain events to non-ACPI |
478 | * drivers via the device manager (device.c). | 478 | * drivers via the device manager (device.c). |
479 | */ | 479 | */ |
@@ -543,7 +543,7 @@ static int __init acpi_bus_init_irq(void) | |||
543 | char *message = NULL; | 543 | char *message = NULL; |
544 | 544 | ||
545 | 545 | ||
546 | /* | 546 | /* |
547 | * Let the system know what interrupt model we are using by | 547 | * Let the system know what interrupt model we are using by |
548 | * evaluating the \_PIC object, if exists. | 548 | * evaluating the \_PIC object, if exists. |
549 | */ | 549 | */ |
@@ -684,7 +684,7 @@ static int __init acpi_bus_init(void) | |||
684 | * the EC device is found in the namespace (i.e. before acpi_initialize_objects() | 684 | * the EC device is found in the namespace (i.e. before acpi_initialize_objects() |
685 | * is called). | 685 | * is called). |
686 | * | 686 | * |
687 | * This is accomplished by looking for the ECDT table, and getting | 687 | * This is accomplished by looking for the ECDT table, and getting |
688 | * the EC parameters out of that. | 688 | * the EC parameters out of that. |
689 | */ | 689 | */ |
690 | status = acpi_ec_ecdt_probe(); | 690 | status = acpi_ec_ecdt_probe(); |
@@ -699,6 +699,9 @@ static int __init acpi_bus_init(void) | |||
699 | 699 | ||
700 | printk(KERN_INFO PREFIX "Interpreter enabled\n"); | 700 | printk(KERN_INFO PREFIX "Interpreter enabled\n"); |
701 | 701 | ||
702 | /* Initialize sleep structures */ | ||
703 | acpi_sleep_init(); | ||
704 | |||
702 | /* | 705 | /* |
703 | * Get the system interrupt model and evaluate \_PIC. | 706 | * Get the system interrupt model and evaluate \_PIC. |
704 | */ | 707 | */ |
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index 62ce87d71651..37a0930fc0a6 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c | |||
@@ -200,7 +200,7 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = { | |||
200 | {}, | 200 | {}, |
201 | }; | 201 | }; |
202 | 202 | ||
203 | static int __init acpi_sleep_init(void) | 203 | int __init acpi_sleep_init(void) |
204 | { | 204 | { |
205 | int i = 0; | 205 | int i = 0; |
206 | 206 | ||
@@ -229,4 +229,3 @@ static int __init acpi_sleep_init(void) | |||
229 | return 0; | 229 | return 0; |
230 | } | 230 | } |
231 | 231 | ||
232 | late_initcall(acpi_sleep_init); | ||
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h index 4dc8a5043ef0..ce0e62fb28c1 100644 --- a/include/acpi/acpi_drivers.h +++ b/include/acpi/acpi_drivers.h | |||
@@ -128,4 +128,14 @@ extern void unregister_hotplug_dock_device(acpi_handle handle); | |||
128 | #define register_hotplug_dock_device(h1, h2, c) (-ENODEV) | 128 | #define register_hotplug_dock_device(h1, h2, c) (-ENODEV) |
129 | #define unregister_hotplug_dock_device(h) do { } while(0) | 129 | #define unregister_hotplug_dock_device(h) do { } while(0) |
130 | #endif | 130 | #endif |
131 | |||
132 | /*-------------------------------------------------------------------------- | ||
133 | Suspend/Resume | ||
134 | -------------------------------------------------------------------------- */ | ||
135 | #ifdef CONFIG_ACPI_SLEEP | ||
136 | extern int acpi_sleep_init(void); | ||
137 | #else | ||
138 | #define acpi_sleep_init() do {} while (0) | ||
139 | #endif | ||
140 | |||
131 | #endif /*__ACPI_DRIVERS_H__*/ | 141 | #endif /*__ACPI_DRIVERS_H__*/ |