Merge back earlier ACPICA material for 6.16
commit
8bca84bccb
|
|
@ -120,6 +120,9 @@ void
|
|||
acpi_ex_trace_point(acpi_trace_event_type type,
|
||||
u8 begin, u8 *aml, char *pathname);
|
||||
|
||||
void
|
||||
acpi_ex_trace_args(union acpi_operand_object **params, u32 count);
|
||||
|
||||
/*
|
||||
* exfield - ACPI AML (p-code) execution - field manipulation
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ acpi_ds_method_data_init_args(union acpi_operand_object **params,
|
|||
|
||||
index++;
|
||||
}
|
||||
acpi_ex_trace_args(params, index);
|
||||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "%u args passed to method\n", index));
|
||||
return_ACPI_STATUS(AE_OK);
|
||||
|
|
|
|||
|
|
@ -668,6 +668,8 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
|
|||
union acpi_parse_object *arguments[ACPI_OBJ_NUM_OPERANDS];
|
||||
u32 arg_count = 0;
|
||||
u32 index = walk_state->num_operands;
|
||||
u32 prev_num_operands = walk_state->num_operands;
|
||||
u32 new_num_operands;
|
||||
u32 i;
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR(ds_create_operands, first_arg);
|
||||
|
|
@ -696,6 +698,7 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
|
|||
|
||||
/* Create the interpreter arguments, in reverse order */
|
||||
|
||||
new_num_operands = index;
|
||||
index--;
|
||||
for (i = 0; i < arg_count; i++) {
|
||||
arg = arguments[index];
|
||||
|
|
@ -720,7 +723,11 @@ cleanup:
|
|||
* pop everything off of the operand stack and delete those
|
||||
* objects
|
||||
*/
|
||||
acpi_ds_obj_stack_pop_and_delete(arg_count, walk_state);
|
||||
walk_state->num_operands = (u8)(i);
|
||||
acpi_ds_obj_stack_pop_and_delete(new_num_operands, walk_state);
|
||||
|
||||
/* Restore operand count */
|
||||
walk_state->num_operands = (u8)(prev_num_operands);
|
||||
|
||||
ACPI_EXCEPTION((AE_INFO, status, "While creating Arg %u", index));
|
||||
return_ACPI_STATUS(status);
|
||||
|
|
|
|||
|
|
@ -201,6 +201,12 @@ acpi_ex_read_serial_bus(union acpi_operand_object *obj_desc,
|
|||
function = ACPI_READ;
|
||||
break;
|
||||
|
||||
case ACPI_ADR_SPACE_FIXED_HARDWARE:
|
||||
|
||||
buffer_length = ACPI_FFH_INPUT_BUFFER_SIZE;
|
||||
function = ACPI_READ;
|
||||
break;
|
||||
|
||||
default:
|
||||
return_ACPI_STATUS(AE_AML_INVALID_SPACE_ID);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -147,6 +147,57 @@ acpi_ex_trace_point(acpi_trace_event_type type,
|
|||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ex_trace_args
|
||||
*
|
||||
* PARAMETERS: params - AML method arguments
|
||||
* count - numer of method arguments
|
||||
*
|
||||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Trace any arguments
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
acpi_ex_trace_args(union acpi_operand_object **params, u32 count)
|
||||
{
|
||||
u32 i;
|
||||
|
||||
ACPI_FUNCTION_NAME(ex_trace_args);
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
union acpi_operand_object *obj_desc = params[i];
|
||||
|
||||
if (!i) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_TRACE_POINT, " "));
|
||||
}
|
||||
|
||||
switch (obj_desc->common.type) {
|
||||
case ACPI_TYPE_INTEGER:
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "%llx", obj_desc->integer.value));
|
||||
break;
|
||||
case ACPI_TYPE_STRING:
|
||||
if (!obj_desc->string.length) {
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "NULL"));
|
||||
continue;
|
||||
}
|
||||
if (ACPI_IS_DEBUG_ENABLED(ACPI_LV_TRACE_POINT, _COMPONENT))
|
||||
acpi_ut_print_string(obj_desc->string.pointer, ACPI_UINT8_MAX);
|
||||
break;
|
||||
default:
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "Unknown"));
|
||||
break;
|
||||
}
|
||||
if (i+1 == count) {
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, "\n"));
|
||||
} else {
|
||||
ACPI_DEBUG_PRINT_RAW((ACPI_DB_TRACE_POINT, ", "));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: acpi_ex_start_trace_method
|
||||
|
|
|
|||
|
|
@ -636,7 +636,8 @@ acpi_status
|
|||
acpi_ps_complete_final_op(struct acpi_walk_state *walk_state,
|
||||
union acpi_parse_object *op, acpi_status status)
|
||||
{
|
||||
acpi_status status2;
|
||||
acpi_status return_status = status;
|
||||
u8 ascending = TRUE;
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR(ps_complete_final_op, walk_state);
|
||||
|
||||
|
|
@ -650,7 +651,7 @@ acpi_ps_complete_final_op(struct acpi_walk_state *walk_state,
|
|||
op));
|
||||
do {
|
||||
if (op) {
|
||||
if (walk_state->ascending_callback != NULL) {
|
||||
if (ascending && walk_state->ascending_callback != NULL) {
|
||||
walk_state->op = op;
|
||||
walk_state->op_info =
|
||||
acpi_ps_get_opcode_info(op->common.
|
||||
|
|
@ -672,49 +673,26 @@ acpi_ps_complete_final_op(struct acpi_walk_state *walk_state,
|
|||
}
|
||||
|
||||
if (status == AE_CTRL_TERMINATE) {
|
||||
status = AE_OK;
|
||||
|
||||
/* Clean up */
|
||||
do {
|
||||
if (op) {
|
||||
status2 =
|
||||
acpi_ps_complete_this_op
|
||||
(walk_state, op);
|
||||
if (ACPI_FAILURE
|
||||
(status2)) {
|
||||
return_ACPI_STATUS
|
||||
(status2);
|
||||
}
|
||||
}
|
||||
|
||||
acpi_ps_pop_scope(&
|
||||
(walk_state->
|
||||
parser_state),
|
||||
&op,
|
||||
&walk_state->
|
||||
arg_types,
|
||||
&walk_state->
|
||||
arg_count);
|
||||
|
||||
} while (op);
|
||||
|
||||
return_ACPI_STATUS(status);
|
||||
ascending = FALSE;
|
||||
return_status = AE_CTRL_TERMINATE;
|
||||
}
|
||||
|
||||
else if (ACPI_FAILURE(status)) {
|
||||
|
||||
/* First error is most important */
|
||||
|
||||
(void)
|
||||
acpi_ps_complete_this_op(walk_state,
|
||||
op);
|
||||
return_ACPI_STATUS(status);
|
||||
ascending = FALSE;
|
||||
return_status = status;
|
||||
}
|
||||
}
|
||||
|
||||
status2 = acpi_ps_complete_this_op(walk_state, op);
|
||||
if (ACPI_FAILURE(status2)) {
|
||||
return_ACPI_STATUS(status2);
|
||||
status = acpi_ps_complete_this_op(walk_state, op);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ascending = FALSE;
|
||||
if (ACPI_SUCCESS(return_status) ||
|
||||
return_status == AE_CTRL_TERMINATE) {
|
||||
return_status = status;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -724,5 +702,5 @@ acpi_ps_complete_final_op(struct acpi_walk_state *walk_state,
|
|||
|
||||
} while (op);
|
||||
|
||||
return_ACPI_STATUS(status);
|
||||
return_ACPI_STATUS(return_status);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20240827
|
||||
#define ACPI_CA_VERSION 0x20241212
|
||||
|
||||
#include <acpi/acconfig.h>
|
||||
#include <acpi/actypes.h>
|
||||
|
|
|
|||
|
|
@ -1024,17 +1024,18 @@ struct acpi_einj_entry {
|
|||
/* Values for Action field above */
|
||||
|
||||
enum acpi_einj_actions {
|
||||
ACPI_EINJ_BEGIN_OPERATION = 0,
|
||||
ACPI_EINJ_GET_TRIGGER_TABLE = 1,
|
||||
ACPI_EINJ_SET_ERROR_TYPE = 2,
|
||||
ACPI_EINJ_GET_ERROR_TYPE = 3,
|
||||
ACPI_EINJ_END_OPERATION = 4,
|
||||
ACPI_EINJ_EXECUTE_OPERATION = 5,
|
||||
ACPI_EINJ_CHECK_BUSY_STATUS = 6,
|
||||
ACPI_EINJ_GET_COMMAND_STATUS = 7,
|
||||
ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 8,
|
||||
ACPI_EINJ_GET_EXECUTE_TIMINGS = 9,
|
||||
ACPI_EINJ_ACTION_RESERVED = 10, /* 10 and greater are reserved */
|
||||
ACPI_EINJ_BEGIN_OPERATION = 0x0,
|
||||
ACPI_EINJ_GET_TRIGGER_TABLE = 0x1,
|
||||
ACPI_EINJ_SET_ERROR_TYPE = 0x2,
|
||||
ACPI_EINJ_GET_ERROR_TYPE = 0x3,
|
||||
ACPI_EINJ_END_OPERATION = 0x4,
|
||||
ACPI_EINJ_EXECUTE_OPERATION = 0x5,
|
||||
ACPI_EINJ_CHECK_BUSY_STATUS = 0x6,
|
||||
ACPI_EINJ_GET_COMMAND_STATUS = 0x7,
|
||||
ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 0x8,
|
||||
ACPI_EINJ_GET_EXECUTE_TIMINGS = 0x9,
|
||||
ACPI_EINJV2_GET_ERROR_TYPE = 0x11,
|
||||
ACPI_EINJ_ACTION_RESERVED = 0x12, /* 0x12 and greater are reserved */
|
||||
ACPI_EINJ_TRIGGER_ERROR = 0xFF /* Except for this value */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ struct acpi_srat_gicc_affinity {
|
|||
|
||||
#define ACPI_SRAT_GICC_ENABLED (1) /* 00: Use affinity structure */
|
||||
|
||||
/* 4: GCC ITS Affinity (ACPI 6.2) */
|
||||
/* 4: GIC ITS Affinity (ACPI 6.2) */
|
||||
|
||||
struct acpi_srat_gic_its_affinity {
|
||||
struct acpi_subtable_header header;
|
||||
|
|
|
|||
Loading…
Reference in New Issue