[PATCH] acpi: method: allow _WAK to return an integer

ivanhu ivan.hu at canonical.com
Wed Feb 21 07:20:07 UTC 2018



On 02/14/2018 02:19 PM, Alex Hung wrote:
> Linux kernel allows _WAK to return an integer, as in acpica/acpredef.h.
> The reason seems to be that so many system BIOS returns an integer
> instead of a package defined in ACPI spec, and it becomes a strange
> standard already. Since operating system allows the integer, it should
> be appropriate for fwts to relax it as well.
> 
> Signed-off-by: Alex Hung <alex.hung at canonical.com>
> ---
>   src/acpi/method/method.c | 25 +++++++++++++++++--------
>   1 file changed, 17 insertions(+), 8 deletions(-)
> 
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 6839c3f..7c73e14 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -5552,17 +5552,26 @@ static void method_test_WAK_return(
>   	void *private)
>   {
>   	FWTS_UNUSED(private);
> +	FWTS_UNUSED(buf);
>   
> -	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
> -		return;
> -
> -	if (fwts_method_package_count_equal(fw, name, "_WAK", obj, 2) != FWTS_OK)
> -		return;
> +	switch (obj->Type) {
> +	case ACPI_TYPE_PACKAGE:
> +		if (fwts_method_package_count_equal(fw, name, "_WAK", obj, 2) != FWTS_OK)
> +			return;
>   
> -	if (fwts_method_package_elements_all_type(fw, name, "_WAK", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
> -		return;
> +		if (fwts_method_package_elements_all_type(fw, name, "_WAK", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
> +			return;
>   
> -	fwts_method_passed_sane(fw, name, "package");
> +		fwts_method_passed_sane(fw, name, "package");
> +		break;
> +	case ACPI_TYPE_INTEGER:
> +		fwts_method_passed_sane(fw, name, "integer");
> +		break;
> +	default:
> +		fwts_failed(fw, LOG_LEVEL_CRITICAL, "MethodReturnBadType",
> +			"%s did not return a package or an integer.", name);
> +		break;
> +	}
>   }
>   
>   static int method_test_WAK(fwts_framework *fw)
> 


Should we give some warnings for this?

Ivan



More information about the fwts-devel mailing list