diff mbox series

[3/7] acpi: method: refine tests sub-package elements

Message ID 20210123021231.54136-3-alex.hung@canonical.com
State Accepted
Headers show
Series [1/7] acpi: method: refine _PSS and _TSS method tests | expand

Commit Message

Alex Hung Jan. 23, 2021, 2:12 a.m. UTC
Signed-off-by: Alex Hung <alex.hung@canonical.com>
---
 src/acpi/method/method.c | 32 +++++++-------------------------
 1 file changed, 7 insertions(+), 25 deletions(-)

Comments

Ivan Hu Jan. 25, 2021, 3:18 a.m. UTC | #1
On 1/23/21 10:12 AM, Alex Hung wrote:
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  src/acpi/method/method.c | 32 +++++++-------------------------
>  1 file changed, 7 insertions(+), 25 deletions(-)
> 
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 2f59ac41..8bc25396 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -1945,21 +1945,16 @@ static void method_test_CST_return(
>  	ACPI_OBJECT *obj,
>  	void *private)
>  {
> -	uint32_t i, j;
> +	uint32_t i;
>  	bool failed = false;
>  	bool *cst_elements_ok;
>  	bool an_element_ok = false;
>  
> -	typedef struct {
> -		const uint32_t	type;
> -		const char 	*name;
> -	} cstate_info;
> -
> -	static const cstate_info cstate_types[] = {
> -		{ ACPI_TYPE_BUFFER,	"buffer" },
> -		{ ACPI_TYPE_INTEGER,	"integer" },
> -		{ ACPI_TYPE_INTEGER,	"integer" },
> -		{ ACPI_TYPE_INTEGER,	"integer" },
> +	static const fwts_package_element elements[] = {
> +		{ ACPI_TYPE_BUFFER,	"Register" },
> +		{ ACPI_TYPE_INTEGER,	"Type" },
> +		{ ACPI_TYPE_INTEGER,	"Latency" },
> +		{ ACPI_TYPE_INTEGER,	"Power" },
>  	};
>  
>  	FWTS_UNUSED(private);
> @@ -2015,25 +2010,12 @@ static void method_test_CST_return(
>  		}
>  
>  		pkg = &obj->Package.Elements[i];
> -
> -		if (fwts_method_subpackage_count_equal(fw, name, pkg, i, 4) != FWTS_OK) {
> +		if (fwts_method_package_elements_type(fw, name, pkg, elements) != FWTS_OK) {
>  			cst_elements_ok[i] = false;
>  			failed = true;
>  			continue;
>  		}
>  
> -		for (j = 0; j < 4; j++) {
> -			if (pkg->Package.Elements[j].Type != cstate_types[j].type) {
> -				fwts_failed(fw, LOG_LEVEL_MEDIUM,
> -					"Method_CSTCStatePackageElementInvalidType",
> -					"%s C-State package %" PRIu32 " element %" PRIu32
> -					" was not a %s.",
> -					name, i, j, cstate_types[j].name);
> -				cst_elements_ok[i] = false;
> -				failed = true;
> -			}
> -		}
> -
>  		/* Some very simple sanity checks on Register Resource Buffer */
>  		if (pkg->Package.Elements[0].Type == ACPI_TYPE_BUFFER) {
>  			if (pkg->Package.Elements[0].Buffer.Pointer == NULL) {
> 


Acked-by: Ivan Hu <ivan.hu@canonical.com>
Colin Ian King Jan. 26, 2021, 6:01 p.m. UTC | #2
On 23/01/2021 02:12, Alex Hung wrote:
> Signed-off-by: Alex Hung <alex.hung@canonical.com>
> ---
>  src/acpi/method/method.c | 32 +++++++-------------------------
>  1 file changed, 7 insertions(+), 25 deletions(-)
> 
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 2f59ac41..8bc25396 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -1945,21 +1945,16 @@ static void method_test_CST_return(
>  	ACPI_OBJECT *obj,
>  	void *private)
>  {
> -	uint32_t i, j;
> +	uint32_t i;
>  	bool failed = false;
>  	bool *cst_elements_ok;
>  	bool an_element_ok = false;
>  
> -	typedef struct {
> -		const uint32_t	type;
> -		const char 	*name;
> -	} cstate_info;
> -
> -	static const cstate_info cstate_types[] = {
> -		{ ACPI_TYPE_BUFFER,	"buffer" },
> -		{ ACPI_TYPE_INTEGER,	"integer" },
> -		{ ACPI_TYPE_INTEGER,	"integer" },
> -		{ ACPI_TYPE_INTEGER,	"integer" },
> +	static const fwts_package_element elements[] = {
> +		{ ACPI_TYPE_BUFFER,	"Register" },
> +		{ ACPI_TYPE_INTEGER,	"Type" },
> +		{ ACPI_TYPE_INTEGER,	"Latency" },
> +		{ ACPI_TYPE_INTEGER,	"Power" },
>  	};
>  
>  	FWTS_UNUSED(private);
> @@ -2015,25 +2010,12 @@ static void method_test_CST_return(
>  		}
>  
>  		pkg = &obj->Package.Elements[i];
> -
> -		if (fwts_method_subpackage_count_equal(fw, name, pkg, i, 4) != FWTS_OK) {
> +		if (fwts_method_package_elements_type(fw, name, pkg, elements) != FWTS_OK) {
>  			cst_elements_ok[i] = false;
>  			failed = true;
>  			continue;
>  		}
>  
> -		for (j = 0; j < 4; j++) {
> -			if (pkg->Package.Elements[j].Type != cstate_types[j].type) {
> -				fwts_failed(fw, LOG_LEVEL_MEDIUM,
> -					"Method_CSTCStatePackageElementInvalidType",
> -					"%s C-State package %" PRIu32 " element %" PRIu32
> -					" was not a %s.",
> -					name, i, j, cstate_types[j].name);
> -				cst_elements_ok[i] = false;
> -				failed = true;
> -			}
> -		}
> -
>  		/* Some very simple sanity checks on Register Resource Buffer */
>  		if (pkg->Package.Elements[0].Type == ACPI_TYPE_BUFFER) {
>  			if (pkg->Package.Elements[0].Buffer.Pointer == NULL) {
> 

Acked-by: Colin Ian King <colin.king@canonical.com>
diff mbox series

Patch

diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index 2f59ac41..8bc25396 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -1945,21 +1945,16 @@  static void method_test_CST_return(
 	ACPI_OBJECT *obj,
 	void *private)
 {
-	uint32_t i, j;
+	uint32_t i;
 	bool failed = false;
 	bool *cst_elements_ok;
 	bool an_element_ok = false;
 
-	typedef struct {
-		const uint32_t	type;
-		const char 	*name;
-	} cstate_info;
-
-	static const cstate_info cstate_types[] = {
-		{ ACPI_TYPE_BUFFER,	"buffer" },
-		{ ACPI_TYPE_INTEGER,	"integer" },
-		{ ACPI_TYPE_INTEGER,	"integer" },
-		{ ACPI_TYPE_INTEGER,	"integer" },
+	static const fwts_package_element elements[] = {
+		{ ACPI_TYPE_BUFFER,	"Register" },
+		{ ACPI_TYPE_INTEGER,	"Type" },
+		{ ACPI_TYPE_INTEGER,	"Latency" },
+		{ ACPI_TYPE_INTEGER,	"Power" },
 	};
 
 	FWTS_UNUSED(private);
@@ -2015,25 +2010,12 @@  static void method_test_CST_return(
 		}
 
 		pkg = &obj->Package.Elements[i];
-
-		if (fwts_method_subpackage_count_equal(fw, name, pkg, i, 4) != FWTS_OK) {
+		if (fwts_method_package_elements_type(fw, name, pkg, elements) != FWTS_OK) {
 			cst_elements_ok[i] = false;
 			failed = true;
 			continue;
 		}
 
-		for (j = 0; j < 4; j++) {
-			if (pkg->Package.Elements[j].Type != cstate_types[j].type) {
-				fwts_failed(fw, LOG_LEVEL_MEDIUM,
-					"Method_CSTCStatePackageElementInvalidType",
-					"%s C-State package %" PRIu32 " element %" PRIu32
-					" was not a %s.",
-					name, i, j, cstate_types[j].name);
-				cst_elements_ok[i] = false;
-				failed = true;
-			}
-		}
-
 		/* Some very simple sanity checks on Register Resource Buffer */
 		if (pkg->Package.Elements[0].Type == ACPI_TYPE_BUFFER) {
 			if (pkg->Package.Elements[0].Buffer.Pointer == NULL) {