diff options
author | Lin Ming <ming.m.lin@intel.com> | 2012-07-16 04:30:21 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2012-09-25 00:15:07 -0400 |
commit | fc54ab72959edbf229b65ac74b2f122d799ca002 (patch) | |
tree | 12dae52a7122e661bb3f950f0abeef8b32d6925a /drivers/acpi | |
parent | 979570e02981d4a8fc20b3cc8fd651856c98ee9d (diff) |
ACPI: run _OSC after ACPI_FULL_INITIALIZATION
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>
Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/acpi')
-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 e0596954290..d59175efc42 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -994,8 +994,6 @@ static int __init acpi_bus_init(void) | |||
994 | status = acpi_ec_ecdt_probe(); | 994 | status = acpi_ec_ecdt_probe(); |
995 | /* Ignore result. Not having an ECDT is not fatal. */ | 995 | /* Ignore result. Not having an ECDT is not fatal. */ |
996 | 996 | ||
997 | acpi_bus_osc_support(); | ||
998 | |||
999 | status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION); | 997 | status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION); |
1000 | if (ACPI_FAILURE(status)) { | 998 | if (ACPI_FAILURE(status)) { |
1001 | printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n"); | 999 | printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n"); |
@@ -1003,6 +1001,12 @@ static int __init acpi_bus_init(void) | |||
1003 | } | 1001 | } |
1004 | 1002 | ||
1005 | /* | 1003 | /* |
1004 | * _OSC method may exist in module level code, | ||
1005 | * so it must be run after ACPI_FULL_INITIALIZATION | ||
1006 | */ | ||
1007 | acpi_bus_osc_support(); | ||
1008 | |||
1009 | /* | ||
1006 | * _PDC control method may load dynamic SSDT tables, | 1010 | * _PDC control method may load dynamic SSDT tables, |
1007 | * and we need to install the table handler before that. | 1011 | * and we need to install the table handler before that. |
1008 | */ | 1012 | */ |