From: "Derek J. Clark" <derekjohn.clark@gmail.com>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Hans de Goede" <hansg@kernel.org>
Cc: Mark Pearson <mpearson-lenovo@squebb.ca>,
Armin Wolf <W_Armin@gmx.de>, Jonathan Corbet <corbet@lwn.net>,
Rong Zhang <i@rong.moe>, Kurt Borja <kuurtb@gmail.com>,
"Derek J . Clark" <derekjohn.clark@gmail.com>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v8 00/16] platform-x86: lenovo-wmi: Add fixes and enhancement
Date: Mon, 6 Apr 2026 20:13:44 +0000 [thread overview]
Message-ID: <20260406201400.438221-1-derekjohn.clark@gmail.com> (raw)
This series adds many much needed fixes and features to the lenovo-wmi
drivers. This version has been re-ordered to ensure the simplest
application to the stable tree, with all fixes being pushed up front.
This has caused some churn in the latter half of the series where I'm
immediately changing things that were just added, but this should ensure
a better result for all kernel versions so I'm happy with it.
Patches 1-7 fix various bugs in the existing drivers and are Cc'd to
stable.
Patch 8 moves all gamezone enums from the gamezone header into the
helpers header in preparation for the rest of the series.
Patch 9 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 10 adds a function to make assigning attribute ID's for capdata
cleaner and easier.
Patch 11 adds the remaining CPU attributes that weren't previously
exposed.
Patch 12 adds GPU attributes.
Patch 13 renames a name constant in preparation for patch 6.
Patch 14 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 15 adds a debugfs directory.
Patch 16 adds a debugfs file for dumping capdata.
Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
---
v8:
- 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-other: Limit adding attributes to supported
devices
platform/x86: lenovo-wmi-helpers: Move gamezone enums to wmi-helpers
platform/x86: lenovo-wmi-other: Move LWMI_FAN_DIV
platform/x86: lenovo-wmi-other: Add lwmi_attr_id() function
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
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 | 31 +-
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 | 138 +++-
drivers/platform/x86/lenovo/wmi-helpers.h | 23 +
drivers/platform/x86/lenovo/wmi-other.c | 745 ++++++++++++++----
drivers/platform/x86/lenovo/wmi-other.h | 16 -
11 files changed, 934 insertions(+), 198 deletions(-)
delete mode 100644 drivers/platform/x86/lenovo/wmi-gamezone.h
delete mode 100644 drivers/platform/x86/lenovo/wmi-other.h
--
2.53.0
next reply other threads:[~2026-04-06 20:14 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-06 20:13 Derek J. Clark [this message]
2026-04-06 20:13 ` [PATCH v8 01/16] platform/x86: lenovo-wmi-helpers: Fix memory leak in lwmi_dev_evaluate_int() Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 02/16] platform/x86: lenovo-wmi-other: Balance IDA id allocation and free Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 03/16] platform/x86: lenovo-wmi-other: Balance component bind and unbind Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 04/16] platform/x86: lenovo-wmi-other: Zero initialize WMI arguments Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 05/16] platform/x86: lenovo-wmi-other: Fix tunable_attr_01 struct members Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 06/16] platform/x86: lenovo-wmi-other: Limit adding attributes to supported devices Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 07/16] platform/x86: lenovo: Decouple lenovo-wmi-gamezone and lenovo-wmi-other Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 08/16] platform/x86: lenovo-wmi-helpers: Move gamezone enums to wmi-helpers Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 09/16] platform/x86: lenovo-wmi-other: Move LWMI_FAN_DIV Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 10/16] platform/x86: lenovo-wmi-other: Add lwmi_attr_id() function Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 11/16] platform/x86: lenovo-wmi-other: Add missing CPU tunable attributes Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 12/16] platform/x86: lenovo-wmi-other: Add GPU " Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 13/16] platform/x86: lenovo-wmi-other: Rename LWMI_OM_FW_ATTR_BASE_PATH Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 14/16] platform/x86: lenovo-wmi-other: Add WMI battery charge limiting Derek J. Clark
2026-04-06 20:13 ` [PATCH v8 15/16] platform/x86: lenovo-wmi-helpers: Add helper for creating per-device debugfs dir Derek J. Clark
2026-04-06 20:14 ` [PATCH v8 16/16] platform/x86: lenovo-wmi-capdata: Add debugfs file for dumping capdata Derek J. Clark
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260406201400.438221-1-derekjohn.clark@gmail.com \
--to=derekjohn.clark@gmail.com \
--cc=W_Armin@gmx.de \
--cc=corbet@lwn.net \
--cc=hansg@kernel.org \
--cc=i@rong.moe \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kuurtb@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpearson-lenovo@squebb.ca \
--cc=platform-driver-x86@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox