aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2015-05-20 22:30:18 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-05-21 21:22:19 -0400
commite34a7813cf7841ab351d1cb4152c2f4ceaa00070 (patch)
tree449c9a93c46d89527e0a9a3773edd64559b7547b
parent37e12657f8922ebc62f696494c56c81db509053e (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.h10
-rw-r--r--drivers/acpi/acpica/acpredef.h45
-rw-r--r--drivers/acpi/acpica/nsprepkg.c13
-rw-r--r--drivers/acpi/acpica/nsrepair.c2
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
355struct 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
355union acpi_predefined_info { 364union 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;