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

Commit 57e664cf authored by Bob Moore's avatar Bob Moore Committed by Len Brown
Browse files

ACPICA: Update for Reference ACPI_OPERAND_OBJECT



1) Add new field for use by DdbHandle (Value)
2) Use ACPI_CAST_INDIRECT_PTR to eliminate strict type warnings
3) Cleanup debug output

Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLin Ming <ming.m.lin@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 93851b4d
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -741,10 +741,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
							      obj_desc->
							      reference.offset,
							      walk_state,
							      ACPI_CAST_INDIRECT_PTR
							      (struct
							       acpi_namespace_node
							       **)&obj_desc->
							      reference.object);
							       acpi_namespace_node,
							       &obj_desc->
							       reference.
							       object));
#endif
			break;

@@ -760,10 +762,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
							      obj_desc->
							      reference.offset,
							      walk_state,
							      ACPI_CAST_INDIRECT_PTR
							      (struct
							       acpi_namespace_node
							       **)&obj_desc->
							      reference.object);
							       acpi_namespace_node,
							       &obj_desc->
							       reference.
							       object));
#endif
			break;

+3 −3
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ acpi_ex_add_table(u32 table_index,

	/* Install the new table into the local data structures */

	obj_desc->reference.object = ACPI_TO_POINTER(table_index);
	obj_desc->reference.value = table_index;

	/* Add the table to the namespace */

@@ -505,9 +505,9 @@ acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle)
		return_ACPI_STATUS(AE_BAD_PARAMETER);
	}

	/* Get the table index from the ddb_handle (acpi_size for 64-bit case) */
	/* Get the table index from the ddb_handle */

	table_index = (u32) (acpi_size) table_desc->reference.object;
	table_index = table_desc->reference.value;

	/* Invoke table handler if present */

+14 −15
Original line number Diff line number Diff line
@@ -214,10 +214,11 @@ static struct acpi_exdump_info acpi_ex_dump_index_field[5] = {
	{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(index_field.data_obj), "Data Object"}
};

static struct acpi_exdump_info acpi_ex_dump_reference[7] = {
static struct acpi_exdump_info acpi_ex_dump_reference[8] = {
	{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_reference), NULL},
	{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(reference.target_type), "Target Type"},
	{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.offset), "Offset"},
	{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.value), "Value"},
	{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.object), "Object Desc"},
	{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.node), "Node"},
	{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.where), "Where"},
@@ -497,24 +498,24 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
		switch (obj_desc->reference.opcode) {
		case AML_DEBUG_OP:

			acpi_os_printf("Reference: Debug\n");
			acpi_os_printf("Reference: [Debug]\n");
			break;

		case AML_INDEX_OP:

			acpi_os_printf("Reference: Index %p\n",
			acpi_os_printf("Reference: [Index] %p\n",
				       obj_desc->reference.object);
			break;

		case AML_LOAD_OP:

			acpi_os_printf("Reference: [DdbHandle] TableIndex %p\n",
				       obj_desc->reference.object);
			acpi_os_printf("Reference: [DdbHandle] TableIndex %X\n",
				       obj_desc->reference.value);
			break;

		case AML_REF_OF_OP:

			acpi_os_printf("Reference: (RefOf) %p [%s]\n",
			acpi_os_printf("Reference: [RefOf] %p [%s]\n",
				       obj_desc->reference.object,
				       acpi_ut_get_type_name(((union
							       acpi_operand_object
@@ -526,7 +527,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)

		case AML_ARG_OP:

			acpi_os_printf("Reference: Arg%d",
			acpi_os_printf("Reference: [Arg%d]",
				       obj_desc->reference.offset);

			if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
@@ -544,7 +545,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)

		case AML_LOCAL_OP:

			acpi_os_printf("Reference: Local%d",
			acpi_os_printf("Reference: [Local%d]",
				       obj_desc->reference.offset);

			if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
@@ -562,7 +563,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)

		case AML_INT_NAMEPATH_OP:

			acpi_os_printf("Reference: Namepath %X [%4.4s]\n",
			acpi_os_printf("Reference: [Namepath] %X [%4.4s]\n",
				       obj_desc->reference.node->name.integer,
				       obj_desc->reference.node->name.ascii);
			break;
@@ -883,13 +884,11 @@ static void acpi_ex_dump_reference_obj(union acpi_operand_object *obj_desc)
			acpi_os_printf(" Target: %p",
				       obj_desc->reference.object);
			if (obj_desc->reference.opcode == AML_LOAD_OP) {
				/*
				 * For DDBHandle reference,
				 * obj_desc->Reference.Object is the table index
				 */
				acpi_os_printf(" [DDBHandle]\n");
				acpi_os_printf(" [DDBHandle] Table Index: %X\n",
					       obj_desc->reference.value);
			} else {
				acpi_os_printf(" [%s]\n",
				acpi_os_printf(" Target: %p [%s]\n",
					       obj_desc->reference.object,
					       acpi_ut_get_type_name(((union
								       acpi_operand_object
								       *)
+2 −2
Original line number Diff line number Diff line
@@ -193,8 +193,8 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,

		if (source_desc->reference.opcode == AML_LOAD_OP) {	/* Load and load_table */
			ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
					      " Table OwnerId %p\n",
					      source_desc->reference.object));
					      " Table Index %X\n",
					      source_desc->reference.value));
			break;
		}

+1 −0
Original line number Diff line number Diff line
@@ -318,6 +318,7 @@ struct acpi_object_reference {
	struct acpi_namespace_node *node;
	union acpi_operand_object **where;
	u32 offset;		/* Used for arg_op, local_op, and index_op */
	u32 value;		/* Used for ddb_handle */
};

/*