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>
This commit is contained in:
parent
ed41dab90e
commit
aafbcd165a
3 changed files with 19 additions and 7 deletions
|
@ -147,7 +147,7 @@ int acpi_bus_get_power(acpi_handle handle, int *state)
|
||||||
*state = ACPI_STATE_D0;
|
*state = ACPI_STATE_D0;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Get the device's power state either directly (via _PSC) or
|
* Get the device's power state either directly (via _PSC) or
|
||||||
* indirectly (via power resources).
|
* indirectly (via power resources).
|
||||||
*/
|
*/
|
||||||
if (device->power.flags.explicit_get) {
|
if (device->power.flags.explicit_get) {
|
||||||
|
@ -462,7 +462,7 @@ static void acpi_bus_notify(acpi_handle handle, u32 type, void *data)
|
||||||
"Received BUS CHECK notification for device [%s]\n",
|
"Received BUS CHECK notification for device [%s]\n",
|
||||||
device->pnp.bus_id));
|
device->pnp.bus_id));
|
||||||
result = acpi_bus_check_scope(device);
|
result = acpi_bus_check_scope(device);
|
||||||
/*
|
/*
|
||||||
* TBD: We'll need to outsource certain events to non-ACPI
|
* TBD: We'll need to outsource certain events to non-ACPI
|
||||||
* drivers via the device manager (device.c).
|
* drivers via the device manager (device.c).
|
||||||
*/
|
*/
|
||||||
|
@ -473,7 +473,7 @@ static void acpi_bus_notify(acpi_handle handle, u32 type, void *data)
|
||||||
"Received DEVICE CHECK notification for device [%s]\n",
|
"Received DEVICE CHECK notification for device [%s]\n",
|
||||||
device->pnp.bus_id));
|
device->pnp.bus_id));
|
||||||
result = acpi_bus_check_device(device, NULL);
|
result = acpi_bus_check_device(device, NULL);
|
||||||
/*
|
/*
|
||||||
* TBD: We'll need to outsource certain events to non-ACPI
|
* TBD: We'll need to outsource certain events to non-ACPI
|
||||||
* drivers via the device manager (device.c).
|
* drivers via the device manager (device.c).
|
||||||
*/
|
*/
|
||||||
|
@ -543,7 +543,7 @@ static int __init acpi_bus_init_irq(void)
|
||||||
char *message = NULL;
|
char *message = NULL;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Let the system know what interrupt model we are using by
|
* Let the system know what interrupt model we are using by
|
||||||
* evaluating the \_PIC object, if exists.
|
* evaluating the \_PIC object, if exists.
|
||||||
*/
|
*/
|
||||||
|
@ -684,7 +684,7 @@ static int __init acpi_bus_init(void)
|
||||||
* the EC device is found in the namespace (i.e. before acpi_initialize_objects()
|
* the EC device is found in the namespace (i.e. before acpi_initialize_objects()
|
||||||
* is called).
|
* is called).
|
||||||
*
|
*
|
||||||
* This is accomplished by looking for the ECDT table, and getting
|
* This is accomplished by looking for the ECDT table, and getting
|
||||||
* the EC parameters out of that.
|
* the EC parameters out of that.
|
||||||
*/
|
*/
|
||||||
status = acpi_ec_ecdt_probe();
|
status = acpi_ec_ecdt_probe();
|
||||||
|
@ -699,6 +699,9 @@ static int __init acpi_bus_init(void)
|
||||||
|
|
||||||
printk(KERN_INFO PREFIX "Interpreter enabled\n");
|
printk(KERN_INFO PREFIX "Interpreter enabled\n");
|
||||||
|
|
||||||
|
/* Initialize sleep structures */
|
||||||
|
acpi_sleep_init();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the system interrupt model and evaluate \_PIC.
|
* Get the system interrupt model and evaluate \_PIC.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -200,7 +200,7 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init acpi_sleep_init(void)
|
int __init acpi_sleep_init(void)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
|
@ -229,4 +229,3 @@ static int __init acpi_sleep_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
late_initcall(acpi_sleep_init);
|
|
||||||
|
|
|
@ -128,4 +128,14 @@ extern void unregister_hotplug_dock_device(acpi_handle handle);
|
||||||
#define register_hotplug_dock_device(h1, h2, c) (-ENODEV)
|
#define register_hotplug_dock_device(h1, h2, c) (-ENODEV)
|
||||||
#define unregister_hotplug_dock_device(h) do { } while(0)
|
#define unregister_hotplug_dock_device(h) do { } while(0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
Suspend/Resume
|
||||||
|
-------------------------------------------------------------------------- */
|
||||||
|
#ifdef CONFIG_ACPI_SLEEP
|
||||||
|
extern int acpi_sleep_init(void);
|
||||||
|
#else
|
||||||
|
#define acpi_sleep_init() do {} while (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /*__ACPI_DRIVERS_H__*/
|
#endif /*__ACPI_DRIVERS_H__*/
|
||||||
|
|
Reference in a new issue