Bug 284912 - acpi_wmi: How do I wire this up?
Summary: acpi_wmi: How do I wire this up?
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-acpi (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-02-19 22:48 UTC by Alexander Ziaee
Modified: 2025-03-10 02:45 UTC (History)
3 users (show)

See Also:


Attachments
Add type check before evaluating query ACPI method, (778 bytes, patch)
2025-02-23 14:14 UTC, Takanori Watanabe
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Ziaee freebsd_committer freebsd_triage 2025-02-19 22:48:18 UTC
I have in dmesg on a 2022 Dell Precision 5470:

[13.271933] acpi_wmi0: <ACPI-WMI mapping> on acpi0
[13.271999] acpi_wmi0: Embedded MOF found
[13.272005] ACPI: \134_SB.WFDE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.272756] acpi_wmi1: <ACPI-WMI mapping> on acpi0
[13.272779] acpi_wmi1: Embedded MOF found
[13.272783] ACPI: \134_SB.WFTE.WQCC: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.274325] acpi_wmi2: <ACPI-WMI mapping> on acpi0
[13.274354] acpi_wmi2: Embedded MOF found
[13.274358] ACPI: \134_SB.AMW0.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.275145] acpi_wmi3: <ACPI-WMI mapping> on acpi0
[13.278435] acpi_wmi3: Embedded MOF found
[13.278440] ACPI: \134_SB.AMW2.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.279211] acpi_wmi4: <ACPI-WMI mapping> on acpi0
[13.281134] acpi_wmi4: Embedded MOF found
[13.281138] ACPI: \134_SB.AMW5.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.281900] acpi_wmi5: <ACPI-WMI mapping> on acpi0
[13.281929] acpi_wmi5: Embedded MOF found
[13.281933] ACPI: \134_SB.AMW4.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.282692] acpi_wmi6: <ACPI-WMI mapping> on acpi0
[13.282724] acpi_wmi6: Embedded MOF found
[13.282728] ACPI: \134_SB.DIAG.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.283472] acpi_wmi7: <ACPI-WMI mapping> on acpi0
[13.283489] acpi_wmi7: Embedded MOF found
[13.283493] ACPI: \134_SB.AMWV.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.284856] acpi_wmi8: <ACPI-WMI mapping> on acpi0
[13.284885] acpi_wmi8: Embedded MOF found
[13.284889] ACPI: \134_SB.ECMO.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)
[13.285630] acpi_wmi9: <ACPI-WMI mapping> on acpi0
[13.285646] acpi_wmi9: Embedded MOF found
[13.285650] ACPI: \134_SB.EPDC.WQMO: 1 arguments were passed to a non-method ACPI object (Buffer) (20241212/nsarguments-361)

I've had a similar error on every machine I've ever had. I think this means something isn't wired up. How do I wire this up?
Comment 1 Mark Johnston freebsd_committer freebsd_triage 2025-02-21 18:15:33 UTC
acpi_wmi does little other than to create /dev/wmistat* files.  Are those getting created on your system?
Comment 2 Takanori Watanabe freebsd_committer freebsd_triage 2025-02-21 20:32:00 UTC
No problem.  That's occur when fetching BMOF object. 
Fetching BMOF object method accepts one argument in spec. but almost all such method is impremented as constant named object. This warning is in ACPICA from Intel, so there are no way to shut this up.
Comment 3 Alexander Ziaee freebsd_triage 2025-02-22 01:13:24 UTC
(In reply to Mark Johnston from comment #1)

Yes, I have /dev/wmistat0 through /dev/wmistat9.
Comment 4 Mark Johnston freebsd_committer freebsd_triage 2025-02-22 14:19:31 UTC
I think that comments 2 and 3 indicate that the driver itself is functioning as expected.  It would be nice if we could silence that warning, but as noted, it comes from the contrib ACPICA code, so we don't have a lot of control over it.
Comment 5 Takanori Watanabe freebsd_committer freebsd_triage 2025-02-23 14:14:27 UTC
Created attachment 257767 [details]
Add type check before evaluating query ACPI method,
Comment 6 Takanori Watanabe freebsd_committer freebsd_triage 2025-02-23 14:28:42 UTC
This will shut up the message by checking object type before calling WMI query method. If you use some ACPI-WMI child driver,  I will appliciate if you make sure  this code don't make regression.
Comment 7 Alexander Ziaee freebsd_triage 2025-02-24 01:10:45 UTC
The patch cleans my dmesg a lot, thank you. I don't think I'm using any child drivers to notice regressions. Everything seems normal.
Comment 8 Takanori Watanabe freebsd_committer freebsd_triage 2025-02-25 10:23:56 UTC
https://reviews.freebsd.org/D49129
Comment 9 commit-hook freebsd_committer freebsd_triage 2025-03-10 02:28:01 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=f9b4092743fc99b1b3727a59f4c66fa07f0f895f

commit f9b4092743fc99b1b3727a59f4c66fa07f0f895f
Author:     Takanori Watanabe <takawata@FreeBSD.org>
AuthorDate: 2025-02-25 09:54:34 +0000
Commit:     Takanori Watanabe <takawata@FreeBSD.org>
CommitDate: 2025-03-10 02:22:30 +0000

    acpi_wmi: Add type check before evaluaeting query ACPI method
    Some ACPI wmi query is implemented by named object, not method,
    ACPICA complains when non-method object is evaluated with one or more arguments.
    Especially, almost all binary MOF object obtaining method is the case.

    This commit will fix it.

    PR:     284912
    Reported by:    Alexander Ziaee
    Differential Revision: https://reviews.freebsd.org/D49129

 sys/dev/acpi_support/acpi_wmi.c | 10 ++++++++++
 1 file changed, 10 insertions(+)