]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ACPI: suspend: don't let device _PS3 failure prevent suspend
authorLen Brown <len.brown@intel.com>
Fri, 8 May 2009 04:22:29 +0000 (00:22 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 30 Jul 2009 23:06:11 +0000 (16:06 -0700)
commit 19bde778c1fd2574cc020a618d7d576f260271ca upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pnp/pnpacpi/core.c

index 14b77c0c190b7c3d4ec8ed849da6f98974b35d04..c19354083ef99a64e334e74f5ff21a5627ac0a9d 100644 (file)
@@ -111,11 +111,9 @@ static int pnpacpi_disable_resources(struct pnp_dev *dev)
 
        /* acpi_unregister_gsi(pnp_irq(dev, 0)); */
        ret = 0;
-       if (acpi_bus_power_manageable(handle)) {
-               ret = acpi_bus_set_power(handle, ACPI_STATE_D3);
-               if (ret)
-                       return ret;
-       }
+       if (acpi_bus_power_manageable(handle))
+               acpi_bus_set_power(handle, ACPI_STATE_D3);
+               /* continue even if acpi_bus_set_power() fails */
        if (ACPI_FAILURE(acpi_evaluate_object(handle, "_DIS", NULL, NULL)))
                ret = -ENODEV;
        return ret;