ACPICA: Tables: Allow FADT to be customized with virtual address
ACPICA commit d98de9ca14891130efc5dcdc871b97eb27b4b0f5 FADT parsing code requires FADT to be installed as ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, using new acpi_tb_get_table()/acpi_tb_put_table(), other address types can also be allowed, thus facilitates FADT customization with virtual address. Lv Zheng. Link: https://github.com/acpica/acpica/commit/d98de9ca Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
174cc7187e
commit
66360faa43
|
@ -311,6 +311,8 @@ void acpi_tb_parse_fadt(void)
|
|||
{
|
||||
u32 length;
|
||||
struct acpi_table_header *table;
|
||||
struct acpi_table_desc *fadt_desc;
|
||||
acpi_status status;
|
||||
|
||||
/*
|
||||
* The FADT has multiple versions with different lengths,
|
||||
|
@ -319,14 +321,12 @@ void acpi_tb_parse_fadt(void)
|
|||
* Get a local copy of the FADT and convert it to a common format
|
||||
* Map entire FADT, assumed to be smaller than one page.
|
||||
*/
|
||||
length = acpi_gbl_root_table_list.tables[acpi_gbl_fadt_index].length;
|
||||
|
||||
table =
|
||||
acpi_os_map_memory(acpi_gbl_root_table_list.
|
||||
tables[acpi_gbl_fadt_index].address, length);
|
||||
if (!table) {
|
||||
fadt_desc = &acpi_gbl_root_table_list.tables[acpi_gbl_fadt_index];
|
||||
status = acpi_tb_get_table(fadt_desc, &table);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
return;
|
||||
}
|
||||
length = fadt_desc->length;
|
||||
|
||||
/*
|
||||
* Validate the FADT checksum before we copy the table. Ignore
|
||||
|
@ -340,7 +340,7 @@ void acpi_tb_parse_fadt(void)
|
|||
|
||||
/* All done with the real FADT, unmap it */
|
||||
|
||||
acpi_os_unmap_memory(table, length);
|
||||
acpi_tb_put_table(fadt_desc);
|
||||
|
||||
/* Obtain the DSDT and FACS tables via their addresses within the FADT */
|
||||
|
||||
|
|
Loading…
Reference in New Issue