]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ACPI: run _OSC after ACPI_FULL_INITIALIZATION
authorLin Ming <ming.m.lin@intel.com>
Mon, 16 Jul 2012 08:30:21 +0000 (16:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Oct 2012 20:46:54 +0000 (05:46 +0900)
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/bus.c

index 92107ee8ddfcdbcf0fd46527fd27fbf4a674b30a..54a57324c9b91a890b86325289d048b7a224ce84 100644 (file)
@@ -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.