Re: [RFC PATCH 0/3] platform/x86: lenovo: Add Legion Go fan controls
From: Rong Zhang
Date: Sun Aug 23 2026 - 16:32:58 EST
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 <i@xxxxxxxx> 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