diff options
author | Bob Moore <robert.moore@intel.com> | 2015-05-20 22:30:18 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-05-21 21:22:19 -0400 |
commit | e34a7813cf7841ab351d1cb4152c2f4ceaa00070 (patch) | |
tree | 449c9a93c46d89527e0a9a3773edd64559b7547b | |
parent | 37e12657f8922ebc62f696494c56c81db509053e (diff) |
ACPICA: ACPI 6.0: Add support for new predefined names.
ACPICA commit 7ba68f2eafa12fe75ee7aa0df7543d5ea2443051
Compiler, Interpreter, acpi_help.
_BTH, _CR3, _DSD, _LPI, _MTL, _PRR, _RDI,
_RST, _TFP, _TSN.
Link: https://github.com/acpica/acpica/commit/7ba68f2e
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | drivers/acpi/acpica/aclocal.h | 10 | ||||
-rw-r--r-- | drivers/acpi/acpica/acpredef.h | 45 | ||||
-rw-r--r-- | drivers/acpi/acpica/nsprepkg.c | 13 | ||||
-rw-r--r-- | drivers/acpi/acpica/nsrepair.c | 2 |
4 files changed, 66 insertions, 4 deletions
diff --git a/drivers/acpi/acpica/aclocal.h b/drivers/acpi/acpica/aclocal.h index 87b27521fcac..3596958427cd 100644 --- a/drivers/acpi/acpica/aclocal.h +++ b/drivers/acpi/acpica/aclocal.h | |||
@@ -352,11 +352,21 @@ struct acpi_package_info3 { | |||
352 | u16 reserved; | 352 | u16 reserved; |
353 | }; | 353 | }; |
354 | 354 | ||
355 | struct acpi_package_info4 { | ||
356 | u8 type; | ||
357 | u8 object_type1; | ||
358 | u8 count1; | ||
359 | u8 sub_object_types; | ||
360 | u8 pkg_count; | ||
361 | u16 reserved; | ||
362 | }; | ||
363 | |||
355 | union acpi_predefined_info { | 364 | union acpi_predefined_info { |
356 | struct acpi_name_info info; | 365 | struct acpi_name_info info; |
357 | struct acpi_package_info ret_info; | 366 | struct acpi_package_info ret_info; |
358 | struct acpi_package_info2 ret_info2; | 367 | struct acpi_package_info2 ret_info2; |
359 | struct acpi_package_info3 ret_info3; | 368 | struct acpi_package_info3 ret_info3; |
369 | struct acpi_package_info4 ret_info4; | ||
360 | }; | 370 | }; |
361 | 371 | ||
362 | /* Reset to default packing */ | 372 | /* Reset to default packing */ |
diff --git a/drivers/acpi/acpica/acpredef.h b/drivers/acpi/acpica/acpredef.h index a972d11c97c9..b9474b529fcb 100644 --- a/drivers/acpi/acpica/acpredef.h +++ b/drivers/acpi/acpica/acpredef.h | |||
@@ -105,6 +105,11 @@ | |||
105 | * count = 0 (optional) | 105 | * count = 0 (optional) |
106 | * (Used for _DLM) | 106 | * (Used for _DLM) |
107 | * | 107 | * |
108 | * ACPI_PTYPE2_VAR_VAR: Variable number of subpackages, each of either a | ||
109 | * constant or variable length. The subpackages are preceded by a | ||
110 | * constant number of objects. | ||
111 | * (Used for _LPI, _RDI) | ||
112 | * | ||
108 | * ACPI_PTYPE2_UUID_PAIR: Each subpackage is preceded by a UUID Buffer. The UUID | 113 | * ACPI_PTYPE2_UUID_PAIR: Each subpackage is preceded by a UUID Buffer. The UUID |
109 | * defines the format of the package. Zero-length parent package is | 114 | * defines the format of the package. Zero-length parent package is |
110 | * allowed. | 115 | * allowed. |
@@ -123,7 +128,8 @@ enum acpi_return_package_types { | |||
123 | ACPI_PTYPE2_MIN = 8, | 128 | ACPI_PTYPE2_MIN = 8, |
124 | ACPI_PTYPE2_REV_FIXED = 9, | 129 | ACPI_PTYPE2_REV_FIXED = 9, |
125 | ACPI_PTYPE2_FIX_VAR = 10, | 130 | ACPI_PTYPE2_FIX_VAR = 10, |
126 | ACPI_PTYPE2_UUID_PAIR = 11 | 131 | ACPI_PTYPE2_VAR_VAR = 11, |
132 | ACPI_PTYPE2_UUID_PAIR = 12 | ||
127 | }; | 133 | }; |
128 | 134 | ||
129 | /* Support macros for users of the predefined info table */ | 135 | /* Support macros for users of the predefined info table */ |
@@ -172,7 +178,7 @@ enum acpi_return_package_types { | |||
172 | * These are the names that can actually be evaluated via acpi_evaluate_object. | 178 | * These are the names that can actually be evaluated via acpi_evaluate_object. |
173 | * Not present in this table are the following: | 179 | * Not present in this table are the following: |
174 | * | 180 | * |
175 | * 1) Predefined/Reserved names that are never evaluated via | 181 | * 1) Predefined/Reserved names that are not usually evaluated via |
176 | * acpi_evaluate_object: | 182 | * acpi_evaluate_object: |
177 | * _Lxx and _Exx GPE methods | 183 | * _Lxx and _Exx GPE methods |
178 | * _Qxx EC methods | 184 | * _Qxx EC methods |
@@ -361,6 +367,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
361 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */ | 367 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */ |
362 | PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0), | 368 | PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0), |
363 | 369 | ||
370 | {{"_BTH", METHOD_1ARGS(ACPI_TYPE_INTEGER), /* ACPI 6.0 */ | ||
371 | METHOD_NO_RETURN_VALUE}}, | ||
372 | |||
364 | {{"_BTM", METHOD_1ARGS(ACPI_TYPE_INTEGER), | 373 | {{"_BTM", METHOD_1ARGS(ACPI_TYPE_INTEGER), |
365 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 374 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
366 | 375 | ||
@@ -390,6 +399,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
390 | PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0, | 399 | PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0, |
391 | 0, 0, 0), | 400 | 0, 0, 0), |
392 | 401 | ||
402 | {{"_CR3", METHOD_0ARGS, /* ACPI 6.0 */ | ||
403 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | ||
404 | |||
393 | {{"_CRS", METHOD_0ARGS, | 405 | {{"_CRS", METHOD_0ARGS, |
394 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, | 406 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, |
395 | 407 | ||
@@ -445,7 +457,7 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
445 | {{"_DOS", METHOD_1ARGS(ACPI_TYPE_INTEGER), | 457 | {{"_DOS", METHOD_1ARGS(ACPI_TYPE_INTEGER), |
446 | METHOD_NO_RETURN_VALUE}}, | 458 | METHOD_NO_RETURN_VALUE}}, |
447 | 459 | ||
448 | {{"_DSD", METHOD_0ARGS, | 460 | {{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */ |
449 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */ | 461 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */ |
450 | PACKAGE_INFO(ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1, | 462 | PACKAGE_INFO(ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1, |
451 | ACPI_RTYPE_PACKAGE, 1, 0), | 463 | ACPI_RTYPE_PACKAGE, 1, 0), |
@@ -604,6 +616,12 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
604 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Int) */ | 616 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Int) */ |
605 | PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0), | 617 | PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0), |
606 | 618 | ||
619 | {{"_LPI", METHOD_0ARGS, /* ACPI 6.0 */ | ||
620 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (3 Int, n Pkg (10 Int/Buf) */ | ||
621 | PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 3, | ||
622 | ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER | ACPI_RTYPE_STRING, | ||
623 | 10, 0), | ||
624 | |||
607 | {{"_MAT", METHOD_0ARGS, | 625 | {{"_MAT", METHOD_0ARGS, |
608 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, | 626 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, |
609 | 627 | ||
@@ -624,6 +642,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
624 | ACPI_TYPE_INTEGER), | 642 | ACPI_TYPE_INTEGER), |
625 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 643 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
626 | 644 | ||
645 | {{"_MTL", METHOD_0ARGS, /* ACPI 6.0 */ | ||
646 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | ||
647 | |||
627 | {{"_NTT", METHOD_0ARGS, | 648 | {{"_NTT", METHOD_0ARGS, |
628 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 649 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
629 | 650 | ||
@@ -716,6 +737,10 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
716 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */ | 737 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */ |
717 | PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0), | 738 | PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0), |
718 | 739 | ||
740 | {{"_PRR", METHOD_0ARGS, /* ACPI 6.0 */ | ||
741 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Ref) */ | ||
742 | PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_REFERENCE, 1, 0, 0, 0), | ||
743 | |||
719 | {{"_PRS", METHOD_0ARGS, | 744 | {{"_PRS", METHOD_0ARGS, |
720 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, | 745 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, |
721 | 746 | ||
@@ -796,6 +821,11 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
796 | {{"_PXM", METHOD_0ARGS, | 821 | {{"_PXM", METHOD_0ARGS, |
797 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 822 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
798 | 823 | ||
824 | {{"_RDI", METHOD_0ARGS, /* ACPI 6.0 */ | ||
825 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int, n Pkg (m Ref)) */ | ||
826 | PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 1, | ||
827 | ACPI_RTYPE_REFERENCE, 0, 0), | ||
828 | |||
799 | {{"_REG", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER), | 829 | {{"_REG", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER), |
800 | METHOD_NO_RETURN_VALUE}}, | 830 | METHOD_NO_RETURN_VALUE}}, |
801 | 831 | ||
@@ -808,6 +838,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
808 | {{"_ROM", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER), | 838 | {{"_ROM", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER), |
809 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, | 839 | METHOD_RETURNS(ACPI_RTYPE_BUFFER)}}, |
810 | 840 | ||
841 | {{"_RST", METHOD_0ARGS, /* ACPI 6.0 */ | ||
842 | METHOD_NO_RETURN_VALUE}}, | ||
843 | |||
811 | {{"_RTV", METHOD_0ARGS, | 844 | {{"_RTV", METHOD_0ARGS, |
812 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 845 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
813 | 846 | ||
@@ -935,6 +968,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
935 | {{"_TDL", METHOD_0ARGS, | 968 | {{"_TDL", METHOD_0ARGS, |
936 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 969 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
937 | 970 | ||
971 | {{"_TFP", METHOD_0ARGS, /* ACPI 6.0 */ | ||
972 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | ||
973 | |||
938 | {{"_TIP", METHOD_1ARGS(ACPI_TYPE_INTEGER), | 974 | {{"_TIP", METHOD_1ARGS(ACPI_TYPE_INTEGER), |
939 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 975 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
940 | 976 | ||
@@ -959,6 +995,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = { | |||
959 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int with count */ | 995 | METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int with count */ |
960 | PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0), | 996 | PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0), |
961 | 997 | ||
998 | {{"_TSN", METHOD_0ARGS, /* ACPI 6.0 */ | ||
999 | METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}}, | ||
1000 | |||
962 | {{"_TSP", METHOD_0ARGS, | 1001 | {{"_TSP", METHOD_0ARGS, |
963 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, | 1002 | METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, |
964 | 1003 | ||
diff --git a/drivers/acpi/acpica/nsprepkg.c b/drivers/acpi/acpica/nsprepkg.c index 8b79958b7aca..9bb251932b45 100644 --- a/drivers/acpi/acpica/nsprepkg.c +++ b/drivers/acpi/acpica/nsprepkg.c | |||
@@ -316,6 +316,13 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, | |||
316 | acpi_ns_check_package_list(info, package, elements, count); | 316 | acpi_ns_check_package_list(info, package, elements, count); |
317 | break; | 317 | break; |
318 | 318 | ||
319 | case ACPI_PTYPE2_VAR_VAR: | ||
320 | /* | ||
321 | * Returns a variable list of packages, each with a variable list | ||
322 | * of objects. | ||
323 | */ | ||
324 | break; | ||
325 | |||
319 | case ACPI_PTYPE2_UUID_PAIR: | 326 | case ACPI_PTYPE2_UUID_PAIR: |
320 | 327 | ||
321 | /* The package must contain pairs of (UUID + type) */ | 328 | /* The package must contain pairs of (UUID + type) */ |
@@ -487,6 +494,12 @@ acpi_ns_check_package_list(struct acpi_evaluate_info *info, | |||
487 | } | 494 | } |
488 | break; | 495 | break; |
489 | 496 | ||
497 | case ACPI_PTYPE2_VAR_VAR: | ||
498 | /* | ||
499 | * Each subpackage has a fixed or variable number of elements | ||
500 | */ | ||
501 | break; | ||
502 | |||
490 | case ACPI_PTYPE2_FIXED: | 503 | case ACPI_PTYPE2_FIXED: |
491 | 504 | ||
492 | /* Each subpackage has a fixed length */ | 505 | /* Each subpackage has a fixed length */ |
diff --git a/drivers/acpi/acpica/nsrepair.c b/drivers/acpi/acpica/nsrepair.c index 151fcd95ba84..77d8103d0094 100644 --- a/drivers/acpi/acpica/nsrepair.c +++ b/drivers/acpi/acpica/nsrepair.c | |||
@@ -497,10 +497,10 @@ acpi_ns_remove_null_elements(struct acpi_evaluate_info *info, | |||
497 | case ACPI_PTYPE2_MIN: | 497 | case ACPI_PTYPE2_MIN: |
498 | case ACPI_PTYPE2_REV_FIXED: | 498 | case ACPI_PTYPE2_REV_FIXED: |
499 | case ACPI_PTYPE2_FIX_VAR: | 499 | case ACPI_PTYPE2_FIX_VAR: |
500 | |||
501 | break; | 500 | break; |
502 | 501 | ||
503 | default: | 502 | default: |
503 | case ACPI_PTYPE2_VAR_VAR: | ||
504 | case ACPI_PTYPE1_FIXED: | 504 | case ACPI_PTYPE1_FIXED: |
505 | case ACPI_PTYPE1_OPTION: | 505 | case ACPI_PTYPE1_OPTION: |
506 | return; | 506 | return; |