: ACPI: Delete the evaluation of _GTS/_BFS object
Subsystems (2)
PATCH 1/1 : ACPI: Delete the evaluation of _GTS/_BFS object
From: Zhao Yakui <[email protected]>
According to the ACPI 3.0b spec the _GTS/_BFS object is defined, in which the specific function can be performed. And the _GTS object should be evaluated just prior to setting the SLP_EN register.
But on most boxes there is no _GTS/_BFS object. And even when they exists, they won't be evaluated on windows XP/Vista.
At the same time on one box there exists the _GTS object, in which the EC is accessed. If EC access is deleted in _GTS object, the S3/S4/S5 can work well. In fact this bug is also related with the incorrect EC working mode. In the course of suspend/resume/shutdown the polling mode should be used and the udelay should be used instead of msleep because the timer interrupt is disabled.
But it will be easier to delete the _GTS/_BFS object.
http://bugzilla.kernel.org/show_bug.cgi?id=13041
--- drivers/acpi/acpica/hwsleep.c | 27 --------------------------- 1 file changed, 27 deletions(-)
drivers/acpi/acpica/hwsleep.c +0 -27
@@ -230,8 +230,6 @@struct acpi_bit_register_info *sleep_type_reg_info;struct acpi_bit_register_info *sleep_enable_reg_info;u32 in_value; -struct acpi_object_list arg_list; -union acpi_object arg;acpi_status status;ACPI_FUNCTION_TRACE (acpi_enter_sleep_state);
@@ -278,17 +276,6 @@return_ACPI_STATUS (status); } -/* Execute the _GTS method */ - - arg_list.count =1 ; - arg_list.pointer = &arg; - arg.type =ACPI_TYPE_INTEGER ; - arg.integer.value = sleep_state; - - status =acpi_evaluate_object (NULL ,METHOD_NAME__GTS , &arg_list,NULL ); -if (ACPI_FAILURE (status) && status !=AE_NOT_FOUND ) { -return_ACPI_STATUS (status); - }/* Get current value of PM1A control */
@@ -462,8 +449,6 @@******************************************************************************/ acpi_status acpi_leave_sleep_state_prep (u8 sleep_state) { -struct acpi_object_list arg_list; -union acpi_object arg;acpi_status status;struct acpi_bit_register_info *sleep_type_reg_info;struct acpi_bit_register_info *sleep_enable_reg_info;
@@ -513,18 +498,6 @@ } } -/* Execute the _BFS method */ - - arg_list.count =1 ; - arg_list.pointer = &arg; - arg.type =ACPI_TYPE_INTEGER ; - arg.integer.value = sleep_state; - - status =acpi_evaluate_object (NULL ,METHOD_NAME__BFS , &arg_list,NULL ); -if (ACPI_FAILURE (status) && status !=AE_NOT_FOUND ) { -ACPI_EXCEPTION ((AE_INFO , status,"During Method _BFS" )); - } -return_ACPI_STATUS (status); }