ACPICA: Add option to disable loading of SSDTs from the RSDT/XSDT
Optionally do not load any SSDTs from the RSDT/XSDT during initialization. This can be useful for overriding SSDTs using DSDT overriding, thus useful for debugging ACPI problems on some machines. Lv Zheng. ACPICA BZ 1005. References: https://bugs.acpica.org/show_bug.cgi?id=1005 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
1d1ea1b723
commit
b75dd2977f
|
@ -132,6 +132,12 @@ u8 ACPI_INIT_GLOBAL(acpi_gbl_truncate_io_addresses, FALSE);
|
||||||
*/
|
*/
|
||||||
u8 ACPI_INIT_GLOBAL(acpi_gbl_disable_auto_repair, FALSE);
|
u8 ACPI_INIT_GLOBAL(acpi_gbl_disable_auto_repair, FALSE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Optionally do not load any SSDTs from the RSDT/XSDT during initialization.
|
||||||
|
* This can be useful for debugging ACPI problems on some machines.
|
||||||
|
*/
|
||||||
|
u8 ACPI_INIT_GLOBAL(acpi_gbl_disable_ssdt_table_load, 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;
|
||||||
|
|
|
@ -53,8 +53,6 @@ ACPI_MODULE_NAME("tbxfload")
|
||||||
/* Local prototypes */
|
/* Local prototypes */
|
||||||
static acpi_status acpi_tb_load_namespace(void);
|
static acpi_status acpi_tb_load_namespace(void);
|
||||||
|
|
||||||
static int no_auto_ssdt;
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
*
|
*
|
||||||
* FUNCTION: acpi_load_tables
|
* FUNCTION: acpi_load_tables
|
||||||
|
@ -180,8 +178,16 @@ static acpi_status acpi_tb_load_namespace(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (no_auto_ssdt) {
|
/*
|
||||||
printk(KERN_WARNING "ACPI: SSDT ignored due to \"acpi_no_auto_ssdt\"\n");
|
* Optionally do not load any SSDTs from the RSDT/XSDT. This can
|
||||||
|
* be useful for debugging ACPI problems on some machines.
|
||||||
|
*/
|
||||||
|
if (acpi_gbl_disable_ssdt_table_load) {
|
||||||
|
ACPI_INFO((AE_INFO, "Ignoring %4.4s at %p",
|
||||||
|
acpi_gbl_root_table_list.tables[i].signature.
|
||||||
|
ascii, ACPI_CAST_PTR(void,
|
||||||
|
acpi_gbl_root_table_list.
|
||||||
|
tables[i].address)));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -376,14 +382,3 @@ acpi_status acpi_unload_parent_table(acpi_handle object)
|
||||||
}
|
}
|
||||||
|
|
||||||
ACPI_EXPORT_SYMBOL(acpi_unload_parent_table)
|
ACPI_EXPORT_SYMBOL(acpi_unload_parent_table)
|
||||||
|
|
||||||
static int __init acpi_no_auto_ssdt_setup(char *s) {
|
|
||||||
|
|
||||||
printk(KERN_NOTICE "ACPI: SSDT auto-load disabled\n");
|
|
||||||
|
|
||||||
no_auto_ssdt = 1;
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
__setup("acpi_no_auto_ssdt", acpi_no_auto_ssdt_setup);
|
|
||||||
|
|
|
@ -1715,6 +1715,17 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static int __init acpi_no_auto_ssdt_setup(char *s)
|
||||||
|
{
|
||||||
|
printk(KERN_NOTICE PREFIX "SSDT auto-load disabled\n");
|
||||||
|
|
||||||
|
acpi_gbl_disable_ssdt_table_load = TRUE;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
__setup("acpi_no_auto_ssdt", acpi_no_auto_ssdt_setup);
|
||||||
|
|
||||||
acpi_status __init acpi_os_initialize(void)
|
acpi_status __init acpi_os_initialize(void)
|
||||||
{
|
{
|
||||||
acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
|
acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
|
||||||
|
|
|
@ -80,6 +80,7 @@ extern bool 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 u8 acpi_gbl_truncate_io_addresses;
|
||||||
extern u8 acpi_gbl_disable_auto_repair;
|
extern u8 acpi_gbl_disable_auto_repair;
|
||||||
|
extern u8 acpi_gbl_disable_ssdt_table_load;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hardware-reduced prototypes. All interfaces that use these macros will
|
* Hardware-reduced prototypes. All interfaces that use these macros will
|
||||||
|
|
Loading…
Reference in New Issue