ACK: [PATCH 2/7] acpi: method: merge _PCT & _PTC method tests
ivanhu
ivan.hu at canonical.com
Mon Jan 25 03:17:38 UTC 2021
On 1/23/21 10:12 AM, Alex Hung wrote:
> Both methods have the same definition.
>
> Signed-off-by: Alex Hung <alex.hung at canonical.com>
> ---
> src/acpi/method/method.c | 87 +++++++++++++++-------------------------
> 1 file changed, 33 insertions(+), 54 deletions(-)
>
> diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
> index 8ee03b1e..2f59ac41 100644
> --- a/src/acpi/method/method.c
> +++ b/src/acpi/method/method.c
> @@ -2100,13 +2100,18 @@ static int method_test_CST(fwts_framework *fw)
> "_CST", NULL, 0, method_test_CST_return, NULL);
> }
>
> -static void method_test_PCT_return(
> +static void method_test_PCT_PTC_return(
> fwts_framework *fw,
> char *name,
> ACPI_BUFFER *buf,
> ACPI_OBJECT *obj,
> void *private)
> {
> + uint32_t i;
> + bool failed = false;
> + char *objname = (char*) private;
> + char tmp[128];
> +
> static const fwts_package_element elements[] = {
> { ACPI_TYPE_BUFFER, "ControlRegister" },
> { ACPI_TYPE_BUFFER, "StatusRegister" },
> @@ -2120,13 +2125,36 @@ static void method_test_PCT_return(
> if (fwts_method_package_elements_type(fw, name, obj, elements) != FWTS_OK)
> return;
>
> - fwts_method_passed_sane(fw, name, "package");
> + snprintf(tmp, sizeof(tmp), "Method%sBadElement", objname);
> + for (i = 0; i < obj->Package.Count; i++) {
> + ACPI_RESOURCE *resource = NULL;
> + ACPI_STATUS status;
> + ACPI_OBJECT *element_buf = &obj->Package.Elements[i];
> +
> + status = AcpiBufferToResource(element_buf->Buffer.Pointer, element_buf->Buffer.Length, &resource);
> + if (ACPI_FAILURE(status) || !resource) {
> + failed = true;
> + fwts_failed(fw, LOG_LEVEL_HIGH, tmp,
> + "%s should contain only Resource Descriptors", name);
> + continue;
> + }
> +
> + if (resource->Type != ACPI_RESOURCE_TYPE_GENERIC_REGISTER) {
> + failed = true;
> + fwts_failed(fw, LOG_LEVEL_HIGH, tmp,
> + "%s should contain only Resource Type 16, got %" PRIu32 "\n",
> + name, resource->Type);
> + }
> + }
> +
> + if (!failed)
> + fwts_method_passed_sane(fw, name, "package");
> }
>
> static int method_test_PCT(fwts_framework *fw)
> {
> - return method_evaluate_method(fw, METHOD_OPTIONAL, "_PCT", NULL,
> - 0, method_test_PCT_return, NULL);
> + return method_evaluate_method(fw, METHOD_OPTIONAL,
> + "_PCT", NULL, 0, method_test_PCT_PTC_return, "_PCT");
> }
>
> static void method_test_PSS_return(
> @@ -2303,59 +2331,10 @@ static int method_test_PDL(fwts_framework *fw)
> "_PDL", NULL, 0, fwts_method_test_integer_return, NULL);
> }
>
> -
> -static void method_test_PTC_return(
> - fwts_framework *fw,
> - char *name,
> - ACPI_BUFFER *buf,
> - ACPI_OBJECT *obj,
> - void *private)
> -{
> - uint32_t i;
> - bool failed = false;
> -
> - FWTS_UNUSED(private);
> -
> - if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
> - return;
> -
> - if (fwts_method_package_elements_all_type(fw, name, obj, ACPI_TYPE_BUFFER) != FWTS_OK)
> - return;
> -
> - if (fwts_method_package_count_equal(fw, name, obj, 2) != FWTS_OK)
> - return;
> -
> - for (i = 0; i < obj->Package.Count; i++) {
> - ACPI_RESOURCE *resource = NULL;
> - ACPI_STATUS status;
> - ACPI_OBJECT *element_buf = &obj->Package.Elements[i];
> -
> - status = AcpiBufferToResource(element_buf->Buffer.Pointer, element_buf->Buffer.Length, &resource);
> - if (ACPI_FAILURE(status) || !resource) {
> - failed = true;
> - fwts_failed(fw, LOG_LEVEL_HIGH,
> - "Method_PTCBadElement",
> - "%s should contain only Resource Descriptors", name);
> - continue;
> - }
> -
> - if (resource->Type != ACPI_RESOURCE_TYPE_GENERIC_REGISTER) {
> - failed = true;
> - fwts_failed(fw, LOG_LEVEL_HIGH,
> - "Method_PTCBadElement",
> - "%s should contain only Resource Type 16, got %" PRIu32 "\n",
> - name, resource->Type);
> - }
> - }
> -
> - if (!failed)
> - fwts_method_passed_sane(fw, name, "package");
> -}
> -
> static int method_test_PTC(fwts_framework *fw)
> {
> return method_evaluate_method(fw, METHOD_OPTIONAL,
> - "_PTC", NULL, 0, method_test_PTC_return, NULL);
> + "_PTC", NULL, 0, method_test_PCT_PTC_return, "_PTC");
> }
>
> static int method_test_TDL(fwts_framework *fw)
>
Acked-by: Ivan Hu <ivan.hu at canonical.com>
More information about the fwts-devel
mailing list