Pull acpica into release branch
This commit is contained in:
commit
d9ff963801
5 changed files with 35 additions and 19 deletions
|
@ -586,6 +586,10 @@ acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt)
|
||||||
flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
|
flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
|
||||||
if (gpe_xrupt->previous) {
|
if (gpe_xrupt->previous) {
|
||||||
gpe_xrupt->previous->next = gpe_xrupt->next;
|
gpe_xrupt->previous->next = gpe_xrupt->next;
|
||||||
|
} else {
|
||||||
|
/* No previous, update list head */
|
||||||
|
|
||||||
|
acpi_gbl_gpe_xrupt_list_head = gpe_xrupt->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gpe_xrupt->next) {
|
if (gpe_xrupt->next) {
|
||||||
|
|
|
@ -284,6 +284,7 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pci_device_node) {
|
if (!pci_device_node) {
|
||||||
|
ACPI_FREE(pci_id);
|
||||||
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
|
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -211,14 +211,17 @@ void acpi_tb_parse_fadt(acpi_native_uint table_index, u8 flags)
|
||||||
* DESCRIPTION: Get a local copy of the FADT and convert it to a common format.
|
* DESCRIPTION: Get a local copy of the FADT and convert it to a common format.
|
||||||
* Performs validation on some important FADT fields.
|
* Performs validation on some important FADT fields.
|
||||||
*
|
*
|
||||||
|
* NOTE: We create a local copy of the FADT regardless of the version.
|
||||||
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
|
void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
|
||||||
{
|
{
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check if the FADT is larger than what we know about (ACPI 2.0 version).
|
* Check if the FADT is larger than the largest table that we expect
|
||||||
* Truncate the table, but make some noise.
|
* (the ACPI 2.0/3.0 version). If so, truncate the table, and issue
|
||||||
|
* a warning.
|
||||||
*/
|
*/
|
||||||
if (length > sizeof(struct acpi_table_fadt)) {
|
if (length > sizeof(struct acpi_table_fadt)) {
|
||||||
ACPI_WARNING((AE_INFO,
|
ACPI_WARNING((AE_INFO,
|
||||||
|
@ -227,10 +230,12 @@ void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
|
||||||
sizeof(struct acpi_table_fadt)));
|
sizeof(struct acpi_table_fadt)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Copy the entire FADT locally. Zero first for tb_convert_fadt */
|
/* Clear the entire local FADT */
|
||||||
|
|
||||||
ACPI_MEMSET(&acpi_gbl_FADT, 0, sizeof(struct acpi_table_fadt));
|
ACPI_MEMSET(&acpi_gbl_FADT, 0, sizeof(struct acpi_table_fadt));
|
||||||
|
|
||||||
|
/* Copy the original FADT, up to sizeof (struct acpi_table_fadt) */
|
||||||
|
|
||||||
ACPI_MEMCPY(&acpi_gbl_FADT, table,
|
ACPI_MEMCPY(&acpi_gbl_FADT, table,
|
||||||
ACPI_MIN(length, sizeof(struct acpi_table_fadt)));
|
ACPI_MIN(length, sizeof(struct acpi_table_fadt)));
|
||||||
|
|
||||||
|
@ -251,7 +256,7 @@ void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length)
|
||||||
* RETURN: None
|
* RETURN: None
|
||||||
*
|
*
|
||||||
* DESCRIPTION: Converts all versions of the FADT to a common internal format.
|
* DESCRIPTION: Converts all versions of the FADT to a common internal format.
|
||||||
* -> Expand all 32-bit addresses to 64-bit.
|
* Expand all 32-bit addresses to 64-bit.
|
||||||
*
|
*
|
||||||
* NOTE: acpi_gbl_FADT must be of size (struct acpi_table_fadt),
|
* NOTE: acpi_gbl_FADT must be of size (struct acpi_table_fadt),
|
||||||
* and must contain a copy of the actual FADT.
|
* and must contain a copy of the actual FADT.
|
||||||
|
@ -292,8 +297,23 @@ static void acpi_tb_convert_fadt(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Expand the 32-bit V1.0 addresses to the 64-bit "X" generic address
|
* For ACPI 1.0 FADTs (revision 1 or 2), ensure that reserved fields which
|
||||||
* structures as necessary.
|
* should be zero are indeed zero. This will workaround BIOSs that
|
||||||
|
* inadvertently place values in these fields.
|
||||||
|
*
|
||||||
|
* The ACPI 1.0 reserved fields that will be zeroed are the bytes located at
|
||||||
|
* offset 45, 55, 95, and the word located at offset 109, 110.
|
||||||
|
*/
|
||||||
|
if (acpi_gbl_FADT.header.revision < 3) {
|
||||||
|
acpi_gbl_FADT.preferred_profile = 0;
|
||||||
|
acpi_gbl_FADT.pstate_control = 0;
|
||||||
|
acpi_gbl_FADT.cst_control = 0;
|
||||||
|
acpi_gbl_FADT.boot_flags = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Expand the ACPI 1.0 32-bit V1.0 addresses to the ACPI 2.0 64-bit "X"
|
||||||
|
* generic address structures as necessary.
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++) {
|
for (i = 0; i < ACPI_FADT_INFO_ENTRIES; i++) {
|
||||||
target =
|
target =
|
||||||
|
@ -349,18 +369,6 @@ static void acpi_tb_convert_fadt(void)
|
||||||
acpi_gbl_FADT.xpm1a_event_block.space_id;
|
acpi_gbl_FADT.xpm1a_event_block.space_id;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* For ACPI 1.0 FADTs, ensure that reserved fields (which should be zero)
|
|
||||||
* are indeed zero. This will workaround BIOSs that inadvertently placed
|
|
||||||
* values in these fields.
|
|
||||||
*/
|
|
||||||
if (acpi_gbl_FADT.header.revision < 3) {
|
|
||||||
acpi_gbl_FADT.preferred_profile = 0;
|
|
||||||
acpi_gbl_FADT.pstate_control = 0;
|
|
||||||
acpi_gbl_FADT.cst_control = 0;
|
|
||||||
acpi_gbl_FADT.boot_flags = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
|
|
||||||
/*! [Begin] no source code translation */
|
/*! [Begin] no source code translation */
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(_LINUX) || defined(__linux__)
|
||||||
#include "aclinux.h"
|
#include "aclinux.h"
|
||||||
|
|
||||||
#elif defined(_AED_EFI)
|
#elif defined(_AED_EFI)
|
||||||
|
|
|
@ -91,7 +91,10 @@
|
||||||
#define ACPI_USE_NATIVE_DIVIDE
|
#define ACPI_USE_NATIVE_DIVIDE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cdecl
|
||||||
#define __cdecl
|
#define __cdecl
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ACPI_FLUSH_CPU_CACHE()
|
#define ACPI_FLUSH_CPU_CACHE()
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue