[PATCH v13 0/6] platform/x86: Add Lenovo WMI Gaming Series Drivers

Derek J. Clark posted 6 patches 3 months, 1 week ago
.../wmi/devices/lenovo-wmi-gamezone.rst       | 203 ++++++
.../wmi/devices/lenovo-wmi-other.rst          | 108 +++
MAINTAINERS                                   |   3 +
drivers/platform/x86/lenovo/Kconfig           |  41 ++
drivers/platform/x86/lenovo/Makefile          |   5 +
drivers/platform/x86/lenovo/wmi-capdata01.c   | 302 ++++++++
drivers/platform/x86/lenovo/wmi-capdata01.h   |  25 +
drivers/platform/x86/lenovo/wmi-events.c      | 196 ++++++
drivers/platform/x86/lenovo/wmi-events.h      |  20 +
drivers/platform/x86/lenovo/wmi-gamezone.c    | 407 +++++++++++
drivers/platform/x86/lenovo/wmi-gamezone.h    |  20 +
drivers/platform/x86/lenovo/wmi-helpers.c     |  74 ++
drivers/platform/x86/lenovo/wmi-helpers.h     |  20 +
drivers/platform/x86/lenovo/wmi-other.c       | 665 ++++++++++++++++++
drivers/platform/x86/lenovo/wmi-other.h       |  16 +
15 files changed, 2105 insertions(+)
create mode 100644 Documentation/wmi/devices/lenovo-wmi-gamezone.rst
create mode 100644 Documentation/wmi/devices/lenovo-wmi-other.rst
create mode 100644 drivers/platform/x86/lenovo/wmi-capdata01.c
create mode 100644 drivers/platform/x86/lenovo/wmi-capdata01.h
create mode 100644 drivers/platform/x86/lenovo/wmi-events.c
create mode 100644 drivers/platform/x86/lenovo/wmi-events.h
create mode 100644 drivers/platform/x86/lenovo/wmi-gamezone.c
create mode 100644 drivers/platform/x86/lenovo/wmi-gamezone.h
create mode 100644 drivers/platform/x86/lenovo/wmi-helpers.c
create mode 100644 drivers/platform/x86/lenovo/wmi-helpers.h
create mode 100644 drivers/platform/x86/lenovo/wmi-other.c
create mode 100644 drivers/platform/x86/lenovo/wmi-other.h
[PATCH v13 0/6] platform/x86: Add Lenovo WMI Gaming Series Drivers
Posted by Derek J. Clark 3 months, 1 week ago
Adds support for the Lenovo "Gaming Series" of laptop hardware that use
WMI interfaces that control various power settings. There are multiple WMI
interfaces that work in concert to provide getting and setting values as
well as validation of input. Currently only the "Gamezone", "Other
Mode", and "LENOVO_CAPABILITY_DATA_01" interfaces are implemented, but
I attempted to structure the driver so that adding the "Custom Mode",
"Lighting", and other data block interfaces would be trivial in later
patches.

This driver attempts to standardize the exposed sysfs by mirroring the
asus-armoury driver currently under review. As such, a lot of
inspiration has been drawn from that driver.
https://lore.kernel.org/platform-driver-x86/20250319065827.53478-1-luke@ljones.dev/#t

The drivers have been tested by me on the Lenovo Legion Go and Legion Go
S.

Suggested-by: Mario Limonciello <superm1@kernel.org>
Reviewed-by: Armin Wolf <W_Armin@gmx.de>
Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
---
v13:
 - Move drivers to new lenovo folder
v12:
https://lore.kernel.org/platform-driver-x86/20250609185027.7378-1-derekjohn.clark@gmail.com/
v11:
https://lore.kernel.org/platform-driver-x86/20250522015350.471070-1-derekjohn.clark@gmail.com/#t
v10:
https://lore.kernel.org/platform-driver-x86/20250515182224.8277-1-derekjohn.clark@gmail.com/
v9:
https://lore.kernel.org/platform-driver-x86/20250508235217.12256-1-derekjohn.clark@gmail.com/
v8:
https://lore.kernel.org/platform-driver-x86/20250505010659.1450984-1-derekjohn.clark@gmail.com/
v7:
https://lore.kernel.org/platform-driver-x86/20250503000142.1190354-1-derekjohn.clark@gmail.com/
v6:
https://lore.kernel.org/platform-driver-x86/20250428012029.970017-1-derekjohn.clark@gmail.com/
v5:
https://lore.kernel.org/platform-driver-x86/20250408012815.1032357-1-derekjohn.clark@gmail.com/
v4:
https://lore.kernel.org/platform-driver-x86/20250317144326.5850-1-derekjohn.clark@gmail.com/
v3:
https://lore.kernel.org/platform-driver-x86/20250225220037.16073-1-derekjohn.clark@gmail.com/
v2:
https://lore.kernel.org/platform-driver-x86/20250102004854.14874-1-derekjohn.clark@gmail.com/
v1:
https://lore.kernel.org/platform-driver-x86/20241217230645.15027-1-derekjohn.clark@gmail.com/

*** BLURB HERE ***

Derek J. Clark (6):
  platform/x86: Add lenovo-wmi-* driver Documentation
  platform/x86: Add lenovo-wmi-helpers
  platform/x86: Add Lenovo WMI Events Driver
  platform/x86: Add Lenovo Capability Data 01 WMI Driver
  platform/x86: Add Lenovo Gamezone WMI Driver
  platform/x86: Add Lenovo Other Mode WMI Driver

 .../wmi/devices/lenovo-wmi-gamezone.rst       | 203 ++++++
 .../wmi/devices/lenovo-wmi-other.rst          | 108 +++
 MAINTAINERS                                   |   3 +
 drivers/platform/x86/lenovo/Kconfig           |  41 ++
 drivers/platform/x86/lenovo/Makefile          |   5 +
 drivers/platform/x86/lenovo/wmi-capdata01.c   | 302 ++++++++
 drivers/platform/x86/lenovo/wmi-capdata01.h   |  25 +
 drivers/platform/x86/lenovo/wmi-events.c      | 196 ++++++
 drivers/platform/x86/lenovo/wmi-events.h      |  20 +
 drivers/platform/x86/lenovo/wmi-gamezone.c    | 407 +++++++++++
 drivers/platform/x86/lenovo/wmi-gamezone.h    |  20 +
 drivers/platform/x86/lenovo/wmi-helpers.c     |  74 ++
 drivers/platform/x86/lenovo/wmi-helpers.h     |  20 +
 drivers/platform/x86/lenovo/wmi-other.c       | 665 ++++++++++++++++++
 drivers/platform/x86/lenovo/wmi-other.h       |  16 +
 15 files changed, 2105 insertions(+)
 create mode 100644 Documentation/wmi/devices/lenovo-wmi-gamezone.rst
 create mode 100644 Documentation/wmi/devices/lenovo-wmi-other.rst
 create mode 100644 drivers/platform/x86/lenovo/wmi-capdata01.c
 create mode 100644 drivers/platform/x86/lenovo/wmi-capdata01.h
 create mode 100644 drivers/platform/x86/lenovo/wmi-events.c
 create mode 100644 drivers/platform/x86/lenovo/wmi-events.h
 create mode 100644 drivers/platform/x86/lenovo/wmi-gamezone.c
 create mode 100644 drivers/platform/x86/lenovo/wmi-gamezone.h
 create mode 100644 drivers/platform/x86/lenovo/wmi-helpers.c
 create mode 100644 drivers/platform/x86/lenovo/wmi-helpers.h
 create mode 100644 drivers/platform/x86/lenovo/wmi-other.c
 create mode 100644 drivers/platform/x86/lenovo/wmi-other.h

-- 
2.50.0
Re: [PATCH v13 0/6] platform/x86: Add Lenovo WMI Gaming Series Drivers
Posted by Ilpo Järvinen 3 months ago
On Tue, 01 Jul 2025 20:38:20 -0700, Derek J. Clark wrote:

> Adds support for the Lenovo "Gaming Series" of laptop hardware that use
> WMI interfaces that control various power settings. There are multiple WMI
> interfaces that work in concert to provide getting and setting values as
> well as validation of input. Currently only the "Gamezone", "Other
> Mode", and "LENOVO_CAPABILITY_DATA_01" interfaces are implemented, but
> I attempted to structure the driver so that adding the "Custom Mode",
> "Lighting", and other data block interfaces would be trivial in later
> patches.
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo-next branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-next branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/6] platform/x86: Add lenovo-wmi-* driver Documentation
      commit: 57139e126a30ce64f111c78b1b9e37b39a2b7424
[2/6] platform/x86: Add lenovo-wmi-helpers
      commit: e521d16e76cd9ea99c585e064f4e7daf657b1451
[3/6] platform/x86: Add Lenovo WMI Events Driver
      commit: 949bf144bdc72e87018197ae71aa4959f17885d5
[4/6] platform/x86: Add Lenovo Capability Data 01 WMI Driver
      commit: e1a5fe662b593108d14cd0481019601698f9fbe8
[5/6] platform/x86: Add Lenovo Gamezone WMI Driver
      commit: 22024ac5366f065a7b931bee5b62e2588521c4f0
[6/6] platform/x86: Add Lenovo Other Mode WMI Driver
      commit: edc4b183b794baefb54aa0baeb810fe3ac65d826

--
 i.