Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08e1d7c0 authored by Lv Zheng's avatar Lv Zheng Committed by Rafael J. Wysocki
Browse files

ACPICA: Enable auto-serialization as a default kernel behavior.

The previous commit "ACPICA: Add auto-serialization support for ill-behaved
control methods" introduced the auto-serialization facility as a workaround
that can be enabled by "acpi_auto_serialize":

This feature marks control methods that create named objects as "serialized"
to avoid unwanted AE_ALREADY_EXISTS control method evaluation failures.

Enable method auto-serialization as the default kernel behavior.  The new kernel
parameter is also changed from "acpi_auto_serialize" to "acpi_no_auto_serialize"
to reflect the default behavior.

References: https://bugzilla.kernel.org/show_bug.cgi?id=52191
References: http://www.spinics.net/lists/linux-acpi/msg49496.html


Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent d1825579
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -229,13 +229,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
			use by PCI
			Format: <irq>,<irq>...

	acpi_auto_serialize	[HW,ACPI]
			Enable auto-serialization of AML methods
	acpi_no_auto_serialize	[HW,ACPI]
			Disable auto-serialization of AML methods
			AML control methods that contain the opcodes to create
			named objects will be marked as "Serialized" by the
			auto-serialization feature.
			This feature is disabled by default.
			This option allows to turn on the feature.
			This feature is enabled by default.
			This option allows to turn off the feature.

	acpi_no_auto_ssdt	[HW,ACPI] Disable automatic loading of SSDT

+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpreter_slack, FALSE);
 * that create named objects are marked Serialized in order to prevent
 * possible run-time problems if they are entered by more than one thread.
 */
ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_methods, FALSE);
ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_methods, TRUE);

/*
 * Create the predefined _OSI method in the namespace? Default is TRUE
+6 −6
Original line number Diff line number Diff line
@@ -1540,20 +1540,20 @@ static int __init osi_setup(char *str)
__setup("acpi_osi=", osi_setup);

/*
 * Enable the auto-serialization of named objects creation methods.
 * Disable the auto-serialization of named objects creation methods.
 *
 * This feature is disabled by default.  It marks the AML control methods
 * This feature is enabled by default.  It marks the AML control methods
 * that contain the opcodes to create named objects as "Serialized".
 */
static int __init acpi_auto_serialize_setup(char *str)
static int __init acpi_no_auto_serialize_setup(char *str)
{
	acpi_gbl_auto_serialize_methods = TRUE;
	pr_info("ACPI: auto-serialization enabled\n");
	acpi_gbl_auto_serialize_methods = FALSE;
	pr_info("ACPI: auto-serialization disabled\n");

	return 1;
}

__setup("acpi_auto_serialize", acpi_auto_serialize_setup);
__setup("acpi_no_auto_serialize", acpi_no_auto_serialize_setup);

/* Check of resource interference between native drivers and ACPI
 * OperationRegions (SystemIO and System Memory only).