Re: [RFC PATCH 0/3] platform/x86: lenovo: Add Legion Go fan controls
Rong Zhang <[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]> |
Hi Derek, On Sun, 2026-08-23 at 13:08 -0700, Derek J. Clark wrote: > 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. Thanks for that. I will do so the next time I post patch series for Lenovo drivers :-P Cheers, Rong > > > > 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