Re: [RFC PATCH 0/3] platform/x86: lenovo: Add Legion Go fan controls
"Derek J. Clark" <[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]> |
On August 23, 2026 12:32:02 PM PDT, Rong Zhang <[email protected]> wrote: >Hi Aditya, > >On Sat, 2026-08-22 at 03:17 +0530, Aditya Dash wrote: >> 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, >> > >"does not advertise" > >Really? Please dump capdata via debugfs and attach it. > >> and the custom fan table >> uses a separate Fan Method WMI interface. >> > >The hwmon part of lenovo-wmi-other was done by me. Please CC me in your >next revision. > Hi Rong, I'd ack if you wanted to add yourself as a maintainer of the Lenovo drivers so you get picked up by the kernel scripts. Otherwise people won't know to Cc you. >> 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 is what we've observed in Fan Test Data. We chose to enforce >constraints according to it and relax it when users set an module >parameter. > >> >> 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? > >In your case, if there is no range data to query, I'd prefer enforcing 0- >100 by default and relaxing it when appropriate range data is provided by >module parameters or DMI table. > >The range should always map to hwmon pwm 0-255. Concur on both counts. >As far as I can recall, Derek once said that he planed to introduce fan >curve support for Legion Go, so I think he has some helpful ideas. I'll post a full review once I've had time to test and review the documentation again. Cheers, Derek >Thanks, >Rong > >> >> 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