aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/dispatcher/dswload.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/dispatcher/dswload.c')
-rw-r--r--drivers/acpi/dispatcher/dswload.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/drivers/acpi/dispatcher/dswload.c b/drivers/acpi/dispatcher/dswload.c
index 8ab9d1b29a4c..ec68c1df3932 100644
--- a/drivers/acpi/dispatcher/dswload.c
+++ b/drivers/acpi/dispatcher/dswload.c
@@ -443,6 +443,15 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state)
443 if (ACPI_FAILURE(status)) { 443 if (ACPI_FAILURE(status)) {
444 return_ACPI_STATUS(status); 444 return_ACPI_STATUS(status);
445 } 445 }
446 } else if (op->common.aml_opcode == AML_DATA_REGION_OP) {
447 status =
448 acpi_ex_create_region(op->named.data,
449 op->named.length,
450 REGION_DATA_TABLE,
451 walk_state);
452 if (ACPI_FAILURE(status)) {
453 return_ACPI_STATUS(status);
454 }
446 } 455 }
447 } 456 }
448#endif 457#endif
@@ -823,6 +832,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
823 struct acpi_namespace_node *new_node; 832 struct acpi_namespace_node *new_node;
824#ifndef ACPI_NO_METHOD_EXECUTION 833#ifndef ACPI_NO_METHOD_EXECUTION
825 u32 i; 834 u32 i;
835 u8 region_space;
826#endif 836#endif
827 837
828 ACPI_FUNCTION_TRACE(ds_load2_end_op); 838 ACPI_FUNCTION_TRACE(ds_load2_end_op);
@@ -1003,11 +1013,6 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
1003 status = acpi_ex_create_event(walk_state); 1013 status = acpi_ex_create_event(walk_state);
1004 break; 1014 break;
1005 1015
1006 case AML_DATA_REGION_OP:
1007
1008 status = acpi_ex_create_table_region(walk_state);
1009 break;
1010
1011 case AML_ALIAS_OP: 1016 case AML_ALIAS_OP:
1012 1017
1013 status = acpi_ex_create_alias(walk_state); 1018 status = acpi_ex_create_alias(walk_state);
@@ -1035,6 +1040,15 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
1035 switch (op->common.aml_opcode) { 1040 switch (op->common.aml_opcode) {
1036#ifndef ACPI_NO_METHOD_EXECUTION 1041#ifndef ACPI_NO_METHOD_EXECUTION
1037 case AML_REGION_OP: 1042 case AML_REGION_OP:
1043 case AML_DATA_REGION_OP:
1044
1045 if (op->common.aml_opcode == AML_REGION_OP) {
1046 region_space = (acpi_adr_space_type)
1047 ((op->common.value.arg)->common.value.
1048 integer);
1049 } else {
1050 region_space = REGION_DATA_TABLE;
1051 }
1038 1052
1039 /* 1053 /*
1040 * If we are executing a method, initialize the region 1054 * If we are executing a method, initialize the region
@@ -1043,10 +1057,7 @@ acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
1043 status = 1057 status =
1044 acpi_ex_create_region(op->named.data, 1058 acpi_ex_create_region(op->named.data,
1045 op->named.length, 1059 op->named.length,
1046 (acpi_adr_space_type) 1060 region_space,
1047 ((op->common.value.
1048 arg)->common.value.
1049 integer),
1050 walk_state); 1061 walk_state);
1051 if (ACPI_FAILURE(status)) { 1062 if (ACPI_FAILURE(status)) {
1052 return (status); 1063 return (status);