Re: [PATCH v5 0/8] platform-x86: lenovo-wmi: Add fixes and enhancement

From: Rong Zhang

Date: Wed Mar 25 2026 - 14:16:02 EST


Hi Derek,

There are typos in the patch titles (this and subsequent patches).

s#platform-x86#platform/x86#g

On Tue, 2026-03-24 at 22:10 +0000, Derek J. Clark wrote:
> This series adds many much needed features and fixes to the lenovo-wmi
> drivers.
>
> Patch 1 moves LWMI_FAN_DIV to be next to the rest of the fan attribute
> defines in preparation for adding additional attrbiute macros. This is
> so the attribute macros can all be in the same place in the file.
>
> Patch 2 cleans up tunable_attr_01 by removing an unused pointer and
> correctly assigning the members as u8 isntead of u32.
>
> Patch 3 adds a function to make assigning attribute ID's for capdata
> cleaner and easier.
>
> Patch 4 addresses bugs where devices that don't support exposed
> attributes would still create the attribute, and also attempts to
> identify the correct capdata and set/get methods as some legacy
> interfaces don't use the custom mode in the method or capdata ID.
>
> Patch 5 adds the remaining CPU attributes that weren't previously
> exposed.
>
> Patch 6 adds GPU attributes.
>
> Patch 7 renames a name constant in preparation for patch 6.
>
> Patch 8 adds battery charge-type limiting when supported only by WMI, or
> when a module parameter to skip this check is set. The MODULE_PARM_DESC
> macro creates one check and two warnings in checkpatch. I reviewed other
> examples from the kernel and I am following the same convention, so I
> left it as is.
>
> Signed-off-by: Derek J. Clark <derekjohn.clark@xxxxxxxxx>

The series LGTM generally, thanks!

There are some tiny issues though, see my replies to the corresponding
patches.

With them fixed, for the whole series:

Reviewed-by: Rong Zhang <i@xxxxxxxx>

My device doesn't support any CPU, GPU or PSU attributes, so for patch
1-4 and 7:

Tested-by: Rong Zhang <i@xxxxxxxx>

Thanks,
Rong

> ---
> v5:
> - Remove cv/cd_mode_id references that occured before patch 4.
> - Move lwmi_attr_id to capdata.c with a namespace export.
> - Fix mixing include.
> - Make lwmi_attr_is_supported return bool.
> - Use switch instead of if for setting/getting charge type state.
> - Various formatting fixes.
> v4: https://lore.kernel.org/platform-driver-x86/20260312031032.3467565-1-derekjohn.clark@xxxxxxxxx/
> - Use loop instead of back gotos for identifying the working attribute
> ID.
> - Use function instead of macro to assign attribute_id, preserving
> types.
> - Removed unused defines and enum values.
> - Rename charging defines to clarify thier purpose.
> - Fixed various formatting issues from v3.
> - Added module param to skip ACPI check when loading the driver for
> the power supply extension.
> - Don't abort adding power supply extension if the ACPI handle from
> ideapad is not present.
> - Don't worry about symmetric cleanup when cleaning up attributes in
> an error state.
> - Reword Patch 8 commit message to be more concise.
> - Fix wording in Patch 7 to match the changes.
> v3: https://lore.kernel.org/platform-driver-x86/20260224043200.2680384-1-derekjohn.clark@xxxxxxxxx/
> - Re-add HWMON name const and just rename LWMI_OM_FW_ATTR_BASE_PATH
> - Fix linker warnings by moving acpi/battery include to the end of the
> list.
> - Remove CPU/GPU OC features. These attributes are BOOL type and will
> need a new constructor that I'll add later.
> v2: https://lore.kernel.org/platform-driver-x86/20260215061339.2842486-1-derekjohn.clark@xxxxxxxxx/
> - Fix gpu_mode misisng from attributes list.
> - Fix prototypes for power suppy patch.
> - Reorganize CPU and GPU attributes alphabetically.
> - Break out the patch consolidating the driver name cost.
> - Move some of the refactoring of attribute_id back to into patch 1
> where it belongs.
> - Fix some additional typos in function prototypes.
> v1: https://lore.kernel.org/platform-driver-x86/20260213081243.794288-1-derekjohn.clark@xxxxxxxxx/
>
> Derek J. Clark (8):
> platform-x86: lenovo-wmi-other: Move LWMI_FAN_DIV
> platform-x86: lenovo-wmi-other: Fix tunable_attr_01 struct members
> platform/x86: lenovo-wmi-other: Add lwmi_attr_id() function
> platform/x86: lenovo-wmi-other: Limit adding attributes to supported
> devices
> platform/x86: lenovo-wmi-other: Add missing CPU tunable attributes
> platform/x86: lenovo-wmi-other: Add GPU tunable attributes
> platform-x86: lenovo-wmi-other: Rename LWMI_OM_FW_ATTR_BASE_PATH
> platform/x86: lenovo-wmi-other: Add WMI battery charge limiting
>
> .../wmi/devices/lenovo-wmi-other.rst | 19 +
> drivers/platform/x86/lenovo/Kconfig | 1 +
> drivers/platform/x86/lenovo/wmi-capdata.c | 25 +-
> drivers/platform/x86/lenovo/wmi-capdata.h | 10 +-
> drivers/platform/x86/lenovo/wmi-gamezone.h | 1 +
> drivers/platform/x86/lenovo/wmi-other.c | 586 ++++++++++++++++--
> 6 files changed, 596 insertions(+), 46 deletions(-)