*/
        if (ACPI_SUCCESS(status) &&
            possible_method_call && (node->type == ACPI_TYPE_METHOD)) {
-               if (walk_state->opcode == AML_UNLOAD_OP) {
+               if (GET_CURRENT_ARG_TYPE(walk_state->arg_types) ==
+                   ARGP_SUPERNAME) {
                        /*
                         * acpi_ps_get_next_namestring has increased the AML pointer,
                         * so we need to restore the saved AML pointer for method call.
  *
  * PARAMETERS:  walk_state          - Current state
  *              parser_state        - Current parser state object
- *              arg_type            - The argument type (AML_*_ARG)
+ *              arg_type            - The parser argument type (ARGP_*)
  *              return_arg          - Where the next arg is returned
  *
  * RETURN:      Status, and an op object containing the next argument.
                                return_ACPI_STATUS(AE_NO_MEMORY);
                        }
 
-                       /* To support super_name arg of Unload */
+                       /* super_name allows argument to be a method call */
 
-                       if (walk_state->opcode == AML_UNLOAD_OP) {
+                       if (arg_type == ARGP_SUPERNAME) {
                                status =
                                    acpi_ps_get_next_namepath(walk_state,
                                                              parser_state, arg,