ACPI: add "acpi_no_auto_ssdt" bootparam
Len Brown
reviewerPATCH 1/1 ACPI: add "acpi_no_auto_ssdt" bootparam
Subject: ACPI: add "acpi_no_auto_ssdt" bootparam
From: Len Brown <[email protected]>
"acpi_no_auto_ssdt" prevents Linux from automatically loading all the SSDTs listed in the RSDT/XSDT.
This is needed for debugging. In particular,
it allows a DSDT override to optionally be a DSDT+SSDT override.
http://bugzilla.kernel.org/show_bug.cgi?id=3774
Signed-off-by Len Brown <[email protected]>
----
tbxface.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
drivers/acpi/tables/tbxface.c +24 -0
@@ -52,6 +52,8 @@ ACPI_MODULE_NAME("tbxface")/* Local prototypes */ static acpi_status acpi_tb_load_namespace (void ); +static int no_auto_ssdt; +/******************************************************************************* * * FUNCTION: acpi_allocate_root_table
@@ -536,6 +538,10 @@ static acpi_status acpi_tb_load_namespace(void)ACPI_INFO ((AE_INFO ,"Table DSDT replaced by host OS" ));acpi_tb_print_table_header (0 , table); + +if (no_auto_ssdt ==0 ) { +printk (KERN_WARNING "ACPI: DSDT override uses original SSDTs unless \"acpi_no_auto_ssdt\"" ); + } } status =
@@ -577,6 +583,11 @@ static acpi_status acpi_tb_load_namespace(void)continue ; } +if (no_auto_ssdt) { +printk (KERN_WARNING "ACPI: SSDT ignored due to \"acpi_no_auto_ssdt\"\n" ); +continue ; + } +/* Ignore errors while loading tables, get as many as possible */ (void )acpi_ut_release_mutex (ACPI_MTX_TABLES );
@@ -622,3 +633,16 @@ acpi_status acpi_load_tables(void) }ACPI_EXPORT_SYMBOL (acpi_load_tables) + + +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); +