@@ -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)
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@gmail.com> --- drivers/platform/x86/dell/alienware-wmi-wmax.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)