[PATCH rtw-next v3] wifi: rtw89: acpi: check for _DSM function support before evaluating it

From: Rosen Penev

Date: Sun Nov 08 2026 - 15:53:53 EST


When the WiFi device has no ACPI companion, or the firmware does not
implement a given rtw89 _DSM function, rtw89_acpi_evaluate_dsm() calls
acpi_evaluate_dsm() anyway. ACPI core then warns on every probe:

ACPI: \: failed to evaluate _DSM e8c3a8d2-694b-004f-82bd-fe8607803aa7 rev:0 func:10 (0x1001)
ACPI: \: failed to evaluate _DSM e8c3a8d2-694b-004f-82bd-fe8607803aa7 rev:0 func:6 (0x1001)

Here the handle is NULL, and acpi_evaluate_object() returns
AE_BAD_PARAMETER. All callers already treat failure as "no policy
provided by the platform", so this is only noise.

Bail out early when there is no ACPI handle,

Seen on an RTL8852BE in a desktop PCIe slot.

Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
v3: remove acpi_check_dsm()
v2: check handle separately. Remove Fixes.
drivers/net/wireless/realtek/rtw89/acpi.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw89/acpi.c b/drivers/net/wireless/realtek/rtw89/acpi.c
index ebb6cf555747..d8cf8eb2527b 100644
--- a/drivers/net/wireless/realtek/rtw89/acpi.c
+++ b/drivers/net/wireless/realtek/rtw89/acpi.c
@@ -372,11 +372,16 @@ int rtw89_acpi_evaluate_dsm(struct rtw89_dev *rtwdev,
enum rtw89_acpi_dsm_func func,
struct rtw89_acpi_dsm_result *res)
{
+ acpi_handle handle = ACPI_HANDLE(rtwdev->dev);
union acpi_object *obj;
int ret;

- obj = acpi_evaluate_dsm(ACPI_HANDLE(rtwdev->dev), &rtw89_guid,
- 0, func, NULL);
+ if (!handle) {
+ rtw89_debug(rtwdev, RTW89_DBG_ACPI, "acpi dsm no handle\n");
+ return -ENODEV;
+ }
+
+ obj = acpi_evaluate_dsm(handle, &rtw89_guid, 0, func, NULL);
if (!obj) {
rtw89_debug(rtwdev, RTW89_DBG_ACPI,
"acpi dsm fail to evaluate func: %d\n", func);
--
2.56.0