| From cebbert@redhat.com Tue Nov 4 15:04:26 2008 |
| From: Matthew Garrett <mjg59@srcf.ucam.org> |
| Date: Fri, 31 Oct 2008 17:27:16 -0400 |
| Subject: ACPI: Clear WAK_STS on resume |
| To: stable@kernel.org |
| Cc: Len Brown <len.brown@intel.com> |
| Message-ID: <20081031172716.10a2080c@redhat.com> |
| |
| From: Matthew Garrett <mjg59@srcf.ucam.org> |
| |
| Subject: ACPI: Clear WAK_STS on resume |
| |
| commit a68823ee5285e65b51ceb96f8b13a5b4f99a6888 upstream. |
| |
| ACPI: Clear WAK_STS on resume |
| |
| The leading other brand OS appears to clear the WAK_STS flag on resume. |
| When rebooted, certain BIOSes assume that the system is actually |
| resuming if it's still set and so fail to reboot correctly. Make sure |
| that it's cleared at resume time. |
| |
| Comment clarified as suggested by Bob Moore |
| |
| http://bugzilla.kernel.org/show_bug.cgi?id=11634 |
| |
| Signed-off-by: Matthew Garrett <mjg@redhat.com> |
| Signed-off-by: Andi Kleen <ak@linux.intel.com> |
| Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> |
| Tested-by: Romano Giannetti <romano.giannetti@gmail.com> |
| Signed-off-by: Len Brown <len.brown@intel.com> |
| Cc: Chuck Ebbert <cebbert@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/acpi/hardware/hwsleep.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/drivers/acpi/hardware/hwsleep.c |
| +++ b/drivers/acpi/hardware/hwsleep.c |
| @@ -612,6 +612,13 @@ acpi_status acpi_leave_sleep_state(u8 sl |
| } |
| /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */ |
| |
| + /* |
| + * Some BIOSes assume that WAK_STS will be cleared on resume and use |
| + * it to determine whether the system is rebooting or resuming. Clear |
| + * it for compatibility. |
| + */ |
| + acpi_set_register(ACPI_BITREG_WAKE_STATUS, 1); |
| + |
| acpi_gbl_system_awake_and_running = TRUE; |
| |
| /* Enable power button */ |