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

Derek J. Clark posted 6 patches 9 months ago
There is a newer version of this series
.../wmi/devices/lenovo-wmi-gamezone.rst       | 203 ++++++
.../wmi/devices/lenovo-wmi-other-method.rst   | 108 +++
MAINTAINERS                                   |  17 +
drivers/platform/x86/Kconfig                  |  40 ++
drivers/platform/x86/Makefile                 |   5 +
drivers/platform/x86/lenovo-wmi-capdata01.c   | 136 ++++
drivers/platform/x86/lenovo-wmi-capdata01.h   |  29 +
drivers/platform/x86/lenovo-wmi-events.c      | 132 ++++
drivers/platform/x86/lenovo-wmi-events.h      |  21 +
drivers/platform/x86/lenovo-wmi-gamezone.c    | 380 +++++++++++
drivers/platform/x86/lenovo-wmi-gamezone.h    |  18 +
drivers/platform/x86/lenovo-wmi-helpers.c     |  64 ++
drivers/platform/x86/lenovo-wmi-helpers.h     |  24 +
drivers/platform/x86/lenovo-wmi-other.c       | 626 ++++++++++++++++++
drivers/platform/x86/lenovo-wmi-other.h       |  19 +
15 files changed, 1822 insertions(+)
create mode 100644 Documentation/wmi/devices/lenovo-wmi-gamezone.rst
create mode 100644 Documentation/wmi/devices/lenovo-wmi-other-method.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 v4 0/6] platform/x86: Add Lenovo Gaming Series WMI Drivers
Posted by Derek J. Clark 9 months 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 a later
patches.

This driver is distinct from, but should be considered a replacement for
this patch:
https://lore.kernel.org/all/20241118100503.14228-1-jonmail@163.com/

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/20250316230724.100165-1-luke@ljones.dev/

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

Suggested-by: Mario Limonciello <superm1@kernel.org>
Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
--- 
v4:
 - Added lenovo-wmi-events driver
 - Added headers for every driver
 - Fixes requested from v3 review
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/
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 Other Mode WMI Driver
  platform/x86: Add Lenovo Gamezone WMI Driver

 .../wmi/devices/lenovo-wmi-gamezone.rst       | 203 ++++++
 .../wmi/devices/lenovo-wmi-other-method.rst   | 108 +++
 MAINTAINERS                                   |  17 +
 drivers/platform/x86/Kconfig                  |  40 ++
 drivers/platform/x86/Makefile                 |   5 +
 drivers/platform/x86/lenovo-wmi-capdata01.c   | 136 ++++
 drivers/platform/x86/lenovo-wmi-capdata01.h   |  29 +
 drivers/platform/x86/lenovo-wmi-events.c      | 132 ++++
 drivers/platform/x86/lenovo-wmi-events.h      |  21 +
 drivers/platform/x86/lenovo-wmi-gamezone.c    | 380 +++++++++++
 drivers/platform/x86/lenovo-wmi-gamezone.h    |  18 +
 drivers/platform/x86/lenovo-wmi-helpers.c     |  64 ++
 drivers/platform/x86/lenovo-wmi-helpers.h     |  24 +
 drivers/platform/x86/lenovo-wmi-other.c       | 626 ++++++++++++++++++
 drivers/platform/x86/lenovo-wmi-other.h       |  19 +
 15 files changed, 1822 insertions(+)
 create mode 100644 Documentation/wmi/devices/lenovo-wmi-gamezone.rst
 create mode 100644 Documentation/wmi/devices/lenovo-wmi-other-method.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.49.0
Re: [PATCH v4 0/6] platform/x86: Add Lenovo Gaming Series WMI Drivers
Posted by Derek John Clark 9 months ago
On Sun, Mar 16, 2025 at 11:33 PM Derek J. Clark
<derekjohn.clark@gmail.com> 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 a later
> patches.
>
> This driver is distinct from, but should be considered a replacement for
> this patch:
> https://lore.kernel.org/all/20241118100503.14228-1-jonmail@163.com/
>
> 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/20250316230724.100165-1-luke@ljones.dev/
>
> The drivers have been tested by me on the Lenovo Legion Go and Legion Go
> S.
>
> Suggested-by: Mario Limonciello <superm1@kernel.org>
> Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
> ---
> v4:
>  - Added lenovo-wmi-events driver
>  - Added headers for every driver
>  - Fixes requested from v3 review
> 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/
> 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 Other Mode WMI Driver
>   platform/x86: Add Lenovo Gamezone WMI Driver
>
>  .../wmi/devices/lenovo-wmi-gamezone.rst       | 203 ++++++
>  .../wmi/devices/lenovo-wmi-other-method.rst   | 108 +++
>  MAINTAINERS                                   |  17 +
>  drivers/platform/x86/Kconfig                  |  40 ++
>  drivers/platform/x86/Makefile                 |   5 +
>  drivers/platform/x86/lenovo-wmi-capdata01.c   | 136 ++++
>  drivers/platform/x86/lenovo-wmi-capdata01.h   |  29 +
>  drivers/platform/x86/lenovo-wmi-events.c      | 132 ++++
>  drivers/platform/x86/lenovo-wmi-events.h      |  21 +
>  drivers/platform/x86/lenovo-wmi-gamezone.c    | 380 +++++++++++
>  drivers/platform/x86/lenovo-wmi-gamezone.h    |  18 +
>  drivers/platform/x86/lenovo-wmi-helpers.c     |  64 ++
>  drivers/platform/x86/lenovo-wmi-helpers.h     |  24 +
>  drivers/platform/x86/lenovo-wmi-other.c       | 626 ++++++++++++++++++
>  drivers/platform/x86/lenovo-wmi-other.h       |  19 +
>  15 files changed, 1822 insertions(+)
>  create mode 100644 Documentation/wmi/devices/lenovo-wmi-gamezone.rst
>  create mode 100644 Documentation/wmi/devices/lenovo-wmi-other-method.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.49.0
>

All,

I accidentally attached some misnamed patches that I didn't realize
got duplicated. The correct patches are all v4 X/6. Apologies for the
confusion.

Cheers,
Derek.