|
@@ -211,6 +211,12 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)
|
|
|
|
|
|
ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep)
|
|
ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep)
|
|
|
|
|
|
|
|
+static unsigned int gts, bfs;
|
|
|
|
+module_param(gts, uint, 0644);
|
|
|
|
+module_param(bfs, uint, 0644);
|
|
|
|
+MODULE_PARM_DESC(gts, "Enable evaluation of _GTS on suspend.");
|
|
|
|
+MODULE_PARM_DESC(bfs, "Enable evaluation of _BFS on resume".);
|
|
|
|
+
|
|
/*******************************************************************************
|
|
/*******************************************************************************
|
|
*
|
|
*
|
|
* FUNCTION: acpi_enter_sleep_state
|
|
* FUNCTION: acpi_enter_sleep_state
|
|
@@ -278,16 +284,18 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
|
|
return_ACPI_STATUS(status);
|
|
return_ACPI_STATUS(status);
|
|
}
|
|
}
|
|
|
|
|
|
- /* Execute the _GTS method */
|
|
|
|
|
|
+ if (gts) {
|
|
|
|
+ /* Execute the _GTS method */
|
|
|
|
|
|
- arg_list.count = 1;
|
|
|
|
- arg_list.pointer = &arg;
|
|
|
|
- arg.type = ACPI_TYPE_INTEGER;
|
|
|
|
- arg.integer.value = sleep_state;
|
|
|
|
|
|
+ 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);
|
|
|
|
|
|
+ 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 */
|
|
/* Get current value of PM1A control */
|
|
@@ -513,18 +521,19 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /* Execute the _BFS method */
|
|
|
|
|
|
+ if (bfs) {
|
|
|
|
+ /* Execute the _BFS method */
|
|
|
|
|
|
- arg_list.count = 1;
|
|
|
|
- arg_list.pointer = &arg;
|
|
|
|
- arg.type = ACPI_TYPE_INTEGER;
|
|
|
|
- arg.integer.value = sleep_state;
|
|
|
|
|
|
+ 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"));
|
|
|
|
|
|
+ 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);
|
|
return_ACPI_STATUS(status);
|
|
}
|
|
}
|
|
|
|
|