[PATCH][V2] acpi: method: replace _GPE test by fwts_method_package_elements_type

Alex Hung alex.hung at canonical.com
Wed Jan 13 18:22:43 UTC 2021


Signed-off-by: Alex Hung <alex.hung at canonical.com>
---
 src/acpi/method/method.c | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index cf994343..a6a06338 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -4669,7 +4669,11 @@ static void method_test_GPE_return(
 {
 	FWTS_UNUSED(private);
 	FWTS_UNUSED(buf);
-	bool failed = false;
+
+	static const fwts_package_element elem[] = {
+		{ ACPI_TYPE_LOCAL_REFERENCE,	"GPE block device" },
+		{ ACPI_TYPE_INTEGER,		"SCI interrupt" },
+	};
 
 	switch (obj->Type) {
 	case ACPI_TYPE_INTEGER:
@@ -4683,19 +4687,7 @@ static void method_test_GPE_return(
 				name, (uint64_t)obj->Integer.Value);
 		break;
 	case ACPI_TYPE_PACKAGE:
-		if (obj->Package.Elements[0].Type != ACPI_TYPE_LOCAL_REFERENCE) {
-			failed = true;
-			fwts_failed(fw, LOG_LEVEL_HIGH, "Method_GPEBadSubPackageReturnType",
-			"%s sub-package element 0 is not a reference.",	name);
-		}
-
-		if (obj->Package.Elements[1].Type != ACPI_TYPE_INTEGER) {
-			failed = true;
-			fwts_failed(fw, LOG_LEVEL_HIGH, "Method_GPEBadSubPackageReturnType",
-			"%s sub-package element 1 is not an integer.", name);
-		}
-
-		if (!failed)
+		if (fwts_method_package_elements_type(fw, name, "_GPE", obj, elem, FWTS_ARRAY_SIZE(elem)) == FWTS_OK)
 			fwts_method_passed_sane(fw, name, "package");
 
 		break;
-- 
2.25.1




More information about the fwts-devel mailing list