forked from Minki/linux
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>
This commit is contained in:
parent
37e12657f8
commit
e34a7813cf
@ -352,11 +352,21 @@ struct acpi_package_info3 {
|
||||
u16 reserved;
|
||||
};
|
||||
|
||||
struct acpi_package_info4 {
|
||||
u8 type;
|
||||
u8 object_type1;
|
||||
u8 count1;
|
||||
u8 sub_object_types;
|
||||
u8 pkg_count;
|
||||
u16 reserved;
|
||||
};
|
||||
|
||||
union acpi_predefined_info {
|
||||
struct acpi_name_info info;
|
||||
struct acpi_package_info ret_info;
|
||||
struct acpi_package_info2 ret_info2;
|
||||
struct acpi_package_info3 ret_info3;
|
||||
struct acpi_package_info4 ret_info4;
|
||||
};
|
||||
|
||||
/* Reset to default packing */
|
||||
|
@ -105,6 +105,11 @@
|
||||
* count = 0 (optional)
|
||||
* (Used for _DLM)
|
||||
*
|
||||
* ACPI_PTYPE2_VAR_VAR: Variable number of subpackages, each of either a
|
||||
* constant or variable length. The subpackages are preceded by a
|
||||
* constant number of objects.
|
||||
* (Used for _LPI, _RDI)
|
||||
*
|
||||
* ACPI_PTYPE2_UUID_PAIR: Each subpackage is preceded by a UUID Buffer. The UUID
|
||||
* defines the format of the package. Zero-length parent package is
|
||||
* allowed.
|
||||
@ -123,7 +128,8 @@ enum acpi_return_package_types {
|
||||
ACPI_PTYPE2_MIN = 8,
|
||||
ACPI_PTYPE2_REV_FIXED = 9,
|
||||
ACPI_PTYPE2_FIX_VAR = 10,
|
||||
ACPI_PTYPE2_UUID_PAIR = 11
|
||||
ACPI_PTYPE2_VAR_VAR = 11,
|
||||
ACPI_PTYPE2_UUID_PAIR = 12
|
||||
};
|
||||
|
||||
/* Support macros for users of the predefined info table */
|
||||
@ -172,7 +178,7 @@ enum acpi_return_package_types {
|
||||
* These are the names that can actually be evaluated via acpi_evaluate_object.
|
||||
* Not present in this table are the following:
|
||||
*
|
||||
* 1) Predefined/Reserved names that are never evaluated via
|
||||
* 1) Predefined/Reserved names that are not usually evaluated via
|
||||
* acpi_evaluate_object:
|
||||
* _Lxx and _Exx GPE methods
|
||||
* _Qxx EC methods
|
||||
@ -361,6 +367,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
|
||||
PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
|
||||
|
||||
{{"_BTH", METHOD_1ARGS(ACPI_TYPE_INTEGER), /* ACPI 6.0 */
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
{{"_BTM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -390,6 +399,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0,
|
||||
0, 0, 0),
|
||||
|
||||
{{"_CR3", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_CRS", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
@ -445,7 +457,7 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_DOS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
{{"_DSD", METHOD_0ARGS,
|
||||
{{"_DSD", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1,
|
||||
ACPI_RTYPE_PACKAGE, 1, 0),
|
||||
@ -604,6 +616,12 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Int) */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
|
||||
|
||||
{{"_LPI", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (3 Int, n Pkg (10 Int/Buf) */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 3,
|
||||
ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER | ACPI_RTYPE_STRING,
|
||||
10, 0),
|
||||
|
||||
{{"_MAT", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
@ -624,6 +642,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_MTL", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_NTT", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -716,6 +737,10 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
|
||||
PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
|
||||
|
||||
{{"_PRR", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Ref) */
|
||||
PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_REFERENCE, 1, 0, 0, 0),
|
||||
|
||||
{{"_PRS", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
@ -796,6 +821,11 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_PXM", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_RDI", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int, n Pkg (m Ref)) */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_VAR_VAR, ACPI_RTYPE_INTEGER, 1,
|
||||
ACPI_RTYPE_REFERENCE, 0, 0),
|
||||
|
||||
{{"_REG", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
@ -808,6 +838,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_ROM", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
{{"_RST", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_NO_RETURN_VALUE}},
|
||||
|
||||
{{"_RTV", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -935,6 +968,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
{{"_TDL", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_TFP", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_TIP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
@ -959,6 +995,9 @@ const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
|
||||
METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int with count */
|
||||
PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
|
||||
|
||||
{{"_TSN", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}},
|
||||
|
||||
{{"_TSP", METHOD_0ARGS,
|
||||
METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
|
@ -316,6 +316,13 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
|
||||
acpi_ns_check_package_list(info, package, elements, count);
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_VAR_VAR:
|
||||
/*
|
||||
* Returns a variable list of packages, each with a variable list
|
||||
* of objects.
|
||||
*/
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_UUID_PAIR:
|
||||
|
||||
/* The package must contain pairs of (UUID + type) */
|
||||
@ -487,6 +494,12 @@ acpi_ns_check_package_list(struct acpi_evaluate_info *info,
|
||||
}
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_VAR_VAR:
|
||||
/*
|
||||
* Each subpackage has a fixed or variable number of elements
|
||||
*/
|
||||
break;
|
||||
|
||||
case ACPI_PTYPE2_FIXED:
|
||||
|
||||
/* Each subpackage has a fixed length */
|
||||
|
@ -497,10 +497,10 @@ acpi_ns_remove_null_elements(struct acpi_evaluate_info *info,
|
||||
case ACPI_PTYPE2_MIN:
|
||||
case ACPI_PTYPE2_REV_FIXED:
|
||||
case ACPI_PTYPE2_FIX_VAR:
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
case ACPI_PTYPE2_VAR_VAR:
|
||||
case ACPI_PTYPE1_FIXED:
|
||||
case ACPI_PTYPE1_OPTION:
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user