diff options
Diffstat (limited to 'drivers/acpi/executer/exresolv.c')
-rw-r--r-- | drivers/acpi/executer/exresolv.c | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/drivers/acpi/executer/exresolv.c b/drivers/acpi/executer/exresolv.c index b35f7c817acf..89571b92a522 100644 --- a/drivers/acpi/executer/exresolv.c +++ b/drivers/acpi/executer/exresolv.c | |||
@@ -47,7 +47,6 @@ | |||
47 | #include <acpi/acdispat.h> | 47 | #include <acpi/acdispat.h> |
48 | #include <acpi/acinterp.h> | 48 | #include <acpi/acinterp.h> |
49 | #include <acpi/acnamesp.h> | 49 | #include <acpi/acnamesp.h> |
50 | #include <acpi/acparser.h> | ||
51 | 50 | ||
52 | #define _COMPONENT ACPI_EXECUTER | 51 | #define _COMPONENT ACPI_EXECUTER |
53 | ACPI_MODULE_NAME("exresolv") | 52 | ACPI_MODULE_NAME("exresolv") |
@@ -141,7 +140,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr, | |||
141 | acpi_status status = AE_OK; | 140 | acpi_status status = AE_OK; |
142 | union acpi_operand_object *stack_desc; | 141 | union acpi_operand_object *stack_desc; |
143 | union acpi_operand_object *obj_desc = NULL; | 142 | union acpi_operand_object *obj_desc = NULL; |
144 | u16 opcode; | 143 | u8 ref_type; |
145 | 144 | ||
146 | ACPI_FUNCTION_TRACE(ex_resolve_object_to_value); | 145 | ACPI_FUNCTION_TRACE(ex_resolve_object_to_value); |
147 | 146 | ||
@@ -152,19 +151,19 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr, | |||
152 | switch (ACPI_GET_OBJECT_TYPE(stack_desc)) { | 151 | switch (ACPI_GET_OBJECT_TYPE(stack_desc)) { |
153 | case ACPI_TYPE_LOCAL_REFERENCE: | 152 | case ACPI_TYPE_LOCAL_REFERENCE: |
154 | 153 | ||
155 | opcode = stack_desc->reference.opcode; | 154 | ref_type = stack_desc->reference.class; |
156 | 155 | ||
157 | switch (opcode) { | 156 | switch (ref_type) { |
158 | case AML_LOCAL_OP: | 157 | case ACPI_REFCLASS_LOCAL: |
159 | case AML_ARG_OP: | 158 | case ACPI_REFCLASS_ARG: |
160 | 159 | ||
161 | /* | 160 | /* |
162 | * Get the local from the method's state info | 161 | * Get the local from the method's state info |
163 | * Note: this increments the local's object reference count | 162 | * Note: this increments the local's object reference count |
164 | */ | 163 | */ |
165 | status = acpi_ds_method_data_get_value(opcode, | 164 | status = acpi_ds_method_data_get_value(ref_type, |
166 | stack_desc-> | 165 | stack_desc-> |
167 | reference.offset, | 166 | reference.value, |
168 | walk_state, | 167 | walk_state, |
169 | &obj_desc); | 168 | &obj_desc); |
170 | if (ACPI_FAILURE(status)) { | 169 | if (ACPI_FAILURE(status)) { |
@@ -173,7 +172,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr, | |||
173 | 172 | ||
174 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, | 173 | ACPI_DEBUG_PRINT((ACPI_DB_EXEC, |
175 | "[Arg/Local %X] ValueObj is %p\n", | 174 | "[Arg/Local %X] ValueObj is %p\n", |
176 | stack_desc->reference.offset, | 175 | stack_desc->reference.value, |
177 | obj_desc)); | 176 | obj_desc)); |
178 | 177 | ||
179 | /* | 178 | /* |
@@ -184,7 +183,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr, | |||
184 | *stack_ptr = obj_desc; | 183 | *stack_ptr = obj_desc; |
185 | break; | 184 | break; |
186 | 185 | ||
187 | case AML_INDEX_OP: | 186 | case ACPI_REFCLASS_INDEX: |
188 | 187 | ||
189 | switch (stack_desc->reference.target_type) { | 188 | switch (stack_desc->reference.target_type) { |
190 | case ACPI_TYPE_BUFFER_FIELD: | 189 | case ACPI_TYPE_BUFFER_FIELD: |
@@ -239,15 +238,15 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr, | |||
239 | } | 238 | } |
240 | break; | 239 | break; |
241 | 240 | ||
242 | case AML_REF_OF_OP: | 241 | case ACPI_REFCLASS_REFOF: |
243 | case AML_DEBUG_OP: | 242 | case ACPI_REFCLASS_DEBUG: |
244 | case AML_LOAD_OP: | 243 | case ACPI_REFCLASS_TABLE: |
245 | 244 | ||
246 | /* Just leave the object as-is, do not dereference */ | 245 | /* Just leave the object as-is, do not dereference */ |
247 | 246 | ||
248 | break; | 247 | break; |
249 | 248 | ||
250 | case AML_INT_NAMEPATH_OP: /* Reference to a named object */ | 249 | case ACPI_REFCLASS_NAME: /* Reference to a named object */ |
251 | 250 | ||
252 | /* Dereference the name */ | 251 | /* Dereference the name */ |
253 | 252 | ||
@@ -273,8 +272,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr, | |||
273 | default: | 272 | default: |
274 | 273 | ||
275 | ACPI_ERROR((AE_INFO, | 274 | ACPI_ERROR((AE_INFO, |
276 | "Unknown Reference opcode %X (%s) in %p", | 275 | "Unknown Reference type %X in %p", ref_type, |
277 | opcode, acpi_ps_get_opcode_name(opcode), | ||
278 | stack_desc)); | 276 | stack_desc)); |
279 | status = AE_AML_INTERNAL; | 277 | status = AE_AML_INTERNAL; |
280 | break; | 278 | break; |
@@ -388,13 +386,13 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
388 | * traversing the list of possibly many nested references. | 386 | * traversing the list of possibly many nested references. |
389 | */ | 387 | */ |
390 | while (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_LOCAL_REFERENCE) { | 388 | while (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_LOCAL_REFERENCE) { |
391 | switch (obj_desc->reference.opcode) { | 389 | switch (obj_desc->reference.class) { |
392 | case AML_REF_OF_OP: | 390 | case ACPI_REFCLASS_REFOF: |
393 | case AML_INT_NAMEPATH_OP: | 391 | case ACPI_REFCLASS_NAME: |
394 | 392 | ||
395 | /* Dereference the reference pointer */ | 393 | /* Dereference the reference pointer */ |
396 | 394 | ||
397 | if (obj_desc->reference.opcode == AML_REF_OF_OP) { | 395 | if (obj_desc->reference.class == ACPI_REFCLASS_REFOF) { |
398 | node = obj_desc->reference.object; | 396 | node = obj_desc->reference.object; |
399 | } else { /* AML_INT_NAMEPATH_OP */ | 397 | } else { /* AML_INT_NAMEPATH_OP */ |
400 | 398 | ||
@@ -429,7 +427,7 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
429 | } | 427 | } |
430 | break; | 428 | break; |
431 | 429 | ||
432 | case AML_INDEX_OP: | 430 | case ACPI_REFCLASS_INDEX: |
433 | 431 | ||
434 | /* Get the type of this reference (index into another object) */ | 432 | /* Get the type of this reference (index into another object) */ |
435 | 433 | ||
@@ -455,22 +453,22 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
455 | } | 453 | } |
456 | break; | 454 | break; |
457 | 455 | ||
458 | case AML_LOAD_OP: | 456 | case ACPI_REFCLASS_TABLE: |
459 | 457 | ||
460 | type = ACPI_TYPE_DDB_HANDLE; | 458 | type = ACPI_TYPE_DDB_HANDLE; |
461 | goto exit; | 459 | goto exit; |
462 | 460 | ||
463 | case AML_LOCAL_OP: | 461 | case ACPI_REFCLASS_LOCAL: |
464 | case AML_ARG_OP: | 462 | case ACPI_REFCLASS_ARG: |
465 | 463 | ||
466 | if (return_desc) { | 464 | if (return_desc) { |
467 | status = | 465 | status = |
468 | acpi_ds_method_data_get_value(obj_desc-> | 466 | acpi_ds_method_data_get_value(obj_desc-> |
469 | reference. | 467 | reference. |
470 | opcode, | 468 | class, |
471 | obj_desc-> | 469 | obj_desc-> |
472 | reference. | 470 | reference. |
473 | offset, | 471 | value, |
474 | walk_state, | 472 | walk_state, |
475 | &obj_desc); | 473 | &obj_desc); |
476 | if (ACPI_FAILURE(status)) { | 474 | if (ACPI_FAILURE(status)) { |
@@ -481,10 +479,10 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
481 | status = | 479 | status = |
482 | acpi_ds_method_data_get_node(obj_desc-> | 480 | acpi_ds_method_data_get_node(obj_desc-> |
483 | reference. | 481 | reference. |
484 | opcode, | 482 | class, |
485 | obj_desc-> | 483 | obj_desc-> |
486 | reference. | 484 | reference. |
487 | offset, | 485 | value, |
488 | walk_state, | 486 | walk_state, |
489 | &node); | 487 | &node); |
490 | if (ACPI_FAILURE(status)) { | 488 | if (ACPI_FAILURE(status)) { |
@@ -499,7 +497,7 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
499 | } | 497 | } |
500 | break; | 498 | break; |
501 | 499 | ||
502 | case AML_DEBUG_OP: | 500 | case ACPI_REFCLASS_DEBUG: |
503 | 501 | ||
504 | /* The Debug Object is of type "DebugObject" */ | 502 | /* The Debug Object is of type "DebugObject" */ |
505 | 503 | ||
@@ -509,8 +507,8 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, | |||
509 | default: | 507 | default: |
510 | 508 | ||
511 | ACPI_ERROR((AE_INFO, | 509 | ACPI_ERROR((AE_INFO, |
512 | "Unknown Reference subtype %X", | 510 | "Unknown Reference Class %2.2X", |
513 | obj_desc->reference.opcode)); | 511 | obj_desc->reference.class)); |
514 | return_ACPI_STATUS(AE_AML_INTERNAL); | 512 | return_ACPI_STATUS(AE_AML_INTERNAL); |
515 | } | 513 | } |
516 | } | 514 | } |