[PATCH 2/3][V2] acpi: method: add _WPC method test (introduced in ACPI 6.1)

Alex Hung alex.hung at canonical.com
Tue Jun 7 11:33:38 UTC 2016


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

diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index dcf3eb7..38e9631 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -246,6 +246,7 @@
  * _UPP 	 Y
  * _VPO 	 Y
  * _WAK 	 Y
+ * _WPC 	 Y
  * _WPP 	 Y
  * _Wxx 	 n/a
  * _WDG 	 N
@@ -5624,6 +5625,33 @@ static int method_test_PMM(fwts_framework *fw)
 /*
  * Section 10.5 Wireless Power Controllers
  */
+static void method_test_WPC_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	FWTS_UNUSED(private);
+
+	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+		return;
+
+	if (obj->Integer.Value <= 0x02 || obj->Integer.Value == 0xff)
+		method_passed_sane(fw, name, "integer");
+	else
+		fwts_failed(fw, LOG_LEVEL_HIGH,
+			"Method_WPCInvalidInteger",
+			"%s returned an invalid integer 0x%8.8" PRIx64,
+			name, (uint64_t)obj->Integer.Value);
+}
+
+static int method_test_WPC(fwts_framework *fw)
+{
+	return method_evaluate_method(fw, METHOD_OPTIONAL,
+		"_WPC", NULL, 0, method_test_WPC_return, "_WPC");
+}
+
 static int method_test_WPP(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
@@ -7088,6 +7116,7 @@ static fwts_framework_minor_test method_tests[] = {
 	/* { method_test_SHL, "Test _SHL (Set Hardware Limit)." }, */
 
 	/* Section 10.5 Wireless Power Controllers */
+	{ method_test_WPC, "Test _WPC (Wireless Power Calibration)." },
 	{ method_test_WPP, "Test _WPP (Wireless Power Polling)." },
 
 	/* Section 11.3 Fan Devices */
-- 
2.7.4




More information about the fwts-devel mailing list