diff mbox

[1/2] PM / sleep: Clear pm_suspend_global_flags upon hibernate

Message ID cf0a2955536f342ee58ddbee16c18cde5f59fc66.1458641423.git.lukas@wunner.de (mailing list archive)
State Accepted, archived
Delegated to: Rafael Wysocki
Headers show

Commit Message

Lukas Wunner March 22, 2016, 11:11 p.m. UTC
When suspending to RAM, waking up and later suspending to disk,
we gratuitously runtime resume devices after the thaw phase.
This does not occur if we always suspend to RAM or always to disk.

pm_complete_with_resume_check(), which gets called from
pci_pm_complete() among others, schedules a runtime resume
if PM_SUSPEND_FLAG_FW_RESUME is set. The flag is set during
a suspend-to-RAM cycle. It is cleared at the beginning of
the suspend-to-RAM cycle but not afterwards and it is not
cleared during a suspend-to-disk cycle at all. Fix it.

Fixes: ef25ba047601 ("PM / sleep: Add flags to indicate platform
    firmware involvement")
Signed-off-by: Lukas Wunner <lukas@wunner.de>
---
 kernel/power/hibernate.c | 1 +
 1 file changed, 1 insertion(+)
diff mbox

Patch

diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index aa0f26b..fca9254 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -339,6 +339,7 @@  int hibernation_snapshot(int platform_mode)
 	pm_message_t msg;
 	int error;
 
+	pm_suspend_clear_flags();
 	error = platform_begin(platform_mode);
 	if (error)
 		goto Close;