[PATCH RFC v2 2/2] platform/x86: alienware-wmi-wmax: Check for AWCC support using _UID
From: Kurt Borja
Date: Sun Mar 09 2025 - 00:14:26 EST
The WMAX _UID of all devices that support the AWCC interface is "AWCC".
This includes the following devices which were manually verified by
reading their ACPI tables:
- Dell G16 7630
- Dell G5 5505 SE
- Alienware m16 R1
- Alienware m17 R5 AMD
- Alienware x15 R2
- Alienware 17 R5
- Alienware Aurora R12
- Alienware Aurora Ryzen Edition
And possibly many more, if not all devices with this interface.
Add a check for "AWCC" _UID in wmax_wmi_probe() as a last resort test
for support.
Signed-off-by: Kurt Borja <kuurtb@xxxxxxxxx>
---
drivers/platform/x86/dell/alienware-wmi-wmax.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/platform/x86/dell/alienware-wmi-wmax.c b/drivers/platform/x86/dell/alienware-wmi-wmax.c
index 46d11b200820cdbaa841fc97e33b339fca42104e..1a81373a9d5937b4ff5511ad2061b6dc6e40b810 100644
--- a/drivers/platform/x86/dell/alienware-wmi-wmax.c
+++ b/drivers/platform/x86/dell/alienware-wmi-wmax.c
@@ -1420,14 +1420,17 @@ static int wmax_wmi_probe(struct wmi_device *wdev, const void *context)
.upd_brightness = wmax_wmi_update_brightness,
},
};
- int ret;
+ char *uid;
- if (awcc)
- ret = alienware_awcc_setup(wdev);
- else
- ret = alienware_alienfx_setup(&pdata);
+ if (!awcc) {
+ uid = wmidev_get_acpi_device_uid(wdev);
+ if (!uid || strncmp(uid, "AWCC", 4))
+ return alienware_alienfx_setup(&pdata);
- return ret;
+ awcc = &generic_quirks;
+ }
+
+ return alienware_awcc_setup(wdev);
}
static int wmax_wmi_suspend(struct device *dev)
--
2.48.1