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

ivanhu ivan.hu at canonical.com
Thu Feb 22 09:59:01 UTC 2018


Hi Alex,


I think it's no harm to give a warning for the firmware which not
followed the ACPI spec.

FWTS tests the firmware, not test for OS(Windows and Linux), even OSes
work with it, but it still not followed the ACPI spec.

Besides, we are not sure all OSes work with it.

Or we can send an ECR to UEFI forum to modify the ACPI _WAK method for
returning integer.


Anyone has comments?


Cheers,

Ivan


On 02/21/2018 03:27 PM, Alex Hung wrote:
> 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
>
>


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/fwts-devel/attachments/20180222/3e017bf2/attachment.sig>


More information about the fwts-devel mailing list