Bug 210751 - "Could not resolve symbol [^^^GFX0.AFN2]" errors on Lenovo Ideapad 330s
Summary: "Could not resolve symbol [^^^GFX0.AFN2]" errors on Lenovo Ideapad 330s
Status: CLOSED DOCUMENTED
Alias: None
Product: ACPI
Classification: Unclassified
Component: BIOS (show other bugs)
Hardware: Intel Linux
: P1 low
Assignee: Zhang Rui
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-12-17 14:11 UTC by Sebastien Bourdeauducq
Modified: 2021-06-01 05:51 UTC (History)
1 user (show)

See Also:
Kernel Version: 5.9.14
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg (45.99 KB, text/plain)
2020-12-17 14:11 UTC, Sebastien Bourdeauducq
Details
acpidump (55.03 KB, application/gzip)
2020-12-17 14:11 UTC, Sebastien Bourdeauducq
Details
int-before (9.94 KB, text/plain)
2021-03-22 13:29 UTC, Sebastien Bourdeauducq
Details
int-after (9.94 KB, text/plain)
2021-03-22 13:30 UTC, Sebastien Bourdeauducq
Details

Description Sebastien Bourdeauducq 2020-12-17 14:11:15 UTC
Created attachment 294197 [details]
dmesg

When the Lenovo Ideapad 330s is running on battery, the following error message is printed in the kernel log every second or so.

[    0.967136] ACPI BIOS Error (bug): Could not resolve symbol [^^^GFX0.AFN2], AE_NOT_FOUND (20200717/psargs-330)
[    0.967173] ACPI Error: Aborting method \_SB.PCI0.LPCB.H_EC._QC9 due to previous error (AE_NOT_FOUND) (20200717/psparse-529)

This does not happen when the AC adapter is plugged in, and the laptop does not have other symptoms.

Does not seem specific to a Linux kernel version.
Comment 1 Sebastien Bourdeauducq 2020-12-17 14:11:35 UTC
Created attachment 294199 [details]
acpidump
Comment 2 Zhang Rui 2021-03-21 16:01:39 UTC
$ grep AFN2 *.dsl
dsdt.dsl:    External (_SB_.PCI0.GFX0.AFN2, MethodObj)    // 1 Arguments
dsdt.dsl:                ^^^GFX0.AFN2 (Local1)
dsdt.dsl:                ^^^GFX0.AFN2 (Local1)

This is apparently a BIOS bug. The buggy AML invokes an ACPI control method named AFN2, which is never defined.

Sorry that I will close this one as we can do nothing in kernel for this issue.
Comment 3 Sebastien Bourdeauducq 2021-03-22 00:34:16 UTC
"The fact that ACPI was designed by a group of monkeys high on LSD, and is some of the worst designs in the industry obviously makes running it at any point pretty damn ugly." - Linus Torvalds

Most computers have ACPI bugs and the kernel contains workarounds for many of them. So, why should this particular issue get closed?
Comment 4 Zhang Rui 2021-03-22 13:26:04 UTC
I close this because we don't observe any functionality issue so far.
And the error messages are caused by buggy BIOS code we can not fix. I can propose a customized DSDT and you can rebuild your kernel with the customized DSDT, and you will not see these errors.

Another potential issue is that why it fires every second.
please try following command and attach the int-before and int-after log files.
grep . /sys/firmware/acpi/interrupts/* > int-before; sleep 10; grep . /sys/firmware/acpi/interrupts/* > int-after
Comment 5 Sebastien Bourdeauducq 2021-03-22 13:29:38 UTC
Created attachment 295991 [details]
int-before
Comment 6 Sebastien Bourdeauducq 2021-03-22 13:30:03 UTC
Created attachment 295993 [details]
int-after
Comment 7 Zhang Rui 2021-06-01 05:51:28 UTC
The EC event indeed happens around every second.
To me, the handling for the EC event (0xC9) is broken as it references the AFN2 method which does not exist at all. And this results in the EC event not handled properly and it keeps on firing.

As I mentioned earlier, this is a BIOS issue.

For some of the ACPI BIOS bugs, we can workaround them in Linux kernel, but for issues like this, we can do nothing in kernel because we don't know what is missing in the BIOS and it can only get fixed in ACPI BIOS code by the OEM Vendor.

So I will close this bug report, sorry that we can not help on this issue.
You can check if there is any new BIOS release or not.

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