Skip to content

Commit 0e8ac1d

Browse files
committed
Merge branch 'acpica'
Merge ACPICA changes for 6.20-rc1/7.0-rc1: - Update the ACPICA code in the kernel to upstream version 20251212 which includes the following changes: * Add support for new ACPI table DTPR (Michal Camacho Romero) * Release objects with acpi_ut_delete_object_desc() (Zilin Guan) * Add UUIDs for Microsoft fan extensions and UUIDs associated with TPM 2.0 devices (Armin Wolf) * Fix NULL pointer dereference in acpi_ev_address_space_dispatch() (Alexey Simakov) * Add KEYP ACPI table definition (Dave Jiang) * Add support for the Microsoft display mux _OSI string (Armin Wolf) * Add definitions for the IOVT ACPI table (Xianglai Li) * Abort AML bytecode execution on AML_FATAL_OP (Armin Wolf) * Include all fields in subtable type1 for PPTT (Ben Horgan) * Add GICv5 MADT structures and Arm IORT IWB node definitions (Jose Marinho) * Update Parameter Block structure for RAS2 and add a new flag in Memory Affinity Structure for SRAT (Pawel Chmielewski) * Add _VDM (Voltage Domain) object (Pawel Chmielewski) * acpica: (26 commits) ACPICA: Refactor for TPR Base/Limit registers bitmasks ACPICA: Replace TPRn Base and Limit registers ACPICA: Logfile: Changes for version 20251212 ACPICA: Align comments in TPRn-related structures ACPICA: Cleanup comments and DTPR Table handle functions ACPICA: Verify DTPR and TPR Instance buffer pointers ACPICA: Fix Segmentation Fault error related to DTPR ACPICA: Create auxiliary ACPI_TPR_AUX_SR structure for iASL compiler ACPICA: ACPI 6.6: Add _VDM (Voltage Domain) object ACPICA: actbl3.h: ACPI 6.6: SRAT: New flag in Memory Affinity Structure ACPICA: actbl2.h: ACPI 6.6: RAS2: Update Parameter Block structure ACPICA: Add Arm IORT IWB node definitions ACPICA: Add GICv5 MADT structures ACPICA: Fix asltests using the Fatal() opcode ACPICA: ACPI 6.4: PPTT: include all fields in subtable type1 ACPICA: Abort AML bytecode execution when executing AML_FATAL_OP ACPICA: Define DTPR structure related info tables and data template ACPICA: Add DTPR table support for the ASL compiler ACPICA: iASL: Add definitions for the IOVT table ACPICA: Add support for the Microsoft display mux _OSI string ...
2 parents 83e2908 + e8f614d commit 0e8ac1d

11 files changed

Lines changed: 493 additions & 37 deletions

File tree

drivers/acpi/acpica/acpredef.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
587587
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (var Ints) */
588588
PACKAGE_INFO(ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
589589

590+
{{"_VDM", METHOD_0ARGS,
591+
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
592+
590593
{{"_HRV", METHOD_0ARGS,
591594
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
592595

drivers/acpi/acpica/evregion.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,9 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
163163
return_ACPI_STATUS(AE_NOT_EXIST);
164164
}
165165

166-
if (region_obj->region.space_id == ACPI_ADR_SPACE_PLATFORM_COMM) {
166+
if (field_obj
167+
&& region_obj->region.space_id ==
168+
ACPI_ADR_SPACE_PLATFORM_COMM) {
167169
struct acpi_pcc_info *ctx =
168170
handler_desc->address_space.context;
169171

drivers/acpi/acpica/exoparg3.c

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <acpi/acpi.h>
1111
#include "accommon.h"
1212
#include "acinterp.h"
13+
#include <acpi/acoutput.h>
1314
#include "acparser.h"
1415
#include "amlcode.h"
1516

@@ -51,37 +52,38 @@ ACPI_MODULE_NAME("exoparg3")
5152
acpi_status acpi_ex_opcode_3A_0T_0R(struct acpi_walk_state *walk_state)
5253
{
5354
union acpi_operand_object **operand = &walk_state->operands[0];
54-
struct acpi_signal_fatal_info *fatal;
55-
acpi_status status = AE_OK;
55+
struct acpi_signal_fatal_info fatal;
5656

5757
ACPI_FUNCTION_TRACE_STR(ex_opcode_3A_0T_0R,
5858
acpi_ps_get_opcode_name(walk_state->opcode));
5959

6060
switch (walk_state->opcode) {
6161
case AML_FATAL_OP: /* Fatal (fatal_type fatal_code fatal_arg) */
6262

63-
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
64-
"FatalOp: Type %X Code %X Arg %X "
65-
"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n",
66-
(u32)operand[0]->integer.value,
67-
(u32)operand[1]->integer.value,
68-
(u32)operand[2]->integer.value));
69-
70-
fatal = ACPI_ALLOCATE(sizeof(struct acpi_signal_fatal_info));
71-
if (fatal) {
72-
fatal->type = (u32) operand[0]->integer.value;
73-
fatal->code = (u32) operand[1]->integer.value;
74-
fatal->argument = (u32) operand[2]->integer.value;
75-
}
63+
fatal.type = (u32)operand[0]->integer.value;
64+
fatal.code = (u32)operand[1]->integer.value;
65+
fatal.argument = (u32)operand[2]->integer.value;
7666

77-
/* Always signal the OS! */
67+
ACPI_BIOS_ERROR((AE_INFO,
68+
"Fatal ACPI BIOS error (Type 0x%X Code 0x%X Arg 0x%X)\n",
69+
fatal.type, fatal.code, fatal.argument));
7870

79-
status = acpi_os_signal(ACPI_SIGNAL_FATAL, fatal);
71+
/* Always signal the OS! */
8072

81-
/* Might return while OS is shutting down, just continue */
73+
acpi_os_signal(ACPI_SIGNAL_FATAL, &fatal);
8274

83-
ACPI_FREE(fatal);
84-
goto cleanup;
75+
#ifndef ACPI_CONTINUE_ON_FATAL
76+
/*
77+
* Might return while OS is shutting down, so abort the AML execution
78+
* by returning an error.
79+
*/
80+
return_ACPI_STATUS(AE_ERROR);
81+
#else
82+
/*
83+
* The alstests require that the Fatal() opcode does not return an error.
84+
*/
85+
return_ACPI_STATUS(AE_OK);
86+
#endif
8587

8688
case AML_EXTERNAL_OP:
8789
/*
@@ -93,21 +95,16 @@ acpi_status acpi_ex_opcode_3A_0T_0R(struct acpi_walk_state *walk_state)
9395
* wrong if an external opcode ever gets here.
9496
*/
9597
ACPI_ERROR((AE_INFO, "Executed External Op"));
96-
status = AE_OK;
97-
goto cleanup;
98+
99+
return_ACPI_STATUS(AE_OK);
98100

99101
default:
100102

101103
ACPI_ERROR((AE_INFO, "Unknown AML opcode 0x%X",
102104
walk_state->opcode));
103105

104-
status = AE_AML_BAD_OPCODE;
105-
goto cleanup;
106+
return_ACPI_STATUS(AE_AML_BAD_OPCODE);
106107
}
107-
108-
cleanup:
109-
110-
return_ACPI_STATUS(status);
111108
}
112109

113110
/*******************************************************************************

drivers/acpi/acpica/nsxfname.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ acpi_status acpi_install_method(u8 *buffer)
601601
error_exit:
602602

603603
ACPI_FREE(aml_buffer);
604-
ACPI_FREE(method_obj);
604+
acpi_ut_delete_object_desc(method_obj);
605605
return (status);
606606
}
607607
ACPI_EXPORT_SYMBOL(acpi_install_method)

drivers/acpi/acpica/utobject.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ union acpi_operand_object *acpi_ut_create_package_object(u32 count)
148148
package_elements = ACPI_ALLOCATE_ZEROED(((acpi_size)count +
149149
1) * sizeof(void *));
150150
if (!package_elements) {
151-
ACPI_FREE(package_desc);
151+
acpi_ut_delete_object_desc(package_desc);
152152
return_PTR(NULL);
153153
}
154154

drivers/acpi/acpica/utosi.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ static struct acpi_interface_info acpi_default_supported_interfaces[] = {
9292
{"Processor Device", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
9393
{"3.0 Thermal Model", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
9494
{"3.0 _SCP Extensions", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
95-
{"Processor Aggregator Device", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0}
95+
{"Processor Aggregator Device", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0},
96+
97+
/* See https://learn.microsoft.com/en-us/windows-hardware/drivers/display/automatic-display-switch */
98+
99+
{"DisplayMux", NULL, ACPI_OSI_OPTIONAL_FEATURE, 0}
96100
};
97101

98102
/*******************************************************************************

include/acpi/acpixf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
/* Current ACPICA subsystem version in YYYYMMDD format */
1414

15-
#define ACPI_CA_VERSION 0x20250807
15+
#define ACPI_CA_VERSION 0x20251212
1616

1717
#include <acpi/acconfig.h>
1818
#include <acpi/actypes.h>

0 commit comments

Comments
 (0)