aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/parser
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/parser')
-rw-r--r--drivers/acpi/parser/psargs.c25
-rw-r--r--drivers/acpi/parser/psloop.c25
-rw-r--r--drivers/acpi/parser/psopcode.c6
-rw-r--r--drivers/acpi/parser/psparse.c35
-rw-r--r--drivers/acpi/parser/psscope.c17
-rw-r--r--drivers/acpi/parser/pstree.c8
-rw-r--r--drivers/acpi/parser/psutils.c5
-rw-r--r--drivers/acpi/parser/pswalk.c5
-rw-r--r--drivers/acpi/parser/psxface.c46
9 files changed, 105 insertions, 67 deletions
diff --git a/drivers/acpi/parser/psargs.c b/drivers/acpi/parser/psargs.c
index de573be52718..bf88e076c3e9 100644
--- a/drivers/acpi/parser/psargs.c
+++ b/drivers/acpi/parser/psargs.c
@@ -79,7 +79,7 @@ acpi_ps_get_next_package_length(struct acpi_parse_state *parser_state)
79 acpi_native_uint byte_count; 79 acpi_native_uint byte_count;
80 u8 byte_zero_mask = 0x3F; /* Default [0:5] */ 80 u8 byte_zero_mask = 0x3F; /* Default [0:5] */
81 81
82 ACPI_FUNCTION_TRACE("ps_get_next_package_length"); 82 ACPI_FUNCTION_TRACE(ps_get_next_package_length);
83 83
84 /* 84 /*
85 * Byte 0 bits [6:7] contain the number of additional bytes 85 * Byte 0 bits [6:7] contain the number of additional bytes
@@ -128,7 +128,7 @@ u8 *acpi_ps_get_next_package_end(struct acpi_parse_state *parser_state)
128 u8 *start = parser_state->aml; 128 u8 *start = parser_state->aml;
129 u32 package_length; 129 u32 package_length;
130 130
131 ACPI_FUNCTION_TRACE("ps_get_next_package_end"); 131 ACPI_FUNCTION_TRACE(ps_get_next_package_end);
132 132
133 /* Function below updates parser_state->Aml */ 133 /* Function below updates parser_state->Aml */
134 134
@@ -157,7 +157,7 @@ char *acpi_ps_get_next_namestring(struct acpi_parse_state *parser_state)
157 u8 *start = parser_state->aml; 157 u8 *start = parser_state->aml;
158 u8 *end = parser_state->aml; 158 u8 *end = parser_state->aml;
159 159
160 ACPI_FUNCTION_TRACE("ps_get_next_namestring"); 160 ACPI_FUNCTION_TRACE(ps_get_next_namestring);
161 161
162 /* Point past any namestring prefix characters (backslash or carat) */ 162 /* Point past any namestring prefix characters (backslash or carat) */
163 163
@@ -237,7 +237,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
237 struct acpi_namespace_node *node; 237 struct acpi_namespace_node *node;
238 union acpi_generic_state scope_info; 238 union acpi_generic_state scope_info;
239 239
240 ACPI_FUNCTION_TRACE("ps_get_next_namepath"); 240 ACPI_FUNCTION_TRACE(ps_get_next_namepath);
241 241
242 path = acpi_ps_get_next_namestring(parser_state); 242 path = acpi_ps_get_next_namestring(parser_state);
243 acpi_ps_init_op(arg, AML_INT_NAMEPATH_OP); 243 acpi_ps_init_op(arg, AML_INT_NAMEPATH_OP);
@@ -275,6 +275,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
275 */ 275 */
276 if (ACPI_SUCCESS(status) && 276 if (ACPI_SUCCESS(status) &&
277 possible_method_call && (node->type == ACPI_TYPE_METHOD)) { 277 possible_method_call && (node->type == ACPI_TYPE_METHOD)) {
278
278 /* This name is actually a control method invocation */ 279 /* This name is actually a control method invocation */
279 280
280 method_desc = acpi_ns_get_attached_object(node); 281 method_desc = acpi_ns_get_attached_object(node);
@@ -319,6 +320,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
319 * some not_found cases are allowed 320 * some not_found cases are allowed
320 */ 321 */
321 if (status == AE_NOT_FOUND) { 322 if (status == AE_NOT_FOUND) {
323
322 /* 1) not_found is ok during load pass 1/2 (allow forward references) */ 324 /* 1) not_found is ok during load pass 1/2 (allow forward references) */
323 325
324 if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) != 326 if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) !=
@@ -354,6 +356,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
354 356
355 if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == 357 if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) ==
356 ACPI_PARSE_EXECUTE) { 358 ACPI_PARSE_EXECUTE) {
359
357 /* Report a control method execution error */ 360 /* Report a control method execution error */
358 361
359 status = acpi_ds_method_error(status, walk_state); 362 status = acpi_ds_method_error(status, walk_state);
@@ -388,7 +391,7 @@ acpi_ps_get_next_simple_arg(struct acpi_parse_state *parser_state,
388 u16 opcode; 391 u16 opcode;
389 u8 *aml = parser_state->aml; 392 u8 *aml = parser_state->aml;
390 393
391 ACPI_FUNCTION_TRACE_U32("ps_get_next_simple_arg", arg_type); 394 ACPI_FUNCTION_TRACE_U32(ps_get_next_simple_arg, arg_type);
392 395
393 switch (arg_type) { 396 switch (arg_type) {
394 case ARGP_BYTEDATA: 397 case ARGP_BYTEDATA:
@@ -453,7 +456,7 @@ acpi_ps_get_next_simple_arg(struct acpi_parse_state *parser_state,
453 456
454 default: 457 default:
455 458
456 ACPI_ERROR((AE_INFO, "Invalid arg_type %X", arg_type)); 459 ACPI_ERROR((AE_INFO, "Invalid ArgType %X", arg_type));
457 return_VOID; 460 return_VOID;
458 } 461 }
459 462
@@ -484,7 +487,7 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_state
484 u16 opcode; 487 u16 opcode;
485 u32 name; 488 u32 name;
486 489
487 ACPI_FUNCTION_TRACE("ps_get_next_field"); 490 ACPI_FUNCTION_TRACE(ps_get_next_field);
488 491
489 /* Determine field type */ 492 /* Determine field type */
490 493
@@ -590,7 +593,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
590 u32 subop; 593 u32 subop;
591 acpi_status status = AE_OK; 594 acpi_status status = AE_OK;
592 595
593 ACPI_FUNCTION_TRACE_PTR("ps_get_next_arg", parser_state); 596 ACPI_FUNCTION_TRACE_PTR(ps_get_next_arg, parser_state);
594 597
595 switch (arg_type) { 598 switch (arg_type) {
596 case ARGP_BYTEDATA: 599 case ARGP_BYTEDATA:
@@ -620,6 +623,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
620 case ARGP_FIELDLIST: 623 case ARGP_FIELDLIST:
621 624
622 if (parser_state->aml < parser_state->pkg_end) { 625 if (parser_state->aml < parser_state->pkg_end) {
626
623 /* Non-empty list */ 627 /* Non-empty list */
624 628
625 while (parser_state->aml < parser_state->pkg_end) { 629 while (parser_state->aml < parser_state->pkg_end) {
@@ -645,6 +649,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
645 case ARGP_BYTELIST: 649 case ARGP_BYTELIST:
646 650
647 if (parser_state->aml < parser_state->pkg_end) { 651 if (parser_state->aml < parser_state->pkg_end) {
652
648 /* Non-empty list */ 653 /* Non-empty list */
649 654
650 arg = acpi_ps_alloc_op(AML_INT_BYTELIST_OP); 655 arg = acpi_ps_alloc_op(AML_INT_BYTELIST_OP);
@@ -673,6 +678,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
673 if (subop == 0 || 678 if (subop == 0 ||
674 acpi_ps_is_leading_char(subop) || 679 acpi_ps_is_leading_char(subop) ||
675 acpi_ps_is_prefix_char(subop)) { 680 acpi_ps_is_prefix_char(subop)) {
681
676 /* null_name or name_string */ 682 /* null_name or name_string */
677 683
678 arg = acpi_ps_alloc_op(AML_INT_NAMEPATH_OP); 684 arg = acpi_ps_alloc_op(AML_INT_NAMEPATH_OP);
@@ -703,6 +709,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
703 case ARGP_OBJLIST: 709 case ARGP_OBJLIST:
704 710
705 if (parser_state->aml < parser_state->pkg_end) { 711 if (parser_state->aml < parser_state->pkg_end) {
712
706 /* Non-empty list of variable arguments, nothing returned */ 713 /* Non-empty list of variable arguments, nothing returned */
707 714
708 walk_state->arg_count = ACPI_VAR_ARGS; 715 walk_state->arg_count = ACPI_VAR_ARGS;
@@ -711,7 +718,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
711 718
712 default: 719 default:
713 720
714 ACPI_ERROR((AE_INFO, "Invalid arg_type: %X", arg_type)); 721 ACPI_ERROR((AE_INFO, "Invalid ArgType: %X", arg_type));
715 status = AE_AML_OPERAND_TYPE; 722 status = AE_AML_OPERAND_TYPE;
716 break; 723 break;
717 } 724 }
diff --git a/drivers/acpi/parser/psloop.c b/drivers/acpi/parser/psloop.c
index 00b072e15d19..e1541db3753a 100644
--- a/drivers/acpi/parser/psloop.c
+++ b/drivers/acpi/parser/psloop.c
@@ -83,7 +83,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
83 struct acpi_parse_state *parser_state; 83 struct acpi_parse_state *parser_state;
84 u8 *aml_op_start = NULL; 84 u8 *aml_op_start = NULL;
85 85
86 ACPI_FUNCTION_TRACE_PTR("ps_parse_loop", walk_state); 86 ACPI_FUNCTION_TRACE_PTR(ps_parse_loop, walk_state);
87 87
88 if (walk_state->descending_callback == NULL) { 88 if (walk_state->descending_callback == NULL) {
89 return_ACPI_STATUS(AE_BAD_PARAMETER); 89 return_ACPI_STATUS(AE_BAD_PARAMETER);
@@ -95,6 +95,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
95#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY)) 95#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
96 96
97 if (walk_state->walk_type & ACPI_WALK_METHOD_RESTART) { 97 if (walk_state->walk_type & ACPI_WALK_METHOD_RESTART) {
98
98 /* We are restarting a preempted control method */ 99 /* We are restarting a preempted control method */
99 100
100 if (acpi_ps_has_completed_scope(parser_state)) { 101 if (acpi_ps_has_completed_scope(parser_state)) {
@@ -128,7 +129,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
128 129
129 } 130 }
130 ACPI_EXCEPTION((AE_INFO, status, 131 ACPI_EXCEPTION((AE_INFO, status,
131 "get_predicate Failed")); 132 "GetPredicate Failed"));
132 return_ACPI_STATUS(status); 133 return_ACPI_STATUS(status);
133 } 134 }
134 135
@@ -143,6 +144,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
143 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, 144 ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
144 "Popped scope, Op=%p\n", op)); 145 "Popped scope, Op=%p\n", op));
145 } else if (walk_state->prev_op) { 146 } else if (walk_state->prev_op) {
147
146 /* We were in the middle of an op */ 148 /* We were in the middle of an op */
147 149
148 op = walk_state->prev_op; 150 op = walk_state->prev_op;
@@ -156,6 +158,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
156 while ((parser_state->aml < parser_state->aml_end) || (op)) { 158 while ((parser_state->aml < parser_state->aml_end) || (op)) {
157 aml_op_start = parser_state->aml; 159 aml_op_start = parser_state->aml;
158 if (!op) { 160 if (!op) {
161
159 /* Get the next opcode from the AML stream */ 162 /* Get the next opcode from the AML stream */
160 163
161 walk_state->aml_offset = 164 walk_state->aml_offset =
@@ -213,6 +216,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
213 /* Create Op structure and append to parent's argument list */ 216 /* Create Op structure and append to parent's argument list */
214 217
215 if (walk_state->op_info->flags & AML_NAMED) { 218 if (walk_state->op_info->flags & AML_NAMED) {
219
216 /* Allocate a new pre_op if necessary */ 220 /* Allocate a new pre_op if necessary */
217 221
218 if (!pre_op) { 222 if (!pre_op) {
@@ -371,7 +375,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
371 375
372 if (walk_state->op_info) { 376 if (walk_state->op_info) {
373 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, 377 ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
374 "Opcode %4.4X [%s] Op %p Aml %p aml_offset %5.5X\n", 378 "Opcode %4.4X [%s] Op %p Aml %p AmlOffset %5.5X\n",
375 (u32) op->common.aml_opcode, 379 (u32) op->common.aml_opcode,
376 walk_state->op_info->name, op, 380 walk_state->op_info->name, op,
377 parser_state->aml, 381 parser_state->aml,
@@ -388,6 +392,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
388 /* Are there any arguments that must be processed? */ 392 /* Are there any arguments that must be processed? */
389 393
390 if (walk_state->arg_types) { 394 if (walk_state->arg_types) {
395
391 /* Get arguments */ 396 /* Get arguments */
392 397
393 switch (op->common.aml_opcode) { 398 switch (op->common.aml_opcode) {
@@ -742,7 +747,19 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
742 if (ACPI_FAILURE(status2)) { 747 if (ACPI_FAILURE(status2)) {
743 return_ACPI_STATUS(status2); 748 return_ACPI_STATUS(status2);
744 } 749 }
750
751 status2 =
752 acpi_ds_result_stack_pop
753 (walk_state);
754 if (ACPI_FAILURE(status2)) {
755 return_ACPI_STATUS(status2);
756 }
757
758 acpi_ut_delete_generic_state
759 (acpi_ut_pop_generic_state
760 (&walk_state->control_state));
745 } 761 }
762
746 acpi_ps_pop_scope(parser_state, &op, 763 acpi_ps_pop_scope(parser_state, &op,
747 &walk_state->arg_types, 764 &walk_state->arg_types,
748 &walk_state->arg_count); 765 &walk_state->arg_count);
@@ -762,6 +779,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
762 return_ACPI_STATUS(status2); 779 return_ACPI_STATUS(status2);
763 } 780 }
764 } 781 }
782
765 acpi_ps_pop_scope(parser_state, &op, 783 acpi_ps_pop_scope(parser_state, &op,
766 &walk_state->arg_types, 784 &walk_state->arg_types,
767 &walk_state->arg_count); 785 &walk_state->arg_count);
@@ -853,6 +871,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
853 } 871 }
854 872
855 else if (ACPI_FAILURE(status)) { 873 else if (ACPI_FAILURE(status)) {
874
856 /* First error is most important */ 875 /* First error is most important */
857 876
858 (void) 877 (void)
diff --git a/drivers/acpi/parser/psopcode.c b/drivers/acpi/parser/psopcode.c
index 11d6351ab8b2..4bd25e32769f 100644
--- a/drivers/acpi/parser/psopcode.c
+++ b/drivers/acpi/parser/psopcode.c
@@ -725,12 +725,13 @@ static const u8 acpi_gbl_long_op_index[NUM_EXTENDED_OPCODE] = {
725 725
726const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode) 726const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode)
727{ 727{
728 ACPI_FUNCTION_NAME("ps_get_opcode_info"); 728 ACPI_FUNCTION_NAME(ps_get_opcode_info);
729 729
730 /* 730 /*
731 * Detect normal 8-bit opcode or extended 16-bit opcode 731 * Detect normal 8-bit opcode or extended 16-bit opcode
732 */ 732 */
733 if (!(opcode & 0xFF00)) { 733 if (!(opcode & 0xFF00)) {
734
734 /* Simple (8-bit) opcode: 0-255, can't index beyond table */ 735 /* Simple (8-bit) opcode: 0-255, can't index beyond table */
735 736
736 return (&acpi_gbl_aml_op_info 737 return (&acpi_gbl_aml_op_info
@@ -739,6 +740,7 @@ const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode)
739 740
740 if (((opcode & 0xFF00) == AML_EXTENDED_OPCODE) && 741 if (((opcode & 0xFF00) == AML_EXTENDED_OPCODE) &&
741 (((u8) opcode) <= MAX_EXTENDED_OPCODE)) { 742 (((u8) opcode) <= MAX_EXTENDED_OPCODE)) {
743
742 /* Valid extended (16-bit) opcode */ 744 /* Valid extended (16-bit) opcode */
743 745
744 return (&acpi_gbl_aml_op_info 746 return (&acpi_gbl_aml_op_info
@@ -779,7 +781,7 @@ char *acpi_ps_get_opcode_name(u16 opcode)
779 return (op->name); 781 return (op->name);
780 782
781#else 783#else
782 return ("AE_NOT_CONFIGURED"); 784 return ("OpcodeName unavailable");
783 785
784#endif 786#endif
785} 787}
diff --git a/drivers/acpi/parser/psparse.c b/drivers/acpi/parser/psparse.c
index a9f3229f4106..7ee2f2e77525 100644
--- a/drivers/acpi/parser/psparse.c
+++ b/drivers/acpi/parser/psparse.c
@@ -106,6 +106,7 @@ u16 acpi_ps_peek_opcode(struct acpi_parse_state * parser_state)
106 opcode = (u16) ACPI_GET8(aml); 106 opcode = (u16) ACPI_GET8(aml);
107 107
108 if (opcode == AML_EXTENDED_OP_PREFIX) { 108 if (opcode == AML_EXTENDED_OP_PREFIX) {
109
109 /* Extended opcode, get the second opcode byte */ 110 /* Extended opcode, get the second opcode byte */
110 111
111 aml++; 112 aml++;
@@ -137,7 +138,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,
137 const struct acpi_opcode_info *parent_info; 138 const struct acpi_opcode_info *parent_info;
138 union acpi_parse_object *replacement_op = NULL; 139 union acpi_parse_object *replacement_op = NULL;
139 140
140 ACPI_FUNCTION_TRACE_PTR("ps_complete_this_op", op); 141 ACPI_FUNCTION_TRACE_PTR(ps_complete_this_op, op);
141 142
142 /* Check for null Op, can happen if AML code is corrupt */ 143 /* Check for null Op, can happen if AML code is corrupt */
143 144
@@ -158,6 +159,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,
158 if (op->common.parent) { 159 if (op->common.parent) {
159 prev = op->common.parent->common.value.arg; 160 prev = op->common.parent->common.value.arg;
160 if (!prev) { 161 if (!prev) {
162
161 /* Nothing more to do */ 163 /* Nothing more to do */
162 164
163 goto cleanup; 165 goto cleanup;
@@ -245,6 +247,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,
245 /* We must unlink this op from the parent tree */ 247 /* We must unlink this op from the parent tree */
246 248
247 if (prev == op) { 249 if (prev == op) {
250
248 /* This op is the first in the list */ 251 /* This op is the first in the list */
249 252
250 if (replacement_op) { 253 if (replacement_op) {
@@ -265,6 +268,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state,
265 268
266 else 269 else
267 while (prev) { 270 while (prev) {
271
268 /* Traverse all siblings in the parent's argument list */ 272 /* Traverse all siblings in the parent's argument list */
269 273
270 next = prev->common.next; 274 next = prev->common.next;
@@ -329,7 +333,7 @@ acpi_ps_next_parse_state(struct acpi_walk_state *walk_state,
329 struct acpi_parse_state *parser_state = &walk_state->parser_state; 333 struct acpi_parse_state *parser_state = &walk_state->parser_state;
330 acpi_status status = AE_CTRL_PENDING; 334 acpi_status status = AE_CTRL_PENDING;
331 335
332 ACPI_FUNCTION_TRACE_PTR("ps_next_parse_state", op); 336 ACPI_FUNCTION_TRACE_PTR(ps_next_parse_state, op);
333 337
334 switch (callback_status) { 338 switch (callback_status) {
335 case AE_CTRL_TERMINATE: 339 case AE_CTRL_TERMINATE:
@@ -449,10 +453,10 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
449 struct acpi_thread_state *prev_walk_list = acpi_gbl_current_walk_list; 453 struct acpi_thread_state *prev_walk_list = acpi_gbl_current_walk_list;
450 struct acpi_walk_state *previous_walk_state; 454 struct acpi_walk_state *previous_walk_state;
451 455
452 ACPI_FUNCTION_TRACE("ps_parse_aml"); 456 ACPI_FUNCTION_TRACE(ps_parse_aml);
453 457
454 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, 458 ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
455 "Entered with walk_state=%p Aml=%p size=%X\n", 459 "Entered with WalkState=%p Aml=%p size=%X\n",
456 walk_state, walk_state->parser_state.aml, 460 walk_state, walk_state->parser_state.aml,
457 walk_state->parser_state.aml_size)); 461 walk_state->parser_state.aml_size));
458 462
@@ -460,6 +464,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
460 464
461 thread = acpi_ut_create_thread_state(); 465 thread = acpi_ut_create_thread_state();
462 if (!thread) { 466 if (!thread) {
467 acpi_ds_delete_walk_state(walk_state);
463 return_ACPI_STATUS(AE_NO_MEMORY); 468 return_ACPI_STATUS(AE_NO_MEMORY);
464 } 469 }
465 470
@@ -510,6 +515,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
510 } else if (status == AE_CTRL_TERMINATE) { 515 } else if (status == AE_CTRL_TERMINATE) {
511 status = AE_OK; 516 status = AE_OK;
512 } else if ((status != AE_OK) && (walk_state->method_desc)) { 517 } else if ((status != AE_OK) && (walk_state->method_desc)) {
518
513 /* Either the method parse or actual execution failed */ 519 /* Either the method parse or actual execution failed */
514 520
515 ACPI_ERROR_METHOD("Method parse/execution failed", 521 ACPI_ERROR_METHOD("Method parse/execution failed",
@@ -550,20 +556,9 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
550 */ 556 */
551 if (((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == 557 if (((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) ==
552 ACPI_PARSE_EXECUTE) || (ACPI_FAILURE(status))) { 558 ACPI_PARSE_EXECUTE) || (ACPI_FAILURE(status))) {
553 if (walk_state->method_desc) { 559 acpi_ds_terminate_control_method(walk_state->
554 /* Decrement the thread count on the method parse tree */ 560 method_desc,
555 561 walk_state);
556 if (walk_state->method_desc->method.
557 thread_count) {
558 walk_state->method_desc->method.
559 thread_count--;
560 } else {
561 ACPI_ERROR((AE_INFO,
562 "Invalid zero thread count in method"));
563 }
564 }
565
566 acpi_ds_terminate_control_method(walk_state);
567 } 562 }
568 563
569 /* Delete this walk state and all linked control states */ 564 /* Delete this walk state and all linked control states */
@@ -572,7 +567,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
572 previous_walk_state = walk_state; 567 previous_walk_state = walk_state;
573 568
574 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, 569 ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
575 "return_value=%p, implicit_value=%p State=%p\n", 570 "ReturnValue=%p, ImplicitValue=%p State=%p\n",
576 walk_state->return_desc, 571 walk_state->return_desc,
577 walk_state->implicit_return_obj, walk_state)); 572 walk_state->implicit_return_obj, walk_state));
578 573
@@ -633,12 +628,14 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state)
633 } 628 }
634 } else { 629 } else {
635 if (previous_walk_state->return_desc) { 630 if (previous_walk_state->return_desc) {
631
636 /* Caller doesn't want it, must delete it */ 632 /* Caller doesn't want it, must delete it */
637 633
638 acpi_ut_remove_reference(previous_walk_state-> 634 acpi_ut_remove_reference(previous_walk_state->
639 return_desc); 635 return_desc);
640 } 636 }
641 if (previous_walk_state->implicit_return_obj) { 637 if (previous_walk_state->implicit_return_obj) {
638
642 /* Caller doesn't want it, must delete it */ 639 /* Caller doesn't want it, must delete it */
643 640
644 acpi_ut_remove_reference(previous_walk_state-> 641 acpi_ut_remove_reference(previous_walk_state->
diff --git a/drivers/acpi/parser/psscope.c b/drivers/acpi/parser/psscope.c
index bc6047caccd9..a3e0314de24d 100644
--- a/drivers/acpi/parser/psscope.c
+++ b/drivers/acpi/parser/psscope.c
@@ -106,14 +106,14 @@ acpi_ps_init_scope(struct acpi_parse_state * parser_state,
106{ 106{
107 union acpi_generic_state *scope; 107 union acpi_generic_state *scope;
108 108
109 ACPI_FUNCTION_TRACE_PTR("ps_init_scope", root_op); 109 ACPI_FUNCTION_TRACE_PTR(ps_init_scope, root_op);
110 110
111 scope = acpi_ut_create_generic_state(); 111 scope = acpi_ut_create_generic_state();
112 if (!scope) { 112 if (!scope) {
113 return_ACPI_STATUS(AE_NO_MEMORY); 113 return_ACPI_STATUS(AE_NO_MEMORY);
114 } 114 }
115 115
116 scope->common.data_type = ACPI_DESC_TYPE_STATE_RPSCOPE; 116 scope->common.descriptor_type = ACPI_DESC_TYPE_STATE_RPSCOPE;
117 scope->parse_scope.op = root_op; 117 scope->parse_scope.op = root_op;
118 scope->parse_scope.arg_count = ACPI_VAR_ARGS; 118 scope->parse_scope.arg_count = ACPI_VAR_ARGS;
119 scope->parse_scope.arg_end = parser_state->aml_end; 119 scope->parse_scope.arg_end = parser_state->aml_end;
@@ -147,14 +147,14 @@ acpi_ps_push_scope(struct acpi_parse_state *parser_state,
147{ 147{
148 union acpi_generic_state *scope; 148 union acpi_generic_state *scope;
149 149
150 ACPI_FUNCTION_TRACE_PTR("ps_push_scope", op); 150 ACPI_FUNCTION_TRACE_PTR(ps_push_scope, op);
151 151
152 scope = acpi_ut_create_generic_state(); 152 scope = acpi_ut_create_generic_state();
153 if (!scope) { 153 if (!scope) {
154 return_ACPI_STATUS(AE_NO_MEMORY); 154 return_ACPI_STATUS(AE_NO_MEMORY);
155 } 155 }
156 156
157 scope->common.data_type = ACPI_DESC_TYPE_STATE_PSCOPE; 157 scope->common.descriptor_type = ACPI_DESC_TYPE_STATE_PSCOPE;
158 scope->parse_scope.op = op; 158 scope->parse_scope.op = op;
159 scope->parse_scope.arg_list = remaining_args; 159 scope->parse_scope.arg_list = remaining_args;
160 scope->parse_scope.arg_count = arg_count; 160 scope->parse_scope.arg_count = arg_count;
@@ -165,6 +165,7 @@ acpi_ps_push_scope(struct acpi_parse_state *parser_state,
165 acpi_ut_push_generic_state(&parser_state->scope, scope); 165 acpi_ut_push_generic_state(&parser_state->scope, scope);
166 166
167 if (arg_count == ACPI_VAR_ARGS) { 167 if (arg_count == ACPI_VAR_ARGS) {
168
168 /* Multiple arguments */ 169 /* Multiple arguments */
169 170
170 scope->parse_scope.arg_end = parser_state->pkg_end; 171 scope->parse_scope.arg_end = parser_state->pkg_end;
@@ -199,14 +200,14 @@ acpi_ps_pop_scope(struct acpi_parse_state *parser_state,
199{ 200{
200 union acpi_generic_state *scope = parser_state->scope; 201 union acpi_generic_state *scope = parser_state->scope;
201 202
202 ACPI_FUNCTION_TRACE("ps_pop_scope"); 203 ACPI_FUNCTION_TRACE(ps_pop_scope);
203 204
204 /* Only pop the scope if there is in fact a next scope */ 205 /* Only pop the scope if there is in fact a next scope */
205 206
206 if (scope->common.next) { 207 if (scope->common.next) {
207 scope = acpi_ut_pop_generic_state(&parser_state->scope); 208 scope = acpi_ut_pop_generic_state(&parser_state->scope);
208 209
209 /* return to parsing previous op */ 210 /* Return to parsing previous op */
210 211
211 *op = scope->parse_scope.op; 212 *op = scope->parse_scope.op;
212 *arg_list = scope->parse_scope.arg_list; 213 *arg_list = scope->parse_scope.arg_list;
@@ -217,7 +218,7 @@ acpi_ps_pop_scope(struct acpi_parse_state *parser_state,
217 218
218 acpi_ut_delete_generic_state(scope); 219 acpi_ut_delete_generic_state(scope);
219 } else { 220 } else {
220 /* empty parse stack, prepare to fetch next opcode */ 221 /* Empty parse stack, prepare to fetch next opcode */
221 222
222 *op = NULL; 223 *op = NULL;
223 *arg_list = 0; 224 *arg_list = 0;
@@ -246,7 +247,7 @@ void acpi_ps_cleanup_scope(struct acpi_parse_state *parser_state)
246{ 247{
247 union acpi_generic_state *scope; 248 union acpi_generic_state *scope;
248 249
249 ACPI_FUNCTION_TRACE_PTR("ps_cleanup_scope", parser_state); 250 ACPI_FUNCTION_TRACE_PTR(ps_cleanup_scope, parser_state);
250 251
251 if (!parser_state) { 252 if (!parser_state) {
252 return_VOID; 253 return_VOID;
diff --git a/drivers/acpi/parser/pstree.c b/drivers/acpi/parser/pstree.c
index dd6f16726fc4..0015717ef096 100644
--- a/drivers/acpi/parser/pstree.c
+++ b/drivers/acpi/parser/pstree.c
@@ -77,6 +77,7 @@ union acpi_parse_object *acpi_ps_get_arg(union acpi_parse_object *op, u32 argn)
77 77
78 op_info = acpi_ps_get_opcode_info(op->common.aml_opcode); 78 op_info = acpi_ps_get_opcode_info(op->common.aml_opcode);
79 if (op_info->class == AML_CLASS_UNKNOWN) { 79 if (op_info->class == AML_CLASS_UNKNOWN) {
80
80 /* Invalid opcode or ASCII character */ 81 /* Invalid opcode or ASCII character */
81 82
82 return (NULL); 83 return (NULL);
@@ -85,6 +86,7 @@ union acpi_parse_object *acpi_ps_get_arg(union acpi_parse_object *op, u32 argn)
85 /* Check if this opcode requires argument sub-objects */ 86 /* Check if this opcode requires argument sub-objects */
86 87
87 if (!(op_info->flags & AML_HAS_ARGS)) { 88 if (!(op_info->flags & AML_HAS_ARGS)) {
89
88 /* Has no linked argument objects */ 90 /* Has no linked argument objects */
89 91
90 return (NULL); 92 return (NULL);
@@ -130,6 +132,7 @@ acpi_ps_append_arg(union acpi_parse_object *op, union acpi_parse_object *arg)
130 132
131 op_info = acpi_ps_get_opcode_info(op->common.aml_opcode); 133 op_info = acpi_ps_get_opcode_info(op->common.aml_opcode);
132 if (op_info->class == AML_CLASS_UNKNOWN) { 134 if (op_info->class == AML_CLASS_UNKNOWN) {
135
133 /* Invalid opcode */ 136 /* Invalid opcode */
134 137
135 ACPI_ERROR((AE_INFO, "Invalid AML Opcode: 0x%2.2X", 138 ACPI_ERROR((AE_INFO, "Invalid AML Opcode: 0x%2.2X",
@@ -140,6 +143,7 @@ acpi_ps_append_arg(union acpi_parse_object *op, union acpi_parse_object *arg)
140 /* Check if this opcode requires argument sub-objects */ 143 /* Check if this opcode requires argument sub-objects */
141 144
142 if (!(op_info->flags & AML_HAS_ARGS)) { 145 if (!(op_info->flags & AML_HAS_ARGS)) {
146
143 /* Has no linked argument objects */ 147 /* Has no linked argument objects */
144 148
145 return; 149 return;
@@ -148,6 +152,7 @@ acpi_ps_append_arg(union acpi_parse_object *op, union acpi_parse_object *arg)
148 /* Append the argument to the linked argument list */ 152 /* Append the argument to the linked argument list */
149 153
150 if (op->common.value.arg) { 154 if (op->common.value.arg) {
155
151 /* Append to existing argument list */ 156 /* Append to existing argument list */
152 157
153 prev_arg = op->common.value.arg; 158 prev_arg = op->common.value.arg;
@@ -222,12 +227,14 @@ union acpi_parse_object *acpi_ps_get_depth_next(union acpi_parse_object *origin,
222 } 227 }
223 228
224 if (arg == origin) { 229 if (arg == origin) {
230
225 /* Reached parent of origin, end search */ 231 /* Reached parent of origin, end search */
226 232
227 return (NULL); 233 return (NULL);
228 } 234 }
229 235
230 if (parent->common.next) { 236 if (parent->common.next) {
237
231 /* Found sibling of parent */ 238 /* Found sibling of parent */
232 239
233 return (parent->common.next); 240 return (parent->common.next);
@@ -299,5 +306,4 @@ union acpi_parse_object *acpi_ps_get_child(union acpi_parse_object *op)
299 return (child); 306 return (child);
300} 307}
301#endif 308#endif
302
303#endif /* ACPI_FUTURE_USAGE */ 309#endif /* ACPI_FUTURE_USAGE */
diff --git a/drivers/acpi/parser/psutils.c b/drivers/acpi/parser/psutils.c
index 3e07cb9cb748..182474ae8ce9 100644
--- a/drivers/acpi/parser/psutils.c
+++ b/drivers/acpi/parser/psutils.c
@@ -89,7 +89,7 @@ void acpi_ps_init_op(union acpi_parse_object *op, u16 opcode)
89{ 89{
90 ACPI_FUNCTION_ENTRY(); 90 ACPI_FUNCTION_ENTRY();
91 91
92 op->common.data_type = ACPI_DESC_TYPE_PARSER; 92 op->common.descriptor_type = ACPI_DESC_TYPE_PARSER;
93 op->common.aml_opcode = opcode; 93 op->common.aml_opcode = opcode;
94 94
95 ACPI_DISASM_ONLY_MEMBERS(ACPI_STRNCPY(op->common.aml_op_name, 95 ACPI_DISASM_ONLY_MEMBERS(ACPI_STRNCPY(op->common.aml_op_name,
@@ -135,6 +135,7 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode)
135 /* Allocate the minimum required size object */ 135 /* Allocate the minimum required size object */
136 136
137 if (flags == ACPI_PARSEOP_GENERIC) { 137 if (flags == ACPI_PARSEOP_GENERIC) {
138
138 /* The generic op (default) is by far the most common (16 to 1) */ 139 /* The generic op (default) is by far the most common (16 to 1) */
139 140
140 op = acpi_os_acquire_object(acpi_gbl_ps_node_cache); 141 op = acpi_os_acquire_object(acpi_gbl_ps_node_cache);
@@ -171,7 +172,7 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode)
171 172
172void acpi_ps_free_op(union acpi_parse_object *op) 173void acpi_ps_free_op(union acpi_parse_object *op)
173{ 174{
174 ACPI_FUNCTION_NAME("ps_free_op"); 175 ACPI_FUNCTION_NAME(ps_free_op);
175 176
176 if (op->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { 177 if (op->common.aml_opcode == AML_INT_RETURN_VALUE_OP) {
177 ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", 178 ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n",
diff --git a/drivers/acpi/parser/pswalk.c b/drivers/acpi/parser/pswalk.c
index 06f05bfd7612..a84a547a0f1b 100644
--- a/drivers/acpi/parser/pswalk.c
+++ b/drivers/acpi/parser/pswalk.c
@@ -64,18 +64,21 @@ void acpi_ps_delete_parse_tree(union acpi_parse_object *subtree_root)
64 union acpi_parse_object *next = NULL; 64 union acpi_parse_object *next = NULL;
65 union acpi_parse_object *parent = NULL; 65 union acpi_parse_object *parent = NULL;
66 66
67 ACPI_FUNCTION_TRACE_PTR("ps_delete_parse_tree", subtree_root); 67 ACPI_FUNCTION_TRACE_PTR(ps_delete_parse_tree, subtree_root);
68 68
69 /* Visit all nodes in the subtree */ 69 /* Visit all nodes in the subtree */
70 70
71 while (op) { 71 while (op) {
72
72 /* Check if we are not ascending */ 73 /* Check if we are not ascending */
73 74
74 if (op != parent) { 75 if (op != parent) {
76
75 /* Look for an argument or child of the current op */ 77 /* Look for an argument or child of the current op */
76 78
77 next = acpi_ps_get_arg(op, 0); 79 next = acpi_ps_get_arg(op, 0);
78 if (next) { 80 if (next) {
81
79 /* Still going downward in tree (Op is not completed yet) */ 82 /* Still going downward in tree (Op is not completed yet) */
80 83
81 op = next; 84 op = next;
diff --git a/drivers/acpi/parser/psxface.c b/drivers/acpi/parser/psxface.c
index 2dd48cbb7c02..5d996c1140af 100644
--- a/drivers/acpi/parser/psxface.c
+++ b/drivers/acpi/parser/psxface.c
@@ -50,14 +50,14 @@
50ACPI_MODULE_NAME("psxface") 50ACPI_MODULE_NAME("psxface")
51 51
52/* Local Prototypes */ 52/* Local Prototypes */
53static void acpi_ps_start_trace(struct acpi_parameter_info *info); 53static void acpi_ps_start_trace(struct acpi_evaluate_info *info);
54 54
55static void acpi_ps_stop_trace(struct acpi_parameter_info *info); 55static void acpi_ps_stop_trace(struct acpi_evaluate_info *info);
56 56
57static acpi_status acpi_ps_execute_pass(struct acpi_parameter_info *info); 57static acpi_status acpi_ps_execute_pass(struct acpi_evaluate_info *info);
58 58
59static void 59static void
60acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action); 60acpi_ps_update_parameter_list(struct acpi_evaluate_info *info, u16 action);
61 61
62/******************************************************************************* 62/*******************************************************************************
63 * 63 *
@@ -113,7 +113,7 @@ acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags)
113 * 113 *
114 ******************************************************************************/ 114 ******************************************************************************/
115 115
116static void acpi_ps_start_trace(struct acpi_parameter_info *info) 116static void acpi_ps_start_trace(struct acpi_evaluate_info *info)
117{ 117{
118 acpi_status status; 118 acpi_status status;
119 119
@@ -125,7 +125,7 @@ static void acpi_ps_start_trace(struct acpi_parameter_info *info)
125 } 125 }
126 126
127 if ((!acpi_gbl_trace_method_name) || 127 if ((!acpi_gbl_trace_method_name) ||
128 (acpi_gbl_trace_method_name != info->node->name.integer)) { 128 (acpi_gbl_trace_method_name != info->resolved_node->name.integer)) {
129 goto exit; 129 goto exit;
130 } 130 }
131 131
@@ -158,7 +158,7 @@ static void acpi_ps_start_trace(struct acpi_parameter_info *info)
158 * 158 *
159 ******************************************************************************/ 159 ******************************************************************************/
160 160
161static void acpi_ps_stop_trace(struct acpi_parameter_info *info) 161static void acpi_ps_stop_trace(struct acpi_evaluate_info *info)
162{ 162{
163 acpi_status status; 163 acpi_status status;
164 164
@@ -170,7 +170,7 @@ static void acpi_ps_stop_trace(struct acpi_parameter_info *info)
170 } 170 }
171 171
172 if ((!acpi_gbl_trace_method_name) || 172 if ((!acpi_gbl_trace_method_name) ||
173 (acpi_gbl_trace_method_name != info->node->name.integer)) { 173 (acpi_gbl_trace_method_name != info->resolved_node->name.integer)) {
174 goto exit; 174 goto exit;
175 } 175 }
176 176
@@ -212,22 +212,23 @@ static void acpi_ps_stop_trace(struct acpi_parameter_info *info)
212 * 212 *
213 ******************************************************************************/ 213 ******************************************************************************/
214 214
215acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info) 215acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info)
216{ 216{
217 acpi_status status; 217 acpi_status status;
218 218
219 ACPI_FUNCTION_TRACE("ps_execute_method"); 219 ACPI_FUNCTION_TRACE(ps_execute_method);
220 220
221 /* Validate the Info and method Node */ 221 /* Validate the Info and method Node */
222 222
223 if (!info || !info->node) { 223 if (!info || !info->resolved_node) {
224 return_ACPI_STATUS(AE_NULL_ENTRY); 224 return_ACPI_STATUS(AE_NULL_ENTRY);
225 } 225 }
226 226
227 /* Init for new method, wait on concurrency semaphore */ 227 /* Init for new method, wait on concurrency semaphore */
228 228
229 status = 229 status =
230 acpi_ds_begin_method_execution(info->node, info->obj_desc, NULL); 230 acpi_ds_begin_method_execution(info->resolved_node, info->obj_desc,
231 NULL);
231 if (ACPI_FAILURE(status)) { 232 if (ACPI_FAILURE(status)) {
232 return_ACPI_STATUS(status); 233 return_ACPI_STATUS(status);
233 } 234 }
@@ -248,7 +249,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
248 */ 249 */
249 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, 250 ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
250 "**** Begin Method Parse **** Entry=%p obj=%p\n", 251 "**** Begin Method Parse **** Entry=%p obj=%p\n",
251 info->node, info->obj_desc)); 252 info->resolved_node, info->obj_desc));
252 253
253 info->pass_number = 1; 254 info->pass_number = 1;
254 status = acpi_ps_execute_pass(info); 255 status = acpi_ps_execute_pass(info);
@@ -261,7 +262,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
261 */ 262 */
262 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, 263 ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
263 "**** Begin Method Execution **** Entry=%p obj=%p\n", 264 "**** Begin Method Execution **** Entry=%p obj=%p\n",
264 info->node, info->obj_desc)); 265 info->resolved_node, info->obj_desc));
265 266
266 info->pass_number = 3; 267 info->pass_number = 3;
267 status = acpi_ps_execute_pass(info); 268 status = acpi_ps_execute_pass(info);
@@ -286,8 +287,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
286 * a control exception code 287 * a control exception code
287 */ 288 */
288 if (info->return_object) { 289 if (info->return_object) {
289 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, 290 ACPI_DEBUG_PRINT((ACPI_DB_PARSE, "Method returned ObjDesc=%p\n",
290 "Method returned obj_desc=%p\n",
291 info->return_object)); 291 info->return_object));
292 ACPI_DUMP_STACK_ENTRY(info->return_object); 292 ACPI_DUMP_STACK_ENTRY(info->return_object);
293 293
@@ -301,7 +301,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
301 * 301 *
302 * FUNCTION: acpi_ps_update_parameter_list 302 * FUNCTION: acpi_ps_update_parameter_list
303 * 303 *
304 * PARAMETERS: Info - See struct acpi_parameter_info 304 * PARAMETERS: Info - See struct acpi_evaluate_info
305 * (Used: parameter_type and Parameters) 305 * (Used: parameter_type and Parameters)
306 * Action - Add or Remove reference 306 * Action - Add or Remove reference
307 * 307 *
@@ -312,14 +312,16 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info)
312 ******************************************************************************/ 312 ******************************************************************************/
313 313
314static void 314static void
315acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action) 315acpi_ps_update_parameter_list(struct acpi_evaluate_info *info, u16 action)
316{ 316{
317 acpi_native_uint i; 317 acpi_native_uint i;
318 318
319 if ((info->parameter_type == ACPI_PARAM_ARGS) && (info->parameters)) { 319 if ((info->parameter_type == ACPI_PARAM_ARGS) && (info->parameters)) {
320
320 /* Update reference count for each parameter */ 321 /* Update reference count for each parameter */
321 322
322 for (i = 0; info->parameters[i]; i++) { 323 for (i = 0; info->parameters[i]; i++) {
324
323 /* Ignore errors, just do them all */ 325 /* Ignore errors, just do them all */
324 326
325 (void)acpi_ut_update_object_reference(info-> 327 (void)acpi_ut_update_object_reference(info->
@@ -333,7 +335,7 @@ acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action)
333 * 335 *
334 * FUNCTION: acpi_ps_execute_pass 336 * FUNCTION: acpi_ps_execute_pass
335 * 337 *
336 * PARAMETERS: Info - See struct acpi_parameter_info 338 * PARAMETERS: Info - See struct acpi_evaluate_info
337 * (Used: pass_number, Node, and obj_desc) 339 * (Used: pass_number, Node, and obj_desc)
338 * 340 *
339 * RETURN: Status 341 * RETURN: Status
@@ -342,13 +344,13 @@ acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action)
342 * 344 *
343 ******************************************************************************/ 345 ******************************************************************************/
344 346
345static acpi_status acpi_ps_execute_pass(struct acpi_parameter_info *info) 347static acpi_status acpi_ps_execute_pass(struct acpi_evaluate_info *info)
346{ 348{
347 acpi_status status; 349 acpi_status status;
348 union acpi_parse_object *op; 350 union acpi_parse_object *op;
349 struct acpi_walk_state *walk_state; 351 struct acpi_walk_state *walk_state;
350 352
351 ACPI_FUNCTION_TRACE("ps_execute_pass"); 353 ACPI_FUNCTION_TRACE(ps_execute_pass);
352 354
353 /* Create and init a Root Node */ 355 /* Create and init a Root Node */
354 356
@@ -367,7 +369,7 @@ static acpi_status acpi_ps_execute_pass(struct acpi_parameter_info *info)
367 goto cleanup; 369 goto cleanup;
368 } 370 }
369 371
370 status = acpi_ds_init_aml_walk(walk_state, op, info->node, 372 status = acpi_ds_init_aml_walk(walk_state, op, info->resolved_node,
371 info->obj_desc->method.aml_start, 373 info->obj_desc->method.aml_start,
372 info->obj_desc->method.aml_length, 374 info->obj_desc->method.aml_length,
373 info->pass_number == 1 ? NULL : info, 375 info->pass_number == 1 ? NULL : info,