diff options
author | Lin Ming <ming.m.lin@intel.com> | 2012-07-16 16:30:21 +0800 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2012-10-17 03:48:54 +0100 |
commit | e7d2d9799d2c4e6db4b63f84d363e033024dcc93 (patch) | |
tree | 188dd50becd21da2a61d35541c30a48bdcf80bc0 | |
parent | 78b9c6cd299fec4645f7f4c712708a749ec6ee67 (diff) |
ACPI: run _OSC after ACPI_FULL_INITIALIZATION
commit fc54ab72959edbf229b65ac74b2f122d799ca002 upstream.
The _OSC method may exist in module level code,
so it must be called after ACPI_FULL_INITIALIZATION
On some new platforms with Zero-Power-Optical-Disk-Drive (ZPODD)
support, this fix is necessary to save power.
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Tested-by: Aaron Lu <aaron.lu@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | drivers/acpi/bus.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 9ecec98bc76e..5016de5e91f6 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -950,8 +950,6 @@ static int __init acpi_bus_init(void) status = acpi_ec_ecdt_probe(); /* Ignore result. Not having an ECDT is not fatal. */ - acpi_bus_osc_support(); - status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION); if (ACPI_FAILURE(status)) { printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n"); @@ -959,6 +957,12 @@ static int __init acpi_bus_init(void) } /* + * _OSC method may exist in module level code, + * so it must be run after ACPI_FULL_INITIALIZATION + */ + acpi_bus_osc_support(); + + /* * _PDC control method may load dynamic SSDT tables, * and we need to install the table handler before that. */ |