Browse Source

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
Lin Ming 13 years ago
parent
commit
fc54ab7295
1 changed files with 6 additions and 2 deletions
  1. 6 2
      drivers/acpi/bus.c

+ 6 - 2
drivers/acpi/bus.c

@@ -994,14 +994,18 @@ static int __init acpi_bus_init(void)
 	status = acpi_ec_ecdt_probe();
 	status = acpi_ec_ecdt_probe();
 	/* Ignore result. Not having an ECDT is not fatal. */
 	/* Ignore result. Not having an ECDT is not fatal. */
 
 
-	acpi_bus_osc_support();
-
 	status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION);
 	status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION);
 	if (ACPI_FAILURE(status)) {
 	if (ACPI_FAILURE(status)) {
 		printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n");
 		printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n");
 		goto error1;
 		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,
 	 * _PDC control method may load dynamic SSDT tables,
 	 * and we need to install the table handler before that.
 	 * and we need to install the table handler before that.