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_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) {
|
if (acpi_hw_get_mode() == ACPI_SYS_MODE_ACPI) {
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_INIT,
|
ACPI_DEBUG_PRINT((ACPI_DB_INIT,
|
||||||
"System is already in ACPI mode\n"));
|
"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_tb_get_root_table_entry(u8 * table_entry,
|
||||||
acpi_native_uint table_entry_size);
|
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
|
* 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
|
* tbutils - table manager utilities
|
||||||
*/
|
*/
|
||||||
|
u8 acpi_tb_tables_loaded(void);
|
||||||
|
|
||||||
void
|
void
|
||||||
acpi_tb_print_table_header(acpi_physical_address address,
|
acpi_tb_print_table_header(acpi_physical_address address,
|
||||||
struct acpi_table_header *header);
|
struct acpi_table_header *header);
|
||||||
|
|
Loading…
Reference in a new issue