Bug 194671 - WMI compliance - ACPI Error: Needed [Buffer/String/Package] - HP EliteBook 725 G3
Summary: WMI compliance - ACPI Error: Needed [Buffer/String/Package] - HP EliteBook 72...
Status: CLOSED DOCUMENTED
Alias: None
Product: ACPI
Classification: Unclassified
Component: BIOS (show other bugs)
Hardware: Intel Linux
: P1 normal
Assignee: Lv Zheng
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-23 09:44 UTC by Mateusz
Modified: 2017-03-28 22:15 UTC (History)
4 users (show)

See Also:
Kernel Version: 4.9.11-1-ARCH
Subsystem:
Regression: No
Bisected commit-id:


Attachments
Full dmesg output (92.62 KB, text/plain)
2017-02-23 09:44 UTC, Mateusz
Details
acpidump output (514.37 KB, text/plain)
2017-02-23 09:45 UTC, Mateusz
Details
dmidecode (9.64 KB, text/plain)
2017-02-23 09:45 UTC, Mateusz
Details
"lspci -vvnn" output (13.24 KB, text/plain)
2017-02-23 09:45 UTC, Mateusz
Details
Disassembled and recompiled dsdt (279.01 KB, application/gzip)
2017-02-23 09:46 UTC, Mateusz
Details
Disassembled and recompiled dsdt (280.26 KB, application/gzip)
2017-02-23 09:52 UTC, Mateusz
Details
Partially corrected DSDT.dsl (516.62 KB, text/x-csrc)
2017-02-23 09:58 UTC, Mateusz
Details

Description Mateusz 2017-02-23 09:44:18 UTC
Created attachment 254883 [details]
Full dmesg output

On Laptop HP EliteBook 725 G3 bios hibernation does not work. When trying to enter hibernation laptop is overheating and shutting down. In dmesg after system is powered nn I see:
[   61.219219] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff8804287090d8 (20160831/exresop-594)
[   61.226648] ACPI Error: Method parse/execution failed [\_SB.WMIV.WVPO] (Node ffff88042e89b5a0), AE_AML_OPERAND_TYPE (20160831/psparse-543)
[   61.228090] ACPI Error: Method parse/execution failed [\_SB.WMIV.WMPV] (Node ffff88042e89b208), AE_AML_OPERAND_TYPE (20160831/psparse-543)
[   61.239984] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff880428709750 (20160831/exresop-594)
[   61.239995] ACPI Error: Method parse/execution failed [\_SB.WMIV.WVPO] (Node ffff88042e89b5a0), AE_AML_OPERAND_TYPE (20160831/psparse-543)
[   61.240001] ACPI Error: Method parse/execution failed [\_SB.WMIV.WMPV] (Node ffff88042e89b208), AE_AML_OPERAND_TYPE (20160831/psparse-543)
[   61.241564] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff880428709af8 (20160831/exresop-594)
[   61.241572] ACPI Error: Method parse/execution failed [\_SB.WMIV.WVPO] (Node ffff88042e89b5a0), AE_AML_OPERAND_TYPE (20160831/psparse-543)
[   61.241578] ACPI Error: Method parse/execution failed [\_SB.WMIV.WMPV] (Node ffff88042e89b208), AE_AML_OPERAND_TYPE (20160831/psparse-543)
[   61.286913] ACPI Error: Attempt to CreateField of length zero (20160831/dsopcode-168)
[   61.295469] ACPI Error: Method parse/execution failed [\_SB.WMIV.WVPI] (Node ffff88042e89b000), AE_AML_OPERAND_VALUE (20160831/psparse-543)
[   61.298687] ACPI Error: Method parse/execution failed [\_SB.WMIV.WMPV] (Node ffff88042e89b208), AE_AML_OPERAND_VALUE (20160831/psparse-543
Comment 1 Mateusz 2017-02-23 09:45:02 UTC
Created attachment 254885 [details]
acpidump output
Comment 2 Mateusz 2017-02-23 09:45:26 UTC
Created attachment 254887 [details]
dmidecode
Comment 3 Mateusz 2017-02-23 09:45:56 UTC
Created attachment 254889 [details]
"lspci -vvnn" output
Comment 4 Mateusz 2017-02-23 09:46:47 UTC
Created attachment 254891 [details]
Disassembled and recompiled dsdt
Comment 5 Mateusz 2017-02-23 09:52:37 UTC
Created attachment 254893 [details]
Disassembled and recompiled dsdt
Comment 6 Mateusz 2017-02-23 09:58:11 UTC
Created attachment 254895 [details]
Partially corrected DSDT.dsl

I spent some time to fix some of the warn/remarks in dsl file but after compiling and overriding it in grub behavior is the same.
Comment 7 Robert Moore 2017-02-24 02:37:09 UTC
This appears to be a firmware bug. Examining the method WMPV:

    Method (WMPV, 3, Serialized)
    {
        Local4 = WVPI (Arg0, Arg1, Arg2)
        Local0 = DerefOf (Local4 [Zero])
        Local3 = DerefOf (Local4 [One])
        If ((Local0 == Zero))
        {
            PVWS = 0x03
            GSWS (0x80F3)
            If ((PVWS == 0x03))
            {
                Local2 = HVWA ()
            }
            ElseIf ((PVWS == 0x05))
            {
                Local6 = HVWA ()
                If ((0x00010000 != DerefOf (Local6 [Zero])))
                {
                    Local2 = Local6
                }
            }
            Else
            {
                Local5 = Zero
                While (((PVWS == 0x04) && (Local5 < 0x8000)))
                {
                    Sleep (0x19)
                    PVWS = 0x03
                    GSWS (0x80F3)
                    Local5++
                }
            }
        }

        Local1 = WVPO (Local3, Local2)
        If ((Local0 == Zero))
        {
            WVCM ()
        }

        Return (Local1)
    }

There are several code paths through this method that do not initialize Local2. The method WVPO expects the second argument to be a package object, and uses it as such (Arg1). It appears that Local2 is not being initialized, and the default initial setting for all locals is an integer of value 0. When method WVPO attempts to use Local2 as a package, an AE_AML_OPERAND_TYPE results because Local2 is in fact an integer.

Here's the statement in WVPO that causes the exception:

    FRTC = DerefOf (Arg1 [Zero])
Comment 8 Lv Zheng 2017-02-24 02:46:46 UTC
We could track this down with AML tracer.
Please enable CONFIG_ACPI_DEBUG, rebuild the kernel and boot the kernel with:

acpi.trace_method_name=_SB.WMIV.WMPV acpi.trace_state=opcode-once

After triggering this issue, upload the dmesg output here.

Thanks in advance.
Comment 9 Mateusz 2017-02-24 08:07:50 UTC
Thanks guys that was really quick :-). I will follow Lv Zheng advice and post results. This machine is preatty useless as laptop with current acpi problems. Do you think it makes sense to submit ticket to HP so that they release bios update or I'm doomed to use overriden dsdt?
Comment 10 Lv Zheng 2017-02-28 01:09:51 UTC
(In reply to Mateusz from comment #9)
> Thanks guys that was really quick :-). I will follow Lv Zheng advice and
> post results.

Just to obtain the proofs of Bob's analysis.

> This machine is preatty useless as laptop with current acpi
> problems. Do you think it makes sense to submit ticket to HP so that they
> release bios update or I'm doomed to use overriden dsdt?

Yes, HP need to be aware of aware of their firmware issues.
Comment 11 Zhang Rui 2017-03-20 04:19:30 UTC
I think it is sufficient to say that this is a buggy BIOS, and we will not continue debugging this issue unless the firmware bug has been fixed.

Bug closed, and please raise the problem to HP.

Note You need to log in before you can comment on or make changes to this bug.