On Sun, 10 May 2026, Derek J. Clark wrote:
> This series adds many much needed fixes and features to the lenovo-wmi*
> drivers. This version has been re-ordered to ensure the least amount of
> churn in each patch. This has resulted in two formatting patches being
> added to the stable Cc list as prerequisites for some of the fixes.
>
> Patches 1-9 fix various bugs and formatting, and are Cc'd to stable.
Thanks for the update.
I've taken 1-9 into review-ilpo-fixes branch and will do fixes ->
for-next merge later to be able to pick up rest of the patches there.
--
i.
> for the formatting only ones, patch 7 moves all gamezone enums from the
> gamezone header into the helpers header and patch 8 adds two functions
> to make assigning attribute ID's for capdata0X and tunable_attr_01
> cleaner.
>
> Patch 10 adds the remaining CPU attributes that weren't previously
> exposed.
>
> Patch 11 adds GPU attributes.
>
> Patch 12 renames a name constant in preparation for patch 6.
>
> Patch 13 adds battery charge-type limiting when supported only by WMI, or
> when a module parameter to skip compatibility checks 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.
>
> Patch 14 adds a module parameter, force_load_psy_ext, to bypass ACPI and
> BIOS compatibility checks for the power supply extension.
>
> Patch 15 adds a debugfs directory.
>
> Patch 16 adds a debugfs file for dumping capdata.
>
> Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
> ---
> v12:
> - Break out force_load_psy_ext into its own patch.
> - Drop fixes tags for formatting only prerequisite patches Cc'd to
> stable.
> - Fix formatting in various places.
> - Use correct type when passing args in new functions. I will revisit
> & fix older functions in a new series.
> v11: https://lore.kernel.org/platform-driver-x86/20260507180507.912966-1-derekjohn.clark@gmail.com/
> - Reorganize patches in a way that cleans up the churn with
> assignment of attribute IDs. This also allowed dropping the
> patch that moved the LWMI_FAN_DIV patch as it is now effectively
> moved when declaring the updated LWMI_ATTR_ID_FAN_DIV macro. As a
> result, some formatting only patches were added to the Cc list for
> stable since as they are now prerequisites to some of the fixes.
> - Refactor charge control patch to use charge_behavior and
> charge_control_end_threshold instead of charge_types to be in
> accordance with the power supply class documentation.
> - Minor additional formatting fixes.
> v10: https://lore.kernel.org/platform-driver-x86/20260411162334.25682-1-derekjohn.clark@gmail.com/
> - Fix misnamed attribute in wmi-other.
> v9: https://lore.kernel.org/platform-driver-x86/20260411162334.25682-1-derekjohn.clark@gmail.com/
> - Invert ida_alloc fail logic.
> - Fix dropped mode arg in current_value_show.
> - Fix misnamed attribute in documentation.
> v8: https://lore.kernel.org/platform-driver-x86/20260406201400.438221-1-derekjohn.clark@gmail.com/
> - Clean up rebase mixup with re-assinment of wmi_method_args_32 in
> patches 6 and 14 from {} to { 0x00, 0x00 } and back.
> - Combine ret_obj declaration and assignment in patch 1.
> v7: https://lore.kernel.org/platform-driver-x86/20260402032424.678528-1-derekjohn.clark@gmail.com/
> - Add 3 additional bug fix patches from Rong Zhang reported by
> shashiko.dev
> - Reorder patches so the fixes are upfront in patches 1-7.
> - Fix various typos and rebase mixups from v6.
> v6: https://lore.kernel.org/platform-driver-x86/20260331181208.421552-1-derekjohn.clark@gmail.com/
> - Incorporate Rong Zhang's debugfs and decoupling patches into the
> series.
> - Add a patch to clean up too many cross-references to wmi-gamezone.h
> - Make lwmi_attr_id a static inline in wmi-capdata.h
> - Added a patch to fix a bug where ares.arg1 is uninitialized when it
> is sent to the firmware.
> - Add supported checks before adding battery extenstion, and ensure
> both the new checks and the is_writable checks are not casting u32
> to i32.
> - Misc formating changes.
> v5: https://lore.kernel.org/platform-driver-x86/20260324221032.1333636-1-derekjohn.clark@gmail.com/
> - 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@gmail.com/
> - 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@gmail.com/
> - 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@gmail.com/
> - 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@gmail.com/
>
> Derek J. Clark (10):
> platform/x86: lenovo-wmi-other: Zero initialize WMI arguments
> platform/x86: lenovo-wmi-other: Fix tunable_attr_01 struct members
> platform/x86: lenovo-wmi-helpers: Move gamezone enums to wmi-helpers
> platform/x86: lenovo-wmi-other: Add Attribute ID helper functions
> 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
> platform/x86: lenovo-wmi-other: Add force_load_psy_ext module
> parameter
>
> Rong Zhang (6):
> platform/x86: lenovo-wmi-helpers: Fix memory leak in
> lwmi_dev_evaluate_int()
> platform/x86: lenovo-wmi-other: Balance IDA id allocation and free
> platform/x86: lenovo-wmi-other: Balance component bind and unbind
> platform/x86: lenovo: Decouple lenovo-wmi-gamezone and
> lenovo-wmi-other
> platform/x86: lenovo-wmi-helpers: Add helper for creating per-device
> debugfs dir
> platform/x86: lenovo-wmi-capdata: Add debugfs file for dumping capdata
>
> .../wmi/devices/lenovo-wmi-other.rst | 19 +
> drivers/platform/x86/lenovo/Kconfig | 3 +-
> drivers/platform/x86/lenovo/wmi-capdata.c | 128 ++-
> drivers/platform/x86/lenovo/wmi-capdata.h | 34 +-
> drivers/platform/x86/lenovo/wmi-events.c | 2 +-
> drivers/platform/x86/lenovo/wmi-gamezone.c | 7 +-
> drivers/platform/x86/lenovo/wmi-gamezone.h | 20 -
> drivers/platform/x86/lenovo/wmi-helpers.c | 139 ++-
> drivers/platform/x86/lenovo/wmi-helpers.h | 23 +
> drivers/platform/x86/lenovo/wmi-other.c | 867 +++++++++++++++---
> drivers/platform/x86/lenovo/wmi-other.h | 16 -
> 11 files changed, 1061 insertions(+), 197 deletions(-)
> delete mode 100644 drivers/platform/x86/lenovo/wmi-gamezone.h
> delete mode 100644 drivers/platform/x86/lenovo/wmi-other.h
>
>