Re: [PATCH v7 12/16] platform/x86: lenovo-wmi-other: Add GPU tunable attributes
From: Derek John Clark
Date: Mon Apr 06 2026 - 15:22:56 EST
On Sat, Apr 4, 2026 at 5:54 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 GPU attribute feature ID's and add GPU 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 dgpu_boost_clk attribute string.
> > v4:
> > - Align CPU feature enum values.
> > - Remove gpu_oc_stat from Documentation.
> > v3:
> > - Remove gpu_oc_stat.
> > ---
> > .../wmi/devices/lenovo-wmi-other.rst | 10 ++
> > drivers/platform/x86/lenovo/wmi-capdata.h | 1 +
> > drivers/platform/x86/lenovo/wmi-other.c | 105 ++++++++++++++++++
> > 3 files changed, 116 insertions(+)
> >
> > diff --git a/Documentation/wmi/devices/lenovo-wmi-other.rst
> > b/Documentation/wmi/devices/lenovo-wmi-other.rst
> > index 189dd4d31926..988ae04ff724 100644
> > --- a/Documentation/wmi/devices/lenovo-wmi-other.rst
> > +++ b/Documentation/wmi/devices/lenovo-wmi-other.rst
> > @@ -69,6 +69,16 @@ Each attribute has the following properties:
> >
> > The following firmware-attributes are implemented:
> > - cpu_temp: CPU Thermal Load Limit
> > + - dgpu_boost_clk: Dedicated GPU Boost Clock
> > + - dgpu_enable: Dedicated GPU Enabled Status
> > + - gpu_didvid: GPU Device Identifier and Vendor Identifier
> > + - gpu_mode: GPU Mode by Power Limit
> > + - gpu_nv_ac_offset: Nvidia GPU AC Total Processing Power Baseline
> > Offset
> > + - gpu_nv_bpl: Nvidia GPU Base Power Limit
> > + - gpu_nv_cpu_boost: Nvidia GPU to CPU Dynamic Boost Limit
> > + - gpu_nv_ctgp: Nvidia GPU Configurable Total Graphics Power
> > + - gpu_nv_ppab: Nvidia GPU Power Performance Aware Boost Limit
> > + - gpu_temp: GPU 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
> > diff --git a/drivers/platform/x86/lenovo/wmi-capdata.h
> > b/drivers/platform/x86/lenovo/wmi-capdata.h
> > index f2d45cd7a188..891b12ca1db6 100644
> > --- a/drivers/platform/x86/lenovo/wmi-capdata.h
> > +++ b/drivers/platform/x86/lenovo/wmi-capdata.h
> > @@ -20,6 +20,7 @@
> >
> > enum lwmi_device_id {
> > LWMI_DEVICE_ID_CPU = 0x01,
> > + LWMI_DEVICE_ID_GPU = 0x02,
> > LWMI_DEVICE_ID_FAN = 0x04,
> > };
> >
> > diff --git a/drivers/platform/x86/lenovo/wmi-other.c
> > b/drivers/platform/x86/lenovo/wmi-other.c
> > index 56c8b84f306d..57b6b6f17f33 100644
> > --- a/drivers/platform/x86/lenovo/wmi-other.c
> > +++ b/drivers/platform/x86/lenovo/wmi-other.c
> > @@ -61,6 +61,19 @@ enum lwmi_feature_id_cpu {
> > LWMI_FEATURE_ID_CPU_IPL = 0x09,
> > };
> >
> > +enum lwmi_feature_id_gpu {
> > + LWMI_FEATURE_ID_GPU_NV_PPAB = 0x01,
> > + LWMI_FEATURE_ID_GPU_NV_CTGP = 0x02,
> > + LWMI_FEATURE_ID_GPU_TEMP = 0x03,
> > + LWMI_FEATURE_ID_GPU_AC_OFFSET = 0x04,
> > + LWMI_FEATURE_ID_DGPU_BOOST_CLK = 0x06,
> > + LWMI_FEATURE_ID_DGPU_EN = 0x07,
> > + LWMI_FEATURE_ID_GPU_MODE = 0x08,
> > + LWMI_FEATURE_ID_DGPU_DIDVID = 0x09,
> > + LWMI_FEATURE_ID_GPU_NV_BPL = 0x0a,
> > + LWMI_FEATURE_ID_GPU_NV_CPU_BOOST = 0x0b,
> > +};
> > +
>
> I don't have feature ID's 0x6 to 0xa defined in the spec that I have (which I got off the Yoga team last week).
> We should sync up offline and compare notes.
>
Odd, I have it all clearly shown in the documentation I have...
Feature ID (DeviceID = 2)
Feature | FeatureID | TypeID
Nvidia GPU PPAB | 0x01 |
Nvidia GPU cTGP | 0x02 |
GPU Thermal Limit | 0x03 |
Nvidia GPU Total Processing Power Target on AC offset from baseline | 0x04 |
GPU Overclocking Stauts | 0x05 |
Get GPU boost clock | 0x06 |
Set whether the dgpu exists in the device manager | 0x07 |
Get_Mode_By_Power_Limit | 0x08 |
Get_GPU DIDVID | 0x09 |
Get_GPU Base Power Limit | 0x0A |
Nvidia GPU To CPU Boost | 0x0B |
Nvidia GPU DBDC Data | 0x0C |
Derek
> Mark