[RFC PATCH 0/3] platform/x86: lenovo: Add Legion Go fan controls
Aditya Dash <[email protected]>
| Newsgroups | org.kernel.vger.platform-driver-x86,org.kernel.vger.linux-doc,org.kernel.vger.linux-hwmon,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Capability Data does not cover all fan controls on the Legion Go. Full Speed uses a separate Other Mode feature, some firmware exposes an RPM reading that Capability Data does not advertise, and the custom fan table uses a separate Fan Method WMI interface. Patches 1 and 2 add Full Speed and the RPM fallback to the existing HWMON device. Patch 3 adds a Fan Method driver and attaches the ten curve points to that device when both WMI interfaces belong to the same provider. Other Mode continues to work without Fan Method. The open question is how the firmware control range should map to HWMON. On the tested Legion Go 8APU1, values from 0 through 115 produce the observable fan response and correspond to Lenovo's 0 through 115 percent range. Lenovo software shows 0 through 100 percent to the user, and 115 reaches the RPM observed in Full Speed mode. Firmware accepts values through 255, but no RPM increase was observed above 115. This series keeps the native values unchanged and exposes the fixed temperatures as read-only automatic points. Should the driver map the effective 0 through 115 range to the standard HWMON 0 through 255 scale, or keep the native firmware values unchanged? Aditya Dash (3): platform/x86: lenovo-wmi-other: Add Legion Go Full Speed control platform/x86: lenovo-wmi-other: Add Legion Go fan RPM fallback platform/x86: lenovo: Add Legion Go Fan Method curve driver .../wmi/devices/lenovo-wmi-fan-method.rst | 34 ++ .../wmi/devices/lenovo-wmi-other.rst | 14 + MAINTAINERS | 1 + drivers/platform/x86/lenovo/Kconfig | 11 + drivers/platform/x86/lenovo/Makefile | 1 + drivers/platform/x86/lenovo/wmi-fan-method.c | 380 ++++++++++++++++++ drivers/platform/x86/lenovo/wmi-other.c | 215 +++++++++- 7 files changed, 649 insertions(+), 7 deletions(-) create mode 100644 Documentation/wmi/devices/lenovo-wmi-fan-method.rst create mode 100644 drivers/platform/x86/lenovo/wmi-fan-method.c base-commit: aca39607c1734ed976fdd65deb75b3555a5a0326 -- 2.55.0