This series adds many much needed features to the lenovo-wmi* drivers.
This version is based off platform-driver-x86/review-ilpo-fixes branch,
so patches 1-9 from v12 have been dropped.
Patch 1 adds the remaining CPU attributes that weren't previously
exposed.
Patch 2 adds GPU attributes.
Patch 3 renames a name constant in preparation for patch 6.
Patch 4 adds battery charge-types 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 5 adds a module parameter, force_load_psy_ext, to bypass ACPI and
BIOS compatibility checks for the power supply extension.
Patch 6 adds a debugfs directory.
Patch 7 adds a debugfs file for dumping capdata.
Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
---
v14:
- Change charge limit -> charge types in dev_dbg.
- Stop casting u32 to int in lwmi_psy_prop_get_supported.
v13: https://lore.kernel.org/platform-driver-x86/20260512235808.691046-1-derekjohn.clark@gmail.com/
- Rebase off review-ilpo-fixes and drop merged patches 1-9.
- Switch back to charge_types based on feedback from Hans.
- Ensure force_load_psy_ext also makes is_writable and is_supported
checks for lwmi_psy_ext_prop* functions always return true.
- Add helper function for is_writable and is_supported to reduce
duplicated code.
- Move bugged attribute description to the correct paragraph in patch
4.
v12: https://lore.kernel.org/platform-driver-x86/20260411162334.25682-1-derekjohn.clark@gmail.com/
- 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 (5):
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 (2):
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 | 2 +
drivers/platform/x86/lenovo/wmi-capdata.c | 120 ++++
drivers/platform/x86/lenovo/wmi-capdata.h | 14 +-
drivers/platform/x86/lenovo/wmi-helpers.c | 34 +
drivers/platform/x86/lenovo/wmi-helpers.h | 2 +
drivers/platform/x86/lenovo/wmi-other.c | 617 +++++++++++++++++-
7 files changed, 797 insertions(+), 11 deletions(-)
base-commit: 2997606dd17729404cef9821ce66dd037b6019eb
--
2.53.0