[PATCH RFC v2 2/2] platform/x86: alienware-wmi-wmax: Check for AWCC support using _UID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux