[PATCH 7/8] acpi: method: Add PRx, SxD, SxW checks

IvanHu ivan.hu at canonical.com
Thu Sep 27 17:09:51 UTC 2012


On 09/20/2012 01:53 AM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/acpi/method/method.c |  100 ++++++++++++++++++++++++++++++----------------
>   1 file changed, 66 insertions(+), 34 deletions(-)
>
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 0e82801..86b92ea 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -150,10 +150,10 @@
>    * _PPC  8.4.4.3	N
>    * _PPE  8.4.6		N
>    * _PR   5.3.1		N
> - * _PR0  7.2.8		N
> - * _PR1	 7.2.9		N
> - * _PR2  7.2.10		N
> - * _PR3  7.2.11		N
> + * _PR0  7.2.8		Y
> + * _PR1	 7.2.9		Y
> + * _PR2  7.2.10		Y
> + * _PR3  7.2.11		Y
>    * _PRE  7.2.12		Y
>    * _PRL  10.3.4		N
>    * _PRS  6.2.11		N
> @@ -187,15 +187,15 @@
>    * _S3_  7.3.4.4	N
>    * _S4_  7.3.4.5	N
>    * _S5_  7.3.4.6	N
> - * _S1D  7.2.16		N
> - * _S2D  7.2.17		N
> - * _S3D  7.2.18		N
> - * _S4D  7.2.19		N
> - * _S0W  7.2.20		N
> - * _S1W  7.2.21		N
> - * _S2W	 7.2.22		N
> - * _S3W  7.2.23		N
> - * _S4W  7.2.24		N
> + * _S1D  7.2.16		Y
> + * _S2D  7.2.17		Y
> + * _S3D  7.2.18		Y
> + * _S4D  7.2.19		Y
> + * _S0W  7.2.20		Y
> + * _S1W  7.2.21		Y
> + * _S2W	 7.2.22		Y
> + * _S3W  7.2.23		Y
> + * _S4W  7.2.24		Y
>    * _SB_  5.3.1		n/a
>    * _SBS  10.1.3		Y
>    * _SCP  11.4.11	Y
> @@ -1195,7 +1195,7 @@ static int method_test_PSE(fwts_framework *fw)
>   		"_PSE", arg, 1, method_test_NULL_return, NULL);
>   }
>
> -static void method_test_PRE_return(
> +static void method_test_power_resources_return(
>   	fwts_framework *fw,
>   	char *name,
>   	ACPI_BUFFER *buf,
> @@ -1211,20 +1211,27 @@ static void method_test_PRE_return(
>   	for (i = 0; i < obj->Package.Count; i++) {
>   		if (obj->Package.Elements[i].Type != ACPI_TYPE_LOCAL_REFERENCE) {
>   			fwts_failed(fw, LOG_LEVEL_MEDIUM,
> -				"Method_PREElementType",
> -				"_PRE package element %d was not a reference.",
> -				i);
> +				"Method_PowerResourceElementType",
> +				"%s package element %d was not a reference.",
> +				name, i);
>   			fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
>   		}
>   	}
>   }
>
> -static int method_test_PRE(fwts_framework *fw)
> -{
> -	return method_evaluate_method(fw, METHOD_OPTIONAL,
> -		"_PRE", NULL, 0, method_test_PRE_return, NULL);
> +#define method_test_POWER(name)						\
> +static int method_test ## name(fwts_framework *fw)			\
> +{									\
> +	return method_evaluate_method(fw, METHOD_OPTIONAL,		\
> +		# name, NULL, 0, method_test_power_resources_return, # name);\
>   }
>
> +method_test_POWER(_PR0)
> +method_test_POWER(_PR1)
> +method_test_POWER(_PR2)
> +method_test_POWER(_PR3)
> +method_test_POWER(_PRE)
> +
>   static int method_test_PSW(fwts_framework *fw)
>   {
>   	ACPI_OBJECT arg[1];
> @@ -1236,6 +1243,31 @@ static int method_test_PSW(fwts_framework *fw)
>   		"_PSW", arg, 1, method_test_NULL_return, NULL);
>   }
>
> +#define method_test_SxD(name)						\
> +static int method_test ## name(fwts_framework *fw)			\
> +{									\
> +	return method_evaluate_method(fw, METHOD_OPTIONAL,		\
> +		# name, NULL, 0, method_test_integer_return, # name);	\
> +}
> +
> +method_test_SxD(_S1D)
> +method_test_SxD(_S2D)
> +method_test_SxD(_S3D)
> +method_test_SxD(_S4D)
> +
> +#define method_test_SxW(name)						\
> +static int method_test ## name(fwts_framework *fw)			\
> +{									\
> +	return method_evaluate_method(fw, METHOD_OPTIONAL,		\
> +		# name, NULL, 0, method_test_integer_return, # name);	\
> +}
> +
> +method_test_SxW(_S0W)
> +method_test_SxW(_S1W)
> +method_test_SxW(_S2W)
> +method_test_SxW(_S3W)
> +method_test_SxW(_S4W)
> +
>   static int method_test_IRC(fwts_framework *fw)
>   {
>   	return method_evaluate_method(fw, METHOD_OPTIONAL,
> @@ -3164,10 +3196,10 @@ static fwts_framework_minor_test method_tests[] = {
>   	{ method_test_DSW, "Check _DSW (Device Sleep Wake)." },
>   	{ method_test_IRC, "Check _IRC (In Rush Current)." },
>   	{ method_test_PRE, "Check _PRE (Power Resources for Enumeration)." },
> -	/* { method_test_PR0, "Check _PR0 (Power Resources for D0)." }, */
> -	/* { method_test_PR1, "Check _PR1 (Power Resources for D1)." }, */
> -	/* { method_test_PR2, "Check _PR2 (Power Resources for D2)." }, */
> -	/* { method_test_PR3, "Check _PR3 (Power Resources for D3)." }, */
> +	{ method_test_PR0, "Check _PR0 (Power Resources for D0)." },
> +	{ method_test_PR1, "Check _PR1 (Power Resources for D1)." },
> +	{ method_test_PR2, "Check _PR2 (Power Resources for D2)." },
> +	{ method_test_PR3, "Check _PR3 (Power Resources for D3)." },
>   	/* { method_test_PRW, "Check _PRW (Power Resources for Wake)." }, */
>   	{ method_test_PS0, "Check _PS0 (Power State 0)." },
>   	{ method_test_PS1, "Check _PS1 (Power State 1)." },
> @@ -3176,15 +3208,15 @@ static fwts_framework_minor_test method_tests[] = {
>   	{ method_test_PSC, "Check _PSC (Power State Current)." },
>   	{ method_test_PSE, "Check _PSE (Power State for Enumeration)." },
>   	{ method_test_PSW, "Check _PSW (Power State Wake)." },
> -	/* { method_test_S1D, "Check _S1D (S1 Device State)." }, */
> -	/* { method_test_S2D, "Check _S2D (S2 Device State)." }, */
> -	/* { method_test_S3D, "Check _S3D (S3 Device State)." }, */
> -	/* { method_test_S4D, "Check _S4D (S4 Device StSystem Statusate)." }, */
> -	/* { method_test_S0W, "Check _S0W (S0 Device Wake State)." }, */
> -	/* { method_test_S1W, "Check _S1W (S1 Device Wake State)." }, */
> -	/* { method_test_S2W, "Check _S2W (S2 Device Wake State)." }, */
> -	/* { method_test_S3W, "Check _S3W (S3 Device Wake State)." }, */
> -	/* { method_test_S4W, "Check _S4W (S4 Device Wake State)." }, */
> +	{ method_test_S1D, "Check _S1D (S1 Device State)." },
> +	{ method_test_S2D, "Check _S2D (S2 Device State)." },
> +	{ method_test_S3D, "Check _S3D (S3 Device State)." },
> +	{ method_test_S4D, "Check _S4D (S4 Device State)." },
> +	{ method_test_S0W, "Check _S0W (S0 Device Wake State)." },
> +	{ method_test_S1W, "Check _S1W (S1 Device Wake State)." },
> +	{ method_test_S2W, "Check _S2W (S2 Device Wake State)." },
> +	{ method_test_S3W, "Check _S3W (S3 Device Wake State)." },
> +	{ method_test_S4W, "Check _S4W (S4 Device Wake State)." },
>
>   	/* Section 7.3 OEM-Supplied System-Level Control Methods */
>   	/* { method_test_S0_, "Check _S0_ (S0 System State)." }, */
>

Acked-by: Ivan Hu <ivan.hu at canonical.com>



More information about the fwts-devel mailing list