Skip to contentSkip to conversation

Fix to "All wake-up devices are disabled after suspend-to disk" isn't yet included in mainline

PATCH Maxim Levitsky 2 participants 3 messages Oct 17, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi,

A while ago I asked on LKML about the problem of loosing all wake device capabilities, after a suspend to disk (eg: I can't wake the system from keyboard if I suspend to disk and then to ram)

I was provided with the patch that fixes this problem completely. The merge window is open, but I still don't see it in the kernel. Due to changes it doesn't anymore apply to latest git.

Was it missed?

The patch below for the reference,
(acpi_sleep_prepare was moved to /drivers/acpi/sleep/main.c, so I did in-line change in the patch)

Best regards,
Maxim Levitsky

commit ea256a37b093b9c0c0fa639eb9a0bff10df41998

Author: Alexey Starikovskiy <[email protected]>
Date:   Wed Sep 12 14:04:32 2007 +0400

ACPI: Hibernate erroneously disabled Suspend wakeup devices

S4 suspend to disk will disable GPE's permanently because acpi_gpe_sleep_prepare() does not have a counterpart at resume time. Thus, those devices became unavailable for wakeup from subsequent S3 suspend-to-ram.

Here acpi_gpe_sleep_prepare() is removed, and upon suspend acpi_enable_wakeup_device() gets its functionality. Upon resume, acpi_disable_wakeup_device() restores the state.

https://bugzilla.novell.com/show_bug.cgi?id=292300

---
 drivers/acpi/sleep/poweroff.c |    1 -
 drivers/acpi/sleep/sleep.h    |    1 -
 drivers/acpi/sleep/wakeup.c   |  117 ++++++++++++++---------------------------
 include/acpi/acpi_bus.h       |    1 -
 4 files changed, 40 insertions(+), 80 deletions(-)
drivers/acpi/sleep/main.c +0 -1
index 39e40d5..2725a60 100644
@@ -32,7 +32,6 @@ int acpi_sleep_prepare(u32 acpi_state)
 	ACPI_FLUSH_CPU_CACHE();
 	acpi_enable_wakeup_device_prep(acpi_state);
 #endif
-	acpi_gpe_sleep_prepare(acpi_state);
 	acpi_enter_sleep_state_prep(acpi_state);
 	return 0;
 }
drivers/acpi/sleep/sleep.h +0 -1
index ff1f850..a2ea125 100644
@@ -5,6 +5,5 @@ extern int acpi_suspend (u32 state);
 extern void acpi_enable_wakeup_device_prep(u8 sleep_state);
 extern void acpi_enable_wakeup_device(u8 sleep_state);
 extern void acpi_disable_wakeup_device(u8 sleep_state);
-extern void acpi_gpe_sleep_prepare(u32 sleep_state);
 
 extern int acpi_sleep_prepare(u32 acpi_state);
drivers/acpi/sleep/wakeup.c +40 -77

157 lines not on this page · raw message

include/acpi/acpi_bus.h +0 -1
index 86aea44..17500a1 100644
@@ -264,7 +264,6 @@ struct acpi_device_wakeup_flags {
 
 struct acpi_device_wakeup_state {
 	u8 enabled:1;
-	u8 active:1;
 };
 
 struct acpi_device_wakeup {
Signature · 1 line
1.5.3.4
#1 lore raw
Quoted 8 lines · On Wed, 17 Oct 2007 04:39:30 +0200 Maxim Levitsky <[email protected]>…

A while ago I asked on LKML about the problem of loosing all wake device capabilities, after a suspend to disk (eg: I can't wake the system from keyboard if I suspend to disk and then to ram)

I was provided with the patch that fixes this problem completely. The merge window is open, but I still don't see it in the kernel. Due to changes it doesn't anymore apply to latest git.

Was it missed?

No, it's in Len's git tree.

Len's git-pull request from a few days ago didn't work, perhaps because I wanted to know if a recent -mm regression had been fixed and that hasn't been answered yet. I assume that Len is offline. Other acpi developers could presumably have answered that question but for some reason chose not to.

I'm presently holding off 20-odd power management patches due to their dependency upon an acpi merge...

#2 lore raw
Quoted 13 lines · On Wednesday 17 October 2007 05:48:02 Andrew Morton wrote:
Quoted 8 lines · On Wed, 17 Oct 2007 04:39:30 +0200 Maxim Levitsky <[email protected]>…

A while ago I asked on LKML about the problem of loosing all wake device capabilities, after a suspend to disk (eg: I can't wake the system from keyboard if I suspend to disk and then to ram)

I was provided with the patch that fixes this problem completely. The merge window is open, but I still don't see it in the kernel. Due to changes it doesn't anymore apply to latest git.

Was it missed?

No, it's in Len's git tree.

Quoted 8 lines

Len's git-pull request from a few days ago didn't work, perhaps because I wanted to know if a recent -mm regression had been fixed and that hasn't been answered yet. I assume that Len is offline. Other acpi developers could presumably have answered that question but for some reason chose not to.

I'm presently holding off 20-odd power management patches due to their dependency upon an acpi merge...

Thanks a lot.
Best regards,
Maxim Levitsky