mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 19:56:18 +00:00
ACPICA: Fail AcpiEnable if ACPI tables not loaded.
AcpiEnable will now fail if all of the required ACPI tables are not loaded (FADT, FACS, DSDT). BZ 477 Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
987c21a0b0
commit
c857303ad4
3 changed files with 33 additions and 0 deletions
|
@ -65,6 +65,14 @@ acpi_status acpi_enable(void)
|
|||
|
||||
ACPI_FUNCTION_TRACE(acpi_enable);
|
||||
|
||||
/* ACPI tables must be present */
|
||||
|
||||
if (!acpi_tb_tables_loaded()) {
|
||||
return_ACPI_STATUS(AE_NO_ACPI_TABLES);
|
||||
}
|
||||
|
||||
/* Check current mode */
|
||||
|
||||
if (acpi_hw_get_mode() == ACPI_SYS_MODE_ACPI) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INIT,
|
||||
"System is already in ACPI mode\n"));
|
||||
|
|
|
@ -52,6 +52,29 @@ static acpi_physical_address
|
|||
acpi_tb_get_root_table_entry(u8 * table_entry,
|
||||
acpi_native_uint table_entry_size);
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_tb_tables_loaded
|
||||
*
|
||||
* PARAMETERS: None
|
||||
*
|
||||
* RETURN: TRUE if required ACPI tables are loaded
|
||||
*
|
||||
* DESCRIPTION: Determine if the minimum required ACPI tables are present
|
||||
* (FADT, FACS, DSDT)
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
u8 acpi_tb_tables_loaded(void)
|
||||
{
|
||||
|
||||
if (acpi_gbl_root_table_list.count >= 3) {
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_tb_print_table_header
|
||||
|
|
|
@ -97,6 +97,8 @@ void acpi_tb_set_table_loaded_flag(acpi_native_uint table_index, u8 is_loaded);
|
|||
/*
|
||||
* tbutils - table manager utilities
|
||||
*/
|
||||
u8 acpi_tb_tables_loaded(void);
|
||||
|
||||
void
|
||||
acpi_tb_print_table_header(acpi_physical_address address,
|
||||
struct acpi_table_header *header);
|
||||
|
|
Loading…
Reference in a new issue