diff options
author | Lin Ming <ming.m.lin@intel.com> | 2012-03-21 10:01:49 +0800 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2012-03-26 21:16:25 -0400 |
commit | 8a73b17e4c0e09cb5b80deee5451e29b830df4cc (patch) | |
tree | 292f555ca2aa42b4b4d756aca01a53b65df60970 /include/acpi | |
parent | 4acb6884b5568f19bd47173cba8bc1f2289d6baa (diff) |
ACPICA: Sleep/Wake interfaces: optionally execute _GTS and _BFS
Enhanced the sleep/wake interfaces to optionally execute the
_GTS method (Going To Sleep), and the _BFS method (Back From
Sleep). Windows apparently does not execute these methods, and
therefore these methods are often untested. It has been seen on
some systems where the execution of these methods causes errors
and also prevents the machine from entering S5. It is therefore
suggested that host operating systems do not execute these methods
by default. In the future, perhaps these methods can be optionally
executed based on the age of the system and/or what is the newest
version of Windows that the BIOS asks for via _OSI.
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/acpixf.h | 4 | ||||
-rw-r--r-- | include/acpi/actypes.h | 9 |
2 files changed, 10 insertions, 3 deletions
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index fb8a238115d..488c986ebe4 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h @@ -486,11 +486,11 @@ acpi_get_sleep_type_data(u8 sleep_state, u8 * slp_typ_a, u8 * slp_typ_b); acpi_status acpi_enter_sleep_state_prep(u8 sleep_state); -acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state); +acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state, u8 flags); ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status asmlinkage acpi_enter_sleep_state_s4bios(void)) -acpi_status acpi_leave_sleep_state_prep(u8 sleep_state); +acpi_status acpi_leave_sleep_state_prep(u8 sleep_state, u8 flags); acpi_status acpi_leave_sleep_state(u8 sleep_state); diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 349615833a4..eba66043cf1 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h @@ -518,6 +518,13 @@ typedef u64 acpi_integer; #define ACPI_SLEEP_TYPE_INVALID 0xFF /* + * Sleep/Wake flags + */ +#define ACPI_NO_OPTIONAL_METHODS 0x00 /* Do not execute any optional methods */ +#define ACPI_EXECUTE_GTS 0x01 /* For enter sleep interface */ +#define ACPI_EXECUTE_BFS 0x02 /* For leave sleep prep interface */ + +/* * Standard notify values */ #define ACPI_NOTIFY_BUS_CHECK (u8) 0x00 @@ -790,7 +797,7 @@ typedef u8 acpi_adr_space_type; /* Sleep function dispatch */ -typedef acpi_status(*ACPI_SLEEP_FUNCTION) (u8 sleep_state); +typedef acpi_status(*ACPI_SLEEP_FUNCTION) (u8 sleep_state, u8 flags); struct acpi_sleep_functions { ACPI_SLEEP_FUNCTION legacy_function; |