Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

authored by

Lin Ming and committed by
Len Brown
fc54ab72 979570e0

+6 -2
+6 -2
drivers/acpi/bus.c
··· 994 994 status = acpi_ec_ecdt_probe(); 995 995 /* Ignore result. Not having an ECDT is not fatal. */ 996 996 997 - acpi_bus_osc_support(); 998 - 999 997 status = acpi_initialize_objects(ACPI_FULL_INITIALIZATION); 1000 998 if (ACPI_FAILURE(status)) { 1001 999 printk(KERN_ERR PREFIX "Unable to initialize ACPI objects\n"); 1002 1000 goto error1; 1003 1001 } 1002 + 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(); 1004 1008 1005 1009 /* 1006 1010 * _PDC control method may load dynamic SSDT tables,