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

Alex Hung alex.hung at canonical.com
Wed Feb 21 07:27:32 UTC 2018


On Tue, Feb 20, 2018 at 11:20 PM, ivanhu <ivan.hu at canonical.com> wrote:
>
>
> 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?

As far as I know, both Linux and Windows have been allowing it for
many years, since nobody gets it right since the beginning. It is
almost like a standard now...

I would say we don't need to worry about it at all.

>
> Ivan
>
> --
> fwts-devel mailing list
> fwts-devel at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/fwts-devel



-- 
Cheers,
Alex Hung



More information about the fwts-devel mailing list