Commit ab80f770 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'acpica'

Merge ACPICA updates (20250807 release material with a few fixes on top)
for 6.18-rc1:

 - Add SoundWire File Table (SWFT) signature to ACPICA (Maciej Strozek)

 - Rearrange local variable definition involving #ifdef in ACPICA to
   avoid using uninitialized variables (Zhe Qiao)

 - Allow ACPICA to skip Global Lock initialization (Huacai Chen)

 - Apply ACPI_NONSTRING in more places in ACPICA and fix two regressions
   related to incorrect ACPI_NONSTRING usage (Ahmed Salem)

 - Fix printing CDAT table header when dissasebling CDAT AML (Ahmed
   Salem)

 - Use acpi_ds_clear_operands() in acpi_ds_call_control_method() in
   ACPICA (Hans de Goede)

 - Update dsmethod.c in ACPICA to address unused variable warning (Saket
   Dumbre)

 - Print error messages in ACPICA for too few or too many control method
   arguments (Saket Dumbre)

 - Update ACPICA version to 20250807 (Saket Dumbre)

 - Fix largest possible resource descriptor index in ACPICA (Dmitry
   Antipov)

 - Add Back-Invalidate restriction to CXL Window for CEDT in ACPICA
   (Davidlohr Bueso).

 - Add the package type to acceptable Arg3 types for _DSM in ACPICA
   because ACPI_TYPE_ANY does not cover it (Saket Dumbre)

 - Fix return values in ap_is_valid_checksum() in the acpidump utility
   in ACPICA (Kaushlendra Kumar)

* acpica:
  ACPICA: acpidump: fix return values in ap_is_valid_checksum()
  ACPICA: ACPI_TYPE_ANY does not include the package type
  ACPICA: CEDT: Add Back-Invalidate restriction to CXL Window
  ACPICA: Fix largest possible resource descriptor index
  ACPICA: Update version to 20250807
  ACPICA: Print error messages for too few or too many arguments
  ACPICA: Update dsmethod.c to get rid of unused variable warning
  ACPICA: dispatcher: Use acpi_ds_clear_operands() in acpi_ds_call_control_method()
  ACPICA: Debugger: drop ACPI_NONSTRING attribute from name_seg
  ACPICA: acpidump: drop ACPI_NONSTRING attribute from file_name
  ACPICA: iASL: Fix printing CDAT table header
  ACPICA: Apply ACPI_NONSTRING
  ACPICA: Allow to skip Global Lock initialization
  ACPICA: Change the compilation conditions
  ACPICA: Remove redundant "#ifdef" definitions
  ACPICA: Modify variable definition position
  ACPICA: Add SoundWire File Table (SWFT) signature
parents 496f9372 54ba9071
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ struct acpi_db_argument_info {
struct acpi_db_execute_walk {
	u32 count;
	u32 max_count;
	char name_seg[ACPI_NAMESEG_SIZE + 1] ACPI_NONSTRING;
	char name_seg[ACPI_NAMESEG_SIZE + 1];
};

#define PARAM_LIST(pl)                  pl
+1 −1
Original line number Diff line number Diff line
@@ -1141,7 +1141,7 @@ struct acpi_port_info {
#define ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION   0x91
#define ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG     0x92
#define ACPI_RESOURCE_NAME_CLOCK_INPUT          0x93
#define ACPI_RESOURCE_NAME_LARGE_MAX            0x94
#define ACPI_RESOURCE_NAME_LARGE_MAX            0x93

/*****************************************************************************
 *
+2 −1
Original line number Diff line number Diff line
@@ -450,7 +450,8 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {

	{{"_DSM",
	  METHOD_4ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
		       ACPI_TYPE_ANY) | ARG_COUNT_IS_MINIMUM,
		       ACPI_TYPE_ANY | ACPI_TYPE_PACKAGE) |
		       ARG_COUNT_IS_MINIMUM,
	  METHOD_RETURNS(ACPI_RTYPE_ALL)}},	/* Must return a value, but it can be of any type */

	{{"_DSS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+10 −11
Original line number Diff line number Diff line
@@ -462,7 +462,6 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
	struct acpi_walk_state *next_walk_state = NULL;
	union acpi_operand_object *obj_desc;
	struct acpi_evaluate_info *info;
	u32 i;

	ACPI_FUNCTION_TRACE_PTR(ds_call_control_method, this_walk_state);

@@ -484,10 +483,17 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
	}

	if (this_walk_state->num_operands < obj_desc->method.param_count) {
		ACPI_ERROR((AE_INFO, "Missing argument for method [%4.4s]",
		ACPI_ERROR((AE_INFO, "Missing argument(s) for method [%4.4s]",
			    acpi_ut_get_node_name(method_node)));

		return_ACPI_STATUS(AE_AML_UNINITIALIZED_ARG);
		return_ACPI_STATUS(AE_AML_TOO_FEW_ARGUMENTS);
	}

	else if (this_walk_state->num_operands > obj_desc->method.param_count) {
		ACPI_ERROR((AE_INFO, "Too many arguments for method [%4.4s]",
			    acpi_ut_get_node_name(method_node)));

		return_ACPI_STATUS(AE_AML_TOO_MANY_ARGUMENTS);
	}

	/* Init for new method, possibly wait on method mutex */
@@ -546,14 +552,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
	 * Delete the operands on the previous walkstate operand stack
	 * (they were copied to new objects)
	 */
	for (i = 0; i < obj_desc->method.param_count; i++) {
		acpi_ut_remove_reference(this_walk_state->operands[i]);
		this_walk_state->operands[i] = NULL;
	}

	/* Clear the operand stack */

	this_walk_state->num_operands = 0;
	acpi_ds_clear_operands(this_walk_state);

	ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
			  "**** Begin nested execution of [%4.4s] **** WalkState=%p\n",
+4 −0
Original line number Diff line number Diff line
@@ -42,6 +42,10 @@ acpi_status acpi_ev_init_global_lock_handler(void)
		return_ACPI_STATUS(AE_OK);
	}

	if (!acpi_gbl_use_global_lock) {
		return_ACPI_STATUS(AE_OK);
	}

	/* Attempt installation of the global lock handler */

	status = acpi_install_fixed_event_handler(ACPI_EVENT_GLOBAL,
Loading