Re: [PATCH v7 11/16] platform/x86: lenovo-wmi-other: Add missing CPU tunable attributes
From: Mark Pearson
Date: Mon Apr 06 2026 - 15:23:58 EST
On Mon, Apr 6, 2026, at 3:14 PM, Derek John Clark wrote:
> On Sat, Apr 4, 2026 at 5:48 PM Mark Pearson <mpearson-lenovo@xxxxxxxxx> wrote:
>>
>> Hi Derek
>>
>> On Wed, Apr 1, 2026, at 11:24 PM, Derek J. Clark wrote:
>> > Use an enum for all device ID's and CPU attribute feature ID's,
>> > add missing CPU attributes.
>> >
>> > Reviewed-by: Rong Zhang <i@xxxxxxxx>
>> > Reviewed-by: Mark Pearson <mpearson-lenovo@xxxxxxxxx>
>> > Signed-off-by: Derek J. Clark <derekjohn.clark@xxxxxxxxx>
>> > ---
>> > v7:
>> > - Fix typo in documentation.
>> > v4:
>> > - Align type ID defines.
>> > - Align CPU feature enum values.
>> > - remove cpu_oc_stat from Documentation.
>> > v3:
>> > - Remove cpu_oc_stat.
>> > ---
>> > .../wmi/devices/lenovo-wmi-other.rst | 9 ++
>> > drivers/platform/x86/lenovo/wmi-capdata.h | 5 +-
>> > drivers/platform/x86/lenovo/wmi-other.c | 99 ++++++++++++++++++-
>> > 3 files changed, 107 insertions(+), 6 deletions(-)
>> >
>> > diff --git a/Documentation/wmi/devices/lenovo-wmi-other.rst
>> > b/Documentation/wmi/devices/lenovo-wmi-other.rst
>> > index 01d471156738..189dd4d31926 100644
>> > --- a/Documentation/wmi/devices/lenovo-wmi-other.rst
>> > +++ b/Documentation/wmi/devices/lenovo-wmi-other.rst
>> > @@ -68,9 +68,18 @@ Each attribute has the following properties:
>> > - type
>> >
>> > The following firmware-attributes are implemented:
>> > + - cpu_temp: CPU Thermal Load Limit
>> > + - ppt_cpu_cl: CPU Cross Loading Power Limit
>> > + - ppt_pl1_apu_spl: Platform Profile Tracking APU Sustained Power Limit
>> > - ppt_pl1_spl: Platform Profile Tracking Sustained Power Limit
>> > + - ppt_pl1_spl_cl: Platform Profile Tracking Cross Loading Sustained
>> > Power Limit
>> > + - ppt_pl1_tau: Exceed Duration for Platform Profile Tracking
>> > Sustained Power Limit
>> > - ppt_pl2_sppt: Platform Profile Tracking Slow Package Power Tracking
>> > + - ppt_pl2_sppt_cl: Platform Profile Tracking Cross Loading Slow
>> > Package Tracking
>> > - ppt_pl3_fppt: Platform Profile Tracking Fast Package Power Tracking
>> > + - ppt_pl3_fppt_cl: Platform Profile Tracking Cross Loading Fast
>> > Package Power Tracking
>> > + - ppt_pl4_ipl: Platform Profile Tracking Instantaneous Power Limit
>> > + - ppt_pl4_ipl_cl: Platform Profile Tracking Cross Loading
>> > Instantaneous Power Limit
>> >
>>
>> Just wanted to flag that the naming for sppt and fppt seems wrong to me. Wanted to make sure it was deliberate.
>>
>> I have, for Feature ID's:
>> 1 = CPU Short Term Power Limit (you have Slow package Power Tracking)
>> 3 = CPU Peak Power Limit (you have as Fast Package Power Tracking)
>>
>
> Hmm, that does seem to be what the documentation shows. However, from
> what my devices report this appears to be correct in practice. From my
> Lenovo Legion Go:
>
> ATTR{attributes/ppt_pl1_spl/current_value}=="20"
> ATTR{attributes/ppt_pl1_spl/max_value}=="30"
> ATTR{attributes/ppt_pl2_sppt/current_value}=="22"
> ATTR{attributes/ppt_pl2_sppt/max_value}=="35"
> ATTR{attributes/ppt_pl3_fppt/current_value}=="24"
> ATTR{attributes/ppt_pl3_fppt/max_value}=="41"
>
> It seems the max values line up with the intended use cases for each
> attribute, and ryzenadj reports the same current values here when
> probed. I would personally chock this up to Lenovo documentation being
> wrong, but perhaps the situation is different with an Intel device? I
> don't have one on hand to verify with.
>
Ah - good point. I don't have an Intel one either :)
I think you're probably right about Lenovo documentation so unless I find out otherwise let's leave it as it is.
Mark