aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/acpi_support
diff options
context:
space:
mode:
authorTakanori Watanabe <takawata@FreeBSD.org>2025-02-25 09:54:34 +0000
committerTakanori Watanabe <takawata@FreeBSD.org>2025-03-10 02:22:30 +0000
commitf9b4092743fc99b1b3727a59f4c66fa07f0f895f (patch)
tree7c9b2190faf91db99c9414bc76303997ac8eb03c /sys/dev/acpi_support
parentd2a8fad3579763bd288260c8c465ab9eb448d465 (diff)
Diffstat (limited to 'sys/dev/acpi_support')
-rw-r--r--sys/dev/acpi_support/acpi_wmi.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/acpi_support/acpi_wmi.c b/sys/dev/acpi_support/acpi_wmi.c
index 56a08e59934d..e973b287dbb4 100644
--- a/sys/dev/acpi_support/acpi_wmi.c
+++ b/sys/dev/acpi_support/acpi_wmi.c
@@ -580,6 +580,16 @@ acpi_wmi_get_block_method(device_t dev, const char *guid_string, UINT8 instance,
}
wq_method[2] = winfo->ginfo.oid[0];
wq_method[3] = winfo->ginfo.oid[1];
+ {
+ ACPI_HANDLE wq_handle;
+ ACPI_OBJECT_TYPE at;
+
+ if (ACPI_SUCCESS(AcpiGetHandle(sc->wmi_handle, wq_method, &wq_handle)) &&
+ ACPI_SUCCESS(AcpiGetType(wq_handle, &at)) &&
+ at != ACPI_TYPE_METHOD) {
+ wq_input.Count = 0;
+ }
+ }
status = AcpiEvaluateObject(sc->wmi_handle, wq_method,
&wq_input, out);
if ((winfo->ginfo.flags & ACPI_WMI_REGFLAG_EXPENSIVE)