mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-17 20:29:24 +00:00
Merge branch 'acpica-cherry-pick' into release
This commit is contained in:
commit
d9a799d197
7 changed files with 43 additions and 1 deletions
|
@ -119,6 +119,10 @@
|
||||||
|
|
||||||
#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF
|
#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF
|
||||||
|
|
||||||
|
/* Maximum sleep allowed via Sleep() operator */
|
||||||
|
|
||||||
|
#define ACPI_MAX_SLEEP 20000 /* Two seconds */
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* ACPI Specification constants (Do not change unless the specification changes)
|
* ACPI Specification constants (Do not change unless the specification changes)
|
||||||
|
|
|
@ -125,6 +125,14 @@ u8 ACPI_INIT_GLOBAL(acpi_gbl_enable_aml_debug_object, FALSE);
|
||||||
*/
|
*/
|
||||||
u8 ACPI_INIT_GLOBAL(acpi_gbl_copy_dsdt_locally, FALSE);
|
u8 ACPI_INIT_GLOBAL(acpi_gbl_copy_dsdt_locally, FALSE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Optionally truncate I/O addresses to 16 bits. Provides compatibility
|
||||||
|
* with other ACPI implementations. NOTE: During ACPICA initialization,
|
||||||
|
* this value is set to TRUE if any Windows OSI strings have been
|
||||||
|
* requested by the BIOS.
|
||||||
|
*/
|
||||||
|
u8 ACPI_INIT_GLOBAL(acpi_gbl_truncate_io_addresses, FALSE);
|
||||||
|
|
||||||
/* acpi_gbl_FADT is a local copy of the FADT, converted to a common format. */
|
/* acpi_gbl_FADT is a local copy of the FADT, converted to a common format. */
|
||||||
|
|
||||||
struct acpi_table_fadt acpi_gbl_FADT;
|
struct acpi_table_fadt acpi_gbl_FADT;
|
||||||
|
|
|
@ -201,6 +201,14 @@ acpi_status acpi_ex_system_do_sleep(u64 how_long)
|
||||||
|
|
||||||
acpi_ex_relinquish_interpreter();
|
acpi_ex_relinquish_interpreter();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For compatibility with other ACPI implementations and to prevent
|
||||||
|
* accidental deep sleeps, limit the sleep time to something reasonable.
|
||||||
|
*/
|
||||||
|
if (how_long > ACPI_MAX_SLEEP) {
|
||||||
|
how_long = ACPI_MAX_SLEEP;
|
||||||
|
}
|
||||||
|
|
||||||
acpi_os_sleep(how_long);
|
acpi_os_sleep(how_long);
|
||||||
|
|
||||||
/* And now we must get the interpreter again */
|
/* And now we must get the interpreter again */
|
||||||
|
|
|
@ -222,6 +222,12 @@ acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width)
|
||||||
u32 one_byte;
|
u32 one_byte;
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
|
/* Truncate address to 16 bits if requested */
|
||||||
|
|
||||||
|
if (acpi_gbl_truncate_io_addresses) {
|
||||||
|
address &= ACPI_UINT16_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
/* Validate the entire request and perform the I/O */
|
/* Validate the entire request and perform the I/O */
|
||||||
|
|
||||||
status = acpi_hw_validate_io_request(address, width);
|
status = acpi_hw_validate_io_request(address, width);
|
||||||
|
@ -279,6 +285,12 @@ acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width)
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
|
/* Truncate address to 16 bits if requested */
|
||||||
|
|
||||||
|
if (acpi_gbl_truncate_io_addresses) {
|
||||||
|
address &= ACPI_UINT16_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
/* Validate the entire request and perform the I/O */
|
/* Validate the entire request and perform the I/O */
|
||||||
|
|
||||||
status = acpi_hw_validate_io_request(address, width);
|
status = acpi_hw_validate_io_request(address, width);
|
||||||
|
|
|
@ -193,6 +193,15 @@ acpi_status acpi_ns_initialize_devices(void)
|
||||||
acpi_ns_init_one_device, NULL, &info,
|
acpi_ns_init_one_device, NULL, &info,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Any _OSI requests should be completed by now. If the BIOS has
|
||||||
|
* requested any Windows OSI strings, we will always truncate
|
||||||
|
* I/O addresses to 16 bits -- for Windows compatibility.
|
||||||
|
*/
|
||||||
|
if (acpi_gbl_osi_data >= ACPI_OSI_WIN_2000) {
|
||||||
|
acpi_gbl_truncate_io_addresses = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
ACPI_FREE(info.evaluate_info);
|
ACPI_FREE(info.evaluate_info);
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
goto error_exit;
|
goto error_exit;
|
||||||
|
|
|
@ -212,7 +212,7 @@ char const *acpi_gbl_exception_names_env[] = {
|
||||||
"AE_NO_GLOBAL_LOCK",
|
"AE_NO_GLOBAL_LOCK",
|
||||||
"AE_ABORT_METHOD",
|
"AE_ABORT_METHOD",
|
||||||
"AE_SAME_HANDLER",
|
"AE_SAME_HANDLER",
|
||||||
"AE_WAKE_ONLY_GPE",
|
"AE_NO_HANDLER",
|
||||||
"AE_OWNER_ID_LIMIT"
|
"AE_OWNER_ID_LIMIT"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,7 @@ extern acpi_name acpi_gbl_trace_method_name;
|
||||||
extern u32 acpi_gbl_trace_flags;
|
extern u32 acpi_gbl_trace_flags;
|
||||||
extern u8 acpi_gbl_enable_aml_debug_object;
|
extern u8 acpi_gbl_enable_aml_debug_object;
|
||||||
extern u8 acpi_gbl_copy_dsdt_locally;
|
extern u8 acpi_gbl_copy_dsdt_locally;
|
||||||
|
extern u8 acpi_gbl_truncate_io_addresses;
|
||||||
|
|
||||||
extern u32 acpi_current_gpe_count;
|
extern u32 acpi_current_gpe_count;
|
||||||
extern struct acpi_table_fadt acpi_gbl_FADT;
|
extern struct acpi_table_fadt acpi_gbl_FADT;
|
||||||
|
|
Loading…
Add table
Reference in a new issue