[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251019210450.88830-1-i@rong.moe>
Date: Mon, 20 Oct 2025 05:04:43 +0800
From: Rong Zhang <i@...g.moe>
To: Mark Pearson <mpearson-lenovo@...ebb.ca>,
"Derek J. Clark" <derekjohn.clark@...il.com>,
Armin Wolf <W_Armin@....de>,
Hans de Goede <hansg@...nel.org>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
Cc: Rong Zhang <i@...g.moe>,
Guenter Roeck <linux@...ck-us.net>,
platform-driver-x86@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-hwmon@...r.kernel.org
Subject: [PATCH 0/6] platform/x86: lenovo-wmi-{capdata,other}: Add HWMON for fan speed
Lenovo WMI Other Mode interface also supports querying or setting fan
speed RPM. This capability is decribed by LENOVO_CAPABILITY_DATA_00.
Besides, LENOVO_FAN_TEST_DATA provides reference data for self-test of
cooling fans, including minimum and maximum fan speed RPM.
This patchset turns lenovo-wmi-capdata01 into a unified driver (now
named lenovo-wmi-capdata) for LENOVO_CAPABILITY_DATA_{00,01} and
LENOVO_FAN_TEST_DATA; then adds HWMON support for lenovo-wmi-other:
- fanX_enable: enable/disable the fan (tunable)
- fanX_input: current RPM
- fanX_max: maximum RPM
- fanX_min: minimum RPM
- fanX_target: target RPM (tunable)
This implementation doesn't require all capability data to be available,
and is capable to expose interfaces accordingly:
- Having LENOVO_CAPABILITY_DATA_00: exposes fanX_{enable,input,target}
- Having LENOVO_CAPABILITY_DATA_01: exposes firmware_attributes
- Having LENOVO_FAN_TEST_DATA: exposes fanX_{max,min}
Rong Zhang (6):
platform/x86: Rename lenovo-wmi-capdata01 to lenovo-wmi-capdata
platform/x86: lenovo-wmi-{capdata,other}: Support multiple Capability
Data
platform/x86: lenovo-wmi-capdata: Add support for Capability Data 00
platform/x86: lenovo-wmi-other: Add HWMON for fan speed RPM
platform/x86: lenovo-wmi-capdata: Add support for Fan Test Data
platform/x86: lenovo-wmi-other: Report min/max RPM and hide dummy fans
.../wmi/devices/lenovo-wmi-other.rst | 32 +
drivers/platform/x86/lenovo/Kconfig | 5 +-
drivers/platform/x86/lenovo/Makefile | 2 +-
drivers/platform/x86/lenovo/wmi-capdata.c | 545 ++++++++++++++++++
drivers/platform/x86/lenovo/wmi-capdata.h | 46 ++
drivers/platform/x86/lenovo/wmi-capdata01.c | 302 ----------
drivers/platform/x86/lenovo/wmi-capdata01.h | 25 -
drivers/platform/x86/lenovo/wmi-other.c | 422 +++++++++++++-
8 files changed, 1028 insertions(+), 351 deletions(-)
create mode 100644 drivers/platform/x86/lenovo/wmi-capdata.c
create mode 100644 drivers/platform/x86/lenovo/wmi-capdata.h
delete mode 100644 drivers/platform/x86/lenovo/wmi-capdata01.c
delete mode 100644 drivers/platform/x86/lenovo/wmi-capdata01.h
base-commit: 3a8660878839faadb4f1a6dd72c3179c1df56787
--
2.51.0
Powered by blists - more mailing lists