aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
authorLin Ming <ming.m.lin@intel.com>2012-07-16 16:30:21 +0800
committerBen Hutchings <ben@decadent.org.uk>2012-10-17 03:48:54 +0100
commite7d2d9799d2c4e6db4b63f84d363e033024dcc93 (patch)
tree188dd50becd21da2a61d35541c30a48bdcf80bc0 /drivers/acpi
parent78b9c6cd299fec4645f7f4c712708a749ec6ee67 (diff)
downloadkernel_samsung_smdk4412-e7d2d9799d2c4e6db4b63f84d363e033024dcc93.zip
kernel_samsung_smdk4412-e7d2d9799d2c4e6db4b63f84d363e033024dcc93.tar.gz
kernel_samsung_smdk4412-e7d2d9799d2c4e6db4b63f84d363e033024dcc93.tar.bz2
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>
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/bus.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 9ecec98..5016de5 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.
*/