ACPI: Use the return result of ACPI lid notifier chain correctly
authorZhao Yakui <yakui.zhao@intel.com>
Tue, 15 Dec 2009 14:01:57 +0000 (22:01 +0800)
committerLen Brown <len.brown@intel.com>
Wed, 16 Dec 2009 06:12:35 +0000 (01:12 -0500)
On some laptops it will return NOTIFY_OK(non-zero) when calling the ACPI LID
notifier. Then it is used as the result of ACPI LID resume function, which
will complain the following warning message in course of suspend/resume:

     >PM: Device PNP0C0D:00 failed to resume: error 1

This patch is to eliminate the above warning message.

http://bugzilla.kernel.org/show_bug.cgi?id=14782

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/button.c

index 0c9c6a9a002cb397867269e7bc44f56d4bd9f9bd..8a95e8329df732891b260efe67ad1c1855538be8 100644 (file)
@@ -282,6 +282,13 @@ static int acpi_lid_send_state(struct acpi_device *device)
        if (ret == NOTIFY_DONE)
                ret = blocking_notifier_call_chain(&acpi_lid_notifier, state,
                                                   device);
+       if (ret == NOTIFY_DONE || ret == NOTIFY_OK) {
+               /*
+                * It is also regarded as success if the notifier_chain
+                * returns NOTIFY_OK or NOTIFY_DONE.
+                */
+               ret = 0;
+       }
        return ret;
 }