Re: Odd suspend regression in 2.6.21-rc[123]

From: Len Brown
Date: Mon Mar 12 2007 - 11:51:14 EST


On Saturday 10 March 2007 01:18, Ray Lee wrote:
> Ray Lee wrote:
> > In 2.6.21-rc1,2,3, my laptop will fully suspend to ram, but then
> > *immediately* resumes back from suspension. (It resumes just fine, as well.)
> [...]
> > HP/Compaq NX6125 system, AMD64, dmesg attached.
>
> hg bisect found the below patch as the culprit, and reverting it does
> fix the regression. It's supposed to address "sometime ac/battery update
> stops after resume from disk." This thread:
> http://lkml.org/lkml/2007/2/24/111 appears to talk about the same issue,
> and therefore it may be solved without the below patch, so perhaps we
> can all be happy.
>
> Regardless, I think my laptop no longer being able to go into S3 sleep
> is a bit more important than someone else's laptop merely not showing
> the correct AC status :-).
>
> Please revert. (git patch id ed41dab90eb40ac4911e60406bc653661f0e4ce1)

I'd rather not break the Acer, if possible.

Ray, Please test the incremental patch below.

---
Subject: ACPI: resolve GPE immediate wakeup regression
From: Alexey Starikovskiy <alexey.y.starikovskiy@xxxxxxxxxxxxxxx>

Removing disabling of GPEs from enter_sleep function causes regression on nx6125.
Doing disable_all_gpes both in prepare to sleep and in enter sleep resolves regression,
while still fixes Acer notebooks.

Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@xxxxxxxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
---

drivers/acpi/hardware/hwsleep.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c
index 8fa9312..c84b1fa 100644
--- a/drivers/acpi/hardware/hwsleep.c
+++ b/drivers/acpi/hardware/hwsleep.c
@@ -300,6 +300,11 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
/*
* 2) Enable all wakeup GPEs
*/
+ status = acpi_hw_disable_all_gpes();
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
acpi_gbl_system_awake_and_running = FALSE;

status = acpi_hw_enable_all_wakeup_gpes();
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/