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

ACPI: suspend: don't let device _PS3 failure prevent suspend

6328a57401dc5f5cf9931738eb7268fcd8058c49
"Enable PNPACPI _PSx Support, v3"

added a call to acpi_bus_set_power(handle, ACPI_STATE_D3)
to pnpacpi_disable_resource() before the existing call
to evaluate _DIS on the device.

This caused suspend to fail on the system in
http://bugzilla.kernel.org/show_bug.cgi?id=13243
because the sanity check to verify we entered _PS3
failed on the serial port.

As a work-around, that sanity check can be disabled
system-wide with "acpi.power_nocheck=1"

Or perhaps we should just shrug off the _PS3 failure
and carry on with _DIS like we used to -- which is
what this patch does.

Signed-off-by: Len Brown <len.brown@intel.com>

Len Brown 19bde778 ddc50b6a

+3 -5
+3 -5
drivers/pnp/pnpacpi/core.c
··· 110 110 111 111 /* acpi_unregister_gsi(pnp_irq(dev, 0)); */ 112 112 ret = 0; 113 - if (acpi_bus_power_manageable(handle)) { 114 - ret = acpi_bus_set_power(handle, ACPI_STATE_D3); 115 - if (ret) 116 - return ret; 117 - } 113 + if (acpi_bus_power_manageable(handle)) 114 + acpi_bus_set_power(handle, ACPI_STATE_D3); 115 + /* continue even if acpi_bus_set_power() fails */ 118 116 if (ACPI_FAILURE(acpi_evaluate_object(handle, "_DIS", NULL, NULL))) 119 117 ret = -ENODEV; 120 118 return ret;