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

Commit 9c52657a authored by Bob Moore's avatar Bob Moore Committed by Len Brown
Browse files

ACPICA: Temporary fix for BankValue parameter



Temporary fix for BankValue parameter of a Bank
Field to support all constant values, including Zero
and One. Must eventually be converted to a full TermArg
evaluation.

Signed-off-by: default avatarAlexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 6b366e2f
Loading
Loading
Loading
Loading
+28 −2
Original line number Diff line number Diff line
@@ -133,7 +133,8 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
		}
	}

	/* We could put the returned object (Node) on the object stack for later,
	/*
	 * We could put the returned object (Node) on the object stack for later,
	 * but for now, we will put it in the "op" object that the parser uses,
	 * so we can get it again at the end of this scope
	 */
@@ -514,8 +515,33 @@ acpi_ds_create_bank_field(union acpi_parse_object *op,

	/* Third arg is the bank_value */

	/* TBD: This arg is a term_arg, not a constant, and must be evaluated */

	arg = arg->common.next;

	/* Currently, only the following constants are supported */

	switch (arg->common.aml_opcode) {
	case AML_ZERO_OP:
		info.bank_value = 0;
		break;

	case AML_ONE_OP:
		info.bank_value = 1;
		break;

	case AML_BYTE_OP:
	case AML_WORD_OP:
	case AML_DWORD_OP:
	case AML_QWORD_OP:
		info.bank_value = (u32) arg->common.value.integer;
		break;

	default:
		info.bank_value = 0;
		ACPI_ERROR((AE_INFO,
			    "Non-constant BankValue for BankField is not implemented"));
	}

	/* Fourth arg is the field flags */