platform/x86/intel/wmi: thunderbolt: Use bus-based WMI interface
authorArmin Wolf <W_Armin@gmx.de>
Fri, 3 Nov 2023 18:25:26 +0000 (19:25 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 20 Nov 2023 12:20:33 +0000 (13:20 +0100)
Currently, the driver still uses the legacy GUID-based interface
to invoke WMI methods. Use the modern bus-based interface instead.

Tested on a Lenovo E51-80.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20231103182526.3524-4-W_Armin@gmx.de
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/intel/wmi/thunderbolt.c
drivers/platform/x86/wmi.c

index fc333ff82d1ee910b7ffc327425d6a30714317e1..e2ad3f46f3569f97d883cb21735b6b571d87ffdd 100644 (file)
@@ -32,8 +32,7 @@ static ssize_t force_power_store(struct device *dev,
        mode = hex_to_bin(buf[0]);
        dev_dbg(dev, "force_power: storing %#x\n", mode);
        if (mode == 0 || mode == 1) {
-               status = wmi_evaluate_method(INTEL_WMI_THUNDERBOLT_GUID, 0, 1,
-                                            &input, NULL);
+               status = wmidev_evaluate_method(to_wmi_device(dev), 0, 1, &input, NULL);
                if (ACPI_FAILURE(status)) {
                        dev_dbg(dev, "force_power: failed to evaluate ACPI method\n");
                        return -ENODEV;
index 4c4effc883ae8f4878c065b4d55a65eb19a471b1..cb7e74f2b009207fcb2b3512bf08cd72d9c60a54 100644 (file)
@@ -107,6 +107,7 @@ static const char * const allow_duplicates[] = {
        "05901221-D566-11D1-B2F0-00A0C9062910", /* wmi-bmof */
        "8A42EA14-4F2A-FD45-6422-0087F7A7E608", /* dell-wmi-ddv */
        "44FADEB1-B204-40F2-8581-394BBDC1B651", /* intel-wmi-sbl-fw-update */
+       "86CCFD48-205E-4A77-9C48-2021CBEDE341", /* intel-wmi-thunderbolt */
        NULL
 };