Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e34a7813 authored by Bob Moore's avatar Bob Moore Committed by Rafael J. Wysocki
Browse files

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: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 37e12657
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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 */
+42 −3
Original line number Diff line number Diff line
@@ -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)}},

+13 −0
Original line number Diff line number Diff line
@@ -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 */
+1 −1
Original line number Diff line number Diff line
@@ -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;