From: Lin Ming Date: Mon, 16 Jul 2012 08:30:21 +0000 (+0800) Subject: ACPI: run _OSC after ACPI_FULL_INITIALIZATION X-Git-Tag: v3.5.7~123 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ff49aaa42ebd6ac6abfb1e08f6c40f9f3bb5f06f;p=karo-tx-linux.git 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 Tested-by: Aaron Lu Signed-off-by: Len Brown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 92107ee8ddfc..54a57324c9b9 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -990,14 +990,18 @@ 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"); goto error1; } + /* + * _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.