diff options
Diffstat (limited to 'drivers/acpi/acpica/psloop.c')
| -rw-r--r-- | drivers/acpi/acpica/psloop.c | 34 | 
1 files changed, 33 insertions, 1 deletions
diff --git a/drivers/acpi/acpica/psloop.c b/drivers/acpi/acpica/psloop.c index 14d689606d2f..b4224005783c 100644 --- a/drivers/acpi/acpica/psloop.c +++ b/drivers/acpi/acpica/psloop.c @@ -55,6 +55,7 @@  #include "acparser.h"  #include "acdispat.h"  #include "amlcode.h" +#include "acconvert.h"  #define _COMPONENT          ACPI_PARSER  ACPI_MODULE_NAME("psloop") @@ -132,6 +133,21 @@ acpi_ps_get_arguments(struct acpi_walk_state *walk_state,  		       !walk_state->arg_count) {  			walk_state->aml = walk_state->parser_state.aml; +			switch (op->common.aml_opcode) { +			case AML_METHOD_OP: +			case AML_BUFFER_OP: +			case AML_PACKAGE_OP: +			case AML_VARIABLE_PACKAGE_OP: +			case AML_WHILE_OP: + +				break; + +			default: + +				ASL_CV_CAPTURE_COMMENTS(walk_state); +				break; +			} +  			status =  			    acpi_ps_get_next_arg(walk_state,  						 &(walk_state->parser_state), @@ -254,7 +270,7 @@ acpi_ps_get_arguments(struct acpi_walk_state *walk_state,  		case AML_BUFFER_OP:  		case AML_PACKAGE_OP: -		case AML_VAR_PACKAGE_OP: +		case AML_VARIABLE_PACKAGE_OP:  			if ((op->common.parent) &&  			    (op->common.parent->common.aml_opcode == @@ -480,6 +496,8 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)  	/* Iterative parsing loop, while there is more AML to process: */  	while ((parser_state->aml < parser_state->aml_end) || (op)) { +		ASL_CV_CAPTURE_COMMENTS(walk_state); +  		aml_op_start = parser_state->aml;  		if (!op) {  			status = @@ -516,6 +534,20 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)  		 */  		walk_state->arg_count = 0; +		switch (op->common.aml_opcode) { +		case AML_BYTE_OP: +		case AML_WORD_OP: +		case AML_DWORD_OP: +		case AML_QWORD_OP: + +			break; + +		default: + +			ASL_CV_CAPTURE_COMMENTS(walk_state); +			break; +		} +  		/* Are there any arguments that must be processed? */  		if (walk_state->arg_types) {  |