From patchwork Thu Nov 2 04:29:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 13443400 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2BA39C4167B for ; Thu, 2 Nov 2023 04:30:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348439AbjKBEaa (ORCPT ); Thu, 2 Nov 2023 00:30:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348414AbjKBEa3 (ORCPT ); Thu, 2 Nov 2023 00:30:29 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3B8BEA6; Wed, 1 Nov 2023 21:30:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1698899405; x=1699504205; i=w_armin@gmx.de; bh=W4B0/jqAT0mG9qvqiZcdwhhjqLpM1eXEuYdH9nlUqoI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=YjGpkVcwOes3MNUqfdIqCjt75tzhue4XdsKZgA5/1bkpkqE5lkEBvnkDaXjCvceV zNEXbs/SsH/V1or6m1l1mv0mlgaYBIfB+BQmgfWtLFnrX0wf2cbcOBF7eIIOuqgOq RUlIv520Ej867YqUUanN1PHdT0BTyzK7+CkwJApibyQZGBGNpgqQw2XjUTMtsVedS l8G7i+aVWoEwMpzTujdAbqmo294Biw2vHuD2PzgOyrZJhKPWXod/VcWijt/r8KYjx Kt0qTOOXATCHWH6T6V/TRpmj2wpKSBsRpC8uwzKaInupH2sr3IeROj9j3BC/hyLF8 3XMyM5R3hBj43m88hA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mgeo8-1rfSnR21Zk-00h2Pq; Thu, 02 Nov 2023 05:30:05 +0100 From: Armin Wolf To: jithu.joseph@intel.com, maurice.ma@intel.com, hdegoede@redhat.com, markgross@kernel.org, ilpo.jarvinen@linux.intel.com Cc: Dell.Client.Kernel@dell.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] platform/x86: wmi: Add wmidev_block_set() Date: Thu, 2 Nov 2023 05:29:56 +0100 Message-Id: <20231102042959.11816-1-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-Provags-ID: V03:K1:XUq3aH+BNWmIXtVY0WKlkqDGfa9N9Xb4+GfLszEwWuRSBoyF+1g eaVfN2R8nMmoEKzcck5CFE1HzRk96NSOqCI7jT9b8Jqs8xyAYdU8WuBR3kapeNMBC+jh6H+ hYRMmkaXRc03GXp40T9/NVUEhmsy4dHBLfEjfZmfvlESt8lx7qGd0Qx6Ch1QjRBUoGZQkhe o3deLAqqRMSOLHwGe0uJA== UI-OutboundReport: notjunk:1;M01:P0:ctTt8npmtVE=;/bcXEZn99yiTNgrrOe8Iv14hYy/ SFfuAIYwg8DxR8f54rqrjzQDHpdrzjjGyhw6Ey10hR3Lx2txTWp1xts7oYCJII1LjsP/ui6lI lDWn7VqztfQV0puAp94AYujm3LfgVF7XoWGCUM8aUT4nk0tMaaQyenzNgdbQYdcgUAeiGkzet /z+Wu6UZLyvigprupve/lGLzn0UVo8VibSz2icD6oxuzFtUOgk6io/GwvndYbGa2XVqGHlZfl NujwJIKyO+MhiVof94c+xi/7BwhGupge5zSMuRIt3c2jaMb5fBuLI0emcBXTzkxRpSJfRoXZm c2FVNZzuFwA9ixeCThRY1jyGpPjcYfJ9cmL+7b0litoLTrMcX3fyk4DgDRVUc4lDj22CCXVkX +UA8Bss7aKkGhlqHvQgOLmNpa88toq3Vk9FjeFAt6TiBCFfutoJPX6ucnDuhvPb2bCHNTUpBc QeRqZxkkonIs0zYT9KKpYNtIPNlfrWBie0fsTdnlXJwqzGZ3C8oyS0oL9ZX38xauPxvgI/kGX zMr4isbJ48Kf0Ehqx/d8ZIAPBQiu7TWzFwyGFJbzbSONLk19eRUj+r6drNW1mEBFr1FJCBfR2 14rkKNepL7lheyZjdp7CXDXuCkTw/LKSXaFuA6nCtPqKlWHDp3+6LjRUPVo0HHRH5lDSOCHW7 UF+kFjDtDCHVVlzWuF26pqJaS/xU8kNauvBPNjlpeUeVZJeThRKDRwaDl3WYHFqG5nO7RVrAt G/xYi8hpa3IVC6VxS1/ITMwn5KsE+71KBXel4spjAms5sbw6qX90zSLhh7I2yUZoUO3WL7YrP 79SyVERpI+xH5USG5VknfUdrr5EZ1RIo2EG+/GzfXMUGYervSgdTEGsYKA5ObODVAQbm/ZSmJ kREVoFTRba3JGc4SjED8v/AlJ6MlIOm65/ugfuhNO2wQfwBqsFQbmwDODCGm4kJ9XVdDrzB1W 2wnW4A== Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org Currently, WMI drivers have to use the deprecated GUID-based interface when setting data blocks. This prevents those drivers from fully moving away from this interface. Provide wmidev_block_set() so drivers using wmi_set_block() can fully migrate to the modern bus-based interface. Tested with a custom SSDT from the Intel Slim Bootloader project. Signed-off-by: Armin Wolf --- drivers/platform/x86/wmi.c | 64 ++++++++++++++++++++------------------ include/linux/wmi.h | 2 ++ 2 files changed, 36 insertions(+), 30 deletions(-) -- 2.39.2 diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 5c27b4aa9690..9d9a050e7086 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -536,41 +536,50 @@ EXPORT_SYMBOL_GPL(wmidev_block_query); * * Return: acpi_status signaling success or error. */ -acpi_status wmi_set_block(const char *guid_string, u8 instance, - const struct acpi_buffer *in) +acpi_status wmi_set_block(const char *guid_string, u8 instance, const struct acpi_buffer *in) { - struct wmi_block *wblock; - struct guid_block *block; struct wmi_device *wdev; - acpi_handle handle; - struct acpi_object_list input; - union acpi_object params[2]; - char method[WMI_ACPI_METHOD_NAME_SIZE]; acpi_status status; - if (!in) - return AE_BAD_DATA; - wdev = wmi_find_device_by_guid(guid_string); if (IS_ERR(wdev)) return AE_ERROR; - wblock = container_of(wdev, struct wmi_block, dev); - block = &wblock->gblock; - handle = wblock->acpi_device->handle; + status = wmidev_block_set(wdev, instance, in); + wmi_device_put(wdev); - if (block->instance_count <= instance) { - status = AE_BAD_PARAMETER; + return status; +} +EXPORT_SYMBOL_GPL(wmi_set_block); - goto err_wdev_put; - } +/** + * wmidev_block_set - Write to a WMI block + * @wdev: A wmi bus device from a driver + * @instance: Instance index + * @in: Buffer containing new values for the data block + * + * Write contents of the input buffer to an ACPI-WMI data block. + * + * Return: acpi_status signaling success or error. + */ +acpi_status wmidev_block_set(struct wmi_device *wdev, u8 instance, const struct acpi_buffer *in) +{ + struct wmi_block *wblock = container_of(wdev, struct wmi_block, dev); + acpi_handle handle = wblock->acpi_device->handle; + struct guid_block *block = &wblock->gblock; + char method[WMI_ACPI_METHOD_NAME_SIZE]; + struct acpi_object_list input; + union acpi_object params[2]; - /* Check GUID is a data block */ - if (block->flags & (ACPI_WMI_EVENT | ACPI_WMI_METHOD)) { - status = AE_ERROR; + if (!in) + return AE_BAD_DATA; - goto err_wdev_put; - } + if (block->instance_count <= instance) + return AE_BAD_PARAMETER; + + /* Check GUID is a data block */ + if (block->flags & (ACPI_WMI_EVENT | ACPI_WMI_METHOD)) + return AE_ERROR; input.count = 2; input.pointer = params; @@ -582,14 +591,9 @@ acpi_status wmi_set_block(const char *guid_string, u8 instance, get_acpi_method_name(wblock, 'S', method); - status = acpi_evaluate_object(handle, method, &input, NULL); - -err_wdev_put: - wmi_device_put(wdev); - - return status; + return acpi_evaluate_object(handle, method, &input, NULL); } -EXPORT_SYMBOL_GPL(wmi_set_block); +EXPORT_SYMBOL_GPL(wmidev_block_set); static void wmi_dump_wdg(const struct guid_block *g) { diff --git a/include/linux/wmi.h b/include/linux/wmi.h index 763bd382cf2d..207544968268 100644 --- a/include/linux/wmi.h +++ b/include/linux/wmi.h @@ -35,6 +35,8 @@ extern acpi_status wmidev_evaluate_method(struct wmi_device *wdev, extern union acpi_object *wmidev_block_query(struct wmi_device *wdev, u8 instance); +acpi_status wmidev_block_set(struct wmi_device *wdev, u8 instance, const struct acpi_buffer *in); + u8 wmidev_instance_count(struct wmi_device *wdev); extern int set_required_buffer_size(struct wmi_device *wdev, u64 length); From patchwork Thu Nov 2 04:29:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 13443401 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C393C41535 for ; Thu, 2 Nov 2023 04:30:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348467AbjKBEac (ORCPT ); Thu, 2 Nov 2023 00:30:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348454AbjKBEab (ORCPT ); Thu, 2 Nov 2023 00:30:31 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFAA3DC; Wed, 1 Nov 2023 21:30:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1698899407; x=1699504207; i=w_armin@gmx.de; bh=hiCnCOOKWqIILjoanAScpgqs9mhmW2+u8CmTFsuuU28=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=naalsUcRbrnoQi3Aoy2bY4ZYVgwLl2laFZSWa2Jgc4Yp9kfatwQzO1ozrrGnJFYq 9p86IU5KYcCZAnmfqGOWLGvHOKQ0zFzLQs9jNvyIQBHkhp0+hTPo8AFXD80KaMJWy uXQvhhJG7av5R6CxOLKjp7suCTbq1Sh9B6Z/toyEyqX6mk23/SVT/de4/7tNQSufp woUM83976i/1GIRylAvsTtBPQwxSaofXapvH0V4iA67D+mu/YWDmthaQhE2aIJOo8 K5FSY7rBM7YCYJiIkWczSg+VrglkA73U+KEcm7erCbfIOAIp5P0Dg5sog/FDLYjwd ba4gMuHPUSgPX6ZIPQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N49lJ-1rOhXK1UtV-0104sp; Thu, 02 Nov 2023 05:30:07 +0100 From: Armin Wolf To: jithu.joseph@intel.com, maurice.ma@intel.com, hdegoede@redhat.com, markgross@kernel.org, ilpo.jarvinen@linux.intel.com Cc: Dell.Client.Kernel@dell.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] platform/x86: wmi: Add to_wmi_device() helper macro Date: Thu, 2 Nov 2023 05:29:57 +0100 Message-Id: <20231102042959.11816-2-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231102042959.11816-1-W_Armin@gmx.de> References: <20231102042959.11816-1-W_Armin@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:dXH4wpvIg0gTmaf5/YM921ChFWiWve+0jtvCzuS1MvLPWeT6n38 iblE/GhPGuyuLOj9qyDxHuklktXeQ6+aSDoD0Gm5Cgd80M81bJToHS4MUx48oxwN0HALVzZ /3q4geFP8xjXoDJ5a0rli162yPeQ0OD6pzLYExvLEGmVf3X9Yvp7bTtYO8MRZ8bvKXsvRLm R+TuFUKSdvI1RDOJt+weA== UI-OutboundReport: notjunk:1;M01:P0:trv4r8aoRJM=;CBGUIJImpu+EV61NDFRnVqdB7Yg fXVnPix1GTkEo7pQDYciSthxq6sOHPIOHZJr6DIrqeLnEZ0LHfzxcWBEwAvDCT7HEXG4qmjQI kURO2PNLt9/wWMaoiQPVe89PrkrmuVUtJYGqHG7bckVBoS0rgueLPuXxFsIW2wp8XgdKQQFUb QvuxewWJV8VI+aey1aGHMlvbG/Lh/p/6dsvk7Q22z+txGOuSlSf9ylUioeFRg8DHeIFBc7O+R 4iXKSQ1uqdSOQgH7V5tzpI24Z7KQ30u1WDtpxHxcaBcU5xplcEdWe/A7gJ3/cOZul9bOwPYdA UOmVgmqsCYVb4sdfjwLJZSt83Gv0gw2A8+FgQ99/Za9iWJuVRR3avxzm3GVmEYGMHjwyrWgR6 ZIDnFRNBVvaT5EBCoE53j4XhG/V/qKga1Wih7wpjNGc5VMnwrTWxhuEHO2EZZ4HUu+DLXsGkO uplKtkUOx+QDwMujYeIN9Y7Ieq5OmBFkA04HQ1TL+Xa4+xBnJWbQNVarkliGeCMq052fltVkw dmcREbGPEo96fe5OEO9CEdrQoklbaAT/P0Kv9DqwqY0VfMwbweMNKfJ+lJbXMS33S6644rCHm ZW/h7P5INb+DWzYNpc4U+3XaLEEHHuIV09NULy5Z0tFY9X94IUvLsqcmlT2+ldoVado8mvvoE nxcY4Mm1W+aah4ycxsk1L1x5PwxNCbOB+oIdlzwLuvERQohbt8gdTujvxqJ7f2NxFmOaBsQNn mxe6f8Xu4d51I8+bCWxf1roJ+kS0nepbuYdzu/QDib/O9PoacQFCCo8JoOnB3CGqrzZpenhgT T9EISt77CIvtIPI6teD8dbZSDJ7ziRTTt8Xp3nwZAWhzbKwqoeIv0D14TkKv5WHNYPklSCD73 AjlXpDxZI+Ay5yD99ymipQqqcHFsZeY2Mo8L0EHhWHG8tLfRQ/7xQfW4Ukp/6fNwC4e0QUUU2 qUj7+U1wE6qJGj/oSd9D0VSCtrg= Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org Add a helper macro for WMI drivers to cast a device to the corresponding WMI device. This should replace some boilerplate code. Signed-off-by: Armin Wolf --- include/linux/wmi.h | 8 ++++++++ 1 file changed, 8 insertions(+) -- 2.39.2 diff --git a/include/linux/wmi.h b/include/linux/wmi.h index 207544968268..8a643c39fcce 100644 --- a/include/linux/wmi.h +++ b/include/linux/wmi.h @@ -27,6 +27,14 @@ struct wmi_device { bool setable; }; +/** + * to_wmi_device() - Helper macro to cast a device to a wmi_device + * @device: device struct + * + * Cast a struct device to a struct wmi_device. + */ +#define to_wmi_device(device) container_of(device, struct wmi_device, dev) + extern acpi_status wmidev_evaluate_method(struct wmi_device *wdev, u8 instance, u32 method_id, const struct acpi_buffer *in, From patchwork Thu Nov 2 04:29:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 13443403 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2F61C4167D for ; Thu, 2 Nov 2023 04:30:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348454AbjKBEam (ORCPT ); Thu, 2 Nov 2023 00:30:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348479AbjKBEai (ORCPT ); Thu, 2 Nov 2023 00:30:38 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3A33DC; Wed, 1 Nov 2023 21:30:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1698899410; x=1699504210; i=w_armin@gmx.de; bh=hLJcvl2uQbgsowxxxnXe5xll4Jmp97e5Gnt7rMy50UE=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=hQjlsz2FdHq/Gp/SWwdiq58Uo6Baq184LLy58UiDXpV3Png6Ap8PAffkLCZgItub N7Sto7VQ1etfJH/4m7drJueiYr1EvJkrqNtK4jk6x3v45fLSMNtcOZ43jhWrxV+7K KJDb+iGLU6jkuuTN/5CSI2A0j/+47a9eWCRJhrwGOObG5MxxyKO4VLy8RQh7Wf5VQ 4qa2hC7kbnJGR1CD3qIqEEzdphKBq0SDfm6aDZozUC/lsvz+JL52isdYkcqB/Xj7v 7yU1KxUlUxVUiwRw6az6eAIy4+OWpEyLpXz39ZT/fP8bvW+aFgg9pSKYC413OzziG dGhs8zfyFzql5xBlsw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N2E1M-1rRjXo1rXa-013eBD; Thu, 02 Nov 2023 05:30:10 +0100 From: Armin Wolf To: jithu.joseph@intel.com, maurice.ma@intel.com, hdegoede@redhat.com, markgross@kernel.org, ilpo.jarvinen@linux.intel.com Cc: Dell.Client.Kernel@dell.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] platform/x86: intel-wmi-sbl-fw-update: Use bus-based WMI interface Date: Thu, 2 Nov 2023 05:29:58 +0100 Message-Id: <20231102042959.11816-3-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231102042959.11816-1-W_Armin@gmx.de> References: <20231102042959.11816-1-W_Armin@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:HvqwgZNpPRgNT8UEBU2kERwOvH9bi8li4uWzO0eLl0ccRcgW4er gRgC+erttsAFsV1s4V1ii8XK/gh1lyJIPQag19w/igTdePy3NypHeBL45vDRq1znSep8SEz NU+weGYW9r5N275NiwNy4YgBLGFNQTIHDzxeYaACeHsT8ObvaDpf4DKKAf9m9NesK58rA+1 RMDxYJdTV7LGNIg9jJ0ng== UI-OutboundReport: notjunk:1;M01:P0:Kq3UfDcC7MI=;2K6kRDDh1rV2NB816prkxJ9vsT6 nA0pwekp8fzTBMFl9eANc7UZBgCsNKKa1Iv9WcnoWI+fhHudzZeTdX7i6NNAdmyPbRGTOKXQR HgTZIefbyJgnrKKVLsGq3HTjj899RTohWZXWHj+7JSAZNc6kWTC0FPJAXLyMf5ZkXyZMGlfmh VdDxZeoaToAodsP/2JNqqclOXDPa3EqGuOzr4ArWHsVESKpOTlRcjgc2rBMr7BWdsT2m2vveq f4xUKke+H6EcrBu+DTSlWhq1TzYXy6bvWatbpCa+IkoQodGfD4ofHtPVqZ+lrDpHBzk220Hw2 sT7PEemCjGNIv5Evjb0fwNTIPA47ygOsOUTo9FmDcveJ+b3sHa8L/0s/at5lhtG+aC8G1UsVh hvCa5pbeVcXoLOyuc23riJOvN1lr0UEUFPH+JIkCDxGRINz3km0kSbDcF8zERuG6Sc+wkq8Vb FHPxKgRjptu/PXltFJJ7Tj284MAMgJaDpTVFueyDNfL5PhyNOOFnfzfshYISnRCqIPxw+g+XV SvWVGrvzKj0LHY1Xih9oi19egDwuxTFEae0bpUG6ZLsmfHLsgopQVRW+khAx5v++/uYO+Kdvo nWmLjP+/rTlSgFaU+g1HtspUZbifMAsgKY0rVknWJ3bCnShXFDEDLnHOIGP3MFbVTQBQBSd4l YB44c3So2Afz+0DyVCqCQ1hs+h3AzZSPCXzTtgcVNqty57cqNKSPJy78J3De6ghRQT45KPuu1 7RxkYSmqz3pqIZff9D0J1g3znRr/EEHMcK0Dw+R4WQCg0St/89xL+0NpfMV0PitztBuQf2Mq2 kH Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org Currently, the driver was still using the deprecated GUID-based interface to query/set data blocks. Use the modern bus-based interface for this. Tested with a custom SSDT from the Intel Slim Bootloader project. Signed-off-by: Armin Wolf Reviewed-by: Jithu Joseph --- drivers/platform/x86/intel/wmi/sbl-fw-update.c | 13 ++++--------- drivers/platform/x86/wmi.c | 1 + 2 files changed, 5 insertions(+), 9 deletions(-) -- 2.39.2 diff --git a/drivers/platform/x86/intel/wmi/sbl-fw-update.c b/drivers/platform/x86/intel/wmi/sbl-fw-update.c index 3c86e0108a24..9cf5ed0f8dc2 100644 --- a/drivers/platform/x86/intel/wmi/sbl-fw-update.c +++ b/drivers/platform/x86/intel/wmi/sbl-fw-update.c @@ -25,18 +25,13 @@ static int get_fwu_request(struct device *dev, u32 *out) { - struct acpi_buffer result = {ACPI_ALLOCATE_BUFFER, NULL}; union acpi_object *obj; - acpi_status status; - status = wmi_query_block(INTEL_WMI_SBL_GUID, 0, &result); - if (ACPI_FAILURE(status)) { - dev_err(dev, "wmi_query_block failed\n"); + obj = wmidev_block_query(to_wmi_device(dev), 0); + if (!obj) return -ENODEV; - } - obj = (union acpi_object *)result.pointer; - if (!obj || obj->type != ACPI_TYPE_INTEGER) { + if (obj->type != ACPI_TYPE_INTEGER) { dev_warn(dev, "wmi_query_block returned invalid value\n"); kfree(obj); return -EINVAL; @@ -58,7 +53,7 @@ static int set_fwu_request(struct device *dev, u32 in) input.length = sizeof(u32); input.pointer = &value; - status = wmi_set_block(INTEL_WMI_SBL_GUID, 0, &input); + status = wmidev_block_set(to_wmi_device(dev), 0, &input); if (ACPI_FAILURE(status)) { dev_err(dev, "wmi_set_block failed\n"); return -ENODEV; diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 9d9a050e7086..4c4effc883ae 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -106,6 +106,7 @@ MODULE_DEVICE_TABLE(acpi, wmi_device_ids); 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 */ NULL }; From patchwork Thu Nov 2 04:29:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 13443402 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C5888C4332F for ; Thu, 2 Nov 2023 04:30:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348478AbjKBEah (ORCPT ); Thu, 2 Nov 2023 00:30:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47892 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348475AbjKBEaf (ORCPT ); Thu, 2 Nov 2023 00:30:35 -0400 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BC7B9DE; Wed, 1 Nov 2023 21:30:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1698899412; x=1699504212; i=w_armin@gmx.de; bh=HfgLBfuhdhyyVQd0Svg8PK5e8u/Fu2fbuxkzO+iKCZw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To: References; b=BEhBPV1PjET98tn5jLKug9mLBkZmcDA7+PMDtVIkRkOGLoeNPSsJ27/iTdmo+PkG 8Oph2/8AbCXEVOCOJ/M6deoCqV0Fl9FIoX7YNO8IYos84+MS2q0dSwlyTuUfsN55a TY4Bu+ENa4CIGSP6jN08BP1tpjtFfxvuURTj4sBL75GBKymuQLGqD4Y7pSsA/I3AG yWHYP3b5lXyOKpqnf9p1NJhlfT52M21jBTFgJncu0jgnf5qHw0YvjfFt/L6P+HGut HVcjmF0fVMsRB23AqvKw6He91nAZN6pNq56du13L54h0EBUwvJDvHbbnUBKmudMx2 /r+Jaih2C9qLMHtCaA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.users.agdsn.de ([141.30.226.129]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N79yQ-1rWhLs0jwy-017TvD; Thu, 02 Nov 2023 05:30:12 +0100 From: Armin Wolf To: jithu.joseph@intel.com, maurice.ma@intel.com, hdegoede@redhat.com, markgross@kernel.org, ilpo.jarvinen@linux.intel.com Cc: Dell.Client.Kernel@dell.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] platform/x86/intel/wmi: thunderbolt: Use bus-based WMI interface Date: Thu, 2 Nov 2023 05:29:59 +0100 Message-Id: <20231102042959.11816-4-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231102042959.11816-1-W_Armin@gmx.de> References: <20231102042959.11816-1-W_Armin@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:5RSM1K8nSQI5KQV5exXrYTjw7yWqWGkTtWBczPDi6Xf2u9bc61A /NWyhxMGt7PG+6HXbBZ60xUOqGRokci4QMJ4dBIRxM7eoHn7KpMYQ9P3TlczIsmF27IqKw8 0RyJjb9xuVVw3r+6JKgce1GfCvedRKHUqHna+mjOy/dDDiuZNdJtN0Vqz0FniTf0hYkwU5J EX0Ob65RIJamWQLziYkuw== UI-OutboundReport: notjunk:1;M01:P0:kNuQK5NYFiA=;7ViY7jBwB04uscd59ANqsIWbWMz xWyD5XGkMDQwE3e7qd5bWTgFAYF91fQLJPAj+5oiKoeLjPbDliy/H86LlbDHN3dyXEEZtHRpI c8RKPhYQv+akAA9OCSF+NcX6AeOcOl3vgMj8+iRS19zxCQ3Cy0jWauMWuDqcrrkOPe04lkf55 x41YyRE5c/xPFp8G2aIt0OcKeRd/EWPxPnXBlTqap5j2XGAudXlVagqLXkUQ9l9ONxiRDObU0 cqO8rxTTEdNiNvBCFAd15nxvS8OrBhTKSpsRPwIBAGwEiW8LjohoGSMtjjUtk7+KVioVxJUNC LibEReIpTTUVOg73yctFOCKcgVLVdfDhuZvI0PB8VgUaViecB1JjmbGz9d/2TzqDo/AqUCBfu 8Hjvp9SjOF8Mw4jUZZ7tXgwhjQmy78Q8BAQ3xTDkBbCmiIBUbGCL5ZyxVovp5MnO/xEGuBFPO BLg55qi8JsQTYVKEWGstMAuLK/iy2cvA4qvQ8r6qkZaNnf7mP+Ty1EBZ+YIX/yqcqAuBYGpp0 2b9/QrBX+XTYoheYaGmSoi39FmsvrEyChD1c+dSZk17TjB0Kc3SPlVNIej59Am4NAdWTxKoxa hMJBWpNF+Y8cc5OyVYYkBPw68tpidUcn+PqGDZPwOvpj4G5llrcmLXvzJ7nh2MwmGXudOVKGE WxvassnEtnNUOGxYTH3+v+hYY42f+M3AM4jko7H23DsOXIs4r53m3nJuixwL7Pq4o0RRAZFnE 8PxXC9y2al6LnZ57C8Rf0S0rkOas5jAQ7Buo7o4eMf72ifdramRtaXd53tFsOGCmh6r0otfFP lm Precedence: bulk List-ID: X-Mailing-List: platform-driver-x86@vger.kernel.org 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 --- drivers/platform/x86/intel/wmi/thunderbolt.c | 3 +-- drivers/platform/x86/wmi.c | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) -- 2.39.2 diff --git a/drivers/platform/x86/intel/wmi/thunderbolt.c b/drivers/platform/x86/intel/wmi/thunderbolt.c index fc333ff82d1e..e2ad3f46f356 100644 --- a/drivers/platform/x86/intel/wmi/thunderbolt.c +++ b/drivers/platform/x86/intel/wmi/thunderbolt.c @@ -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; diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 4c4effc883ae..58e7d5d535ba 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -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-thunderbold */ NULL };