Patch: enable runtime GPEs before calling _WAK method
The following patch enables runtime GPEs before calling _WAK. This appears to be needed for resume from disk to work properly on an HP 6220
- without it, if the fan state has changed between suspend and resume, kacpid consumes 100% of the CPU time and the fan speed remains constant.
Quoted 1 line
From playing with this, I assume that it's because the
_WAKmethod
triggers an event that isn't handled because the GPEs haven't been enabled.
drivers/acpi/hardware/hwsleep.c +6 -6
@@ -543,12 +543,6 @@ACPI_REPORT_ERROR (("Method _BFS failed, %s\n" ,acpi_format_exception (status))); } - status =acpi_evaluate_object (NULL ,METHOD_NAME__WAK , &arg_list,NULL ); -if (ACPI_FAILURE (status) && status !=AE_NOT_FOUND ) { -ACPI_REPORT_ERROR (("Method _WAK failed, %s\n" ,acpi_format_exception (status))); - } -/* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */ -/* * Restore the GPEs: * 1) Disable/Clear all GPEs
@@ -565,6 +559,12 @@return_ACPI_STATUS (status); } + status =acpi_evaluate_object (NULL ,METHOD_NAME__WAK , &arg_list,NULL ); +if (ACPI_FAILURE (status) && status !=AE_NOT_FOUND ) { +ACPI_REPORT_ERROR (("Method _WAK failed, %s\n" ,acpi_format_exception (status))); + } +/* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */ +/* Enable power button */ (void) acpi_set_register(acpi_gbl_fixed_event_info[ACPI_EVENT_POWER_BUTTON].enable_register_id,
Signature · 9 lines
Matthew Garrett | [email protected] ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
It's very likely. But we still need to dig more from DSDT. Ususally, we are confused by interpreter glitch, so we need to make sure interpreter works well.
Quoted 42 lines · Matthew Garrett
The following patch enables runtime GPEs before calling
_WAK. This appears to be needed for resume from disk to work properly on an HP 6220
- without it, if the fan state has changed between suspend and resume, kacpid consumes 100% of the CPU time and the fan speed remains constant.Quoted 1 line
From playing with this, I assume that it's because the
_WAKmethodtriggers an event that isn't handled because the GPEs haven't been enabled.
diff -ur
build-386/drivers/acpi/hardware/hwsleep.cbuild-686/drivers/acpi/hardware/hwsleep.c---build-386/drivers/acpi/hardware/hwsleep.c2005-03-17 20:40:58.000000000
+0000 +++build-686/drivers/acpi/hardware/hwsleep.c2005-03-26
23:48:29.000000000 +0000 @@ -543,12 +543,6 @@
ACPI_REPORT_ERROR(("Method_BFSfailed, %s\n",acpi_format_exception
(status))); }drivers/acpi/hardware/hwsleep.c +0
-3- status =acpi_evaluate_object (NULL ,METHOD_NAME__WAK , &arg_list,NULL ); -if (ACPI_FAILURE (status) && status !=AE_NOT_FOUND ) { - ACPI_REPORT_ERROR (("Method _WAK failed, %s\n", acpi_format_exception(status))); - }
drivers/acpi/hardware/hwsleep.c +5
-2-/* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */ -/* * Restore the GPEs: * 1) Disable/Clear all GPEs @@ -565,6 +559,12 @@return_ACPI_STATUS (status); } + status =acpi_evaluate_object (NULL ,METHOD_NAME__WAK , &arg_list,NULL ); +if (ACPI_FAILURE (status) && status !=AE_NOT_FOUND ) { +ACPI_REPORT_ERROR (("Method _WAK failed, %s\n" ,acpi_format_exception (status))); + } +/* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */ +/* Enable power button */ (void)acpi_set_register(acpi_gbl_fixed_event_info[ACPI_EVENT_POWER_BUTTON].enable
_register_id,
Signature · 9 lines
Thanks, Luming ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click