On Wed, Feb 25, 2026 at 7:14 AM Lazar, Lijo <[email protected]> wrote:
>
>
>
> On 25-Feb-26 3:04 PM, Yang Wang wrote:
> > Limit GPU/MEM/VCN load sensor values to 0-100 range via clamp_t to ensure
> > validity.
> >
>
> Is this a workaround? If it's not within range, it indicates some
> underlying issue.

Likely for:
https://gitlab.freedesktop.org/drm/amd/-/issues/4905

Alex

>
> Thanks,
> Lijo
>
> > Signed-off-by: Yang Wang <[email protected]>
> > ---
> >   drivers/gpu/drm/amd/pm/amdgpu_pm.c | 27 +++++++++++++++++++++++----
> >   1 file changed, 23 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c 
> > b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
> > index 938361ecae05..86ef1ffbf1dd 100644
> > --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
> > +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
> > @@ -1414,20 +1414,39 @@ static ssize_t 
> > amdgpu_set_pp_power_profile_mode(struct device *dev,
> >
> >   static int amdgpu_pm_get_sensor_generic(struct amdgpu_device *adev,
> >                                       enum amd_pp_sensors sensor,
> > -                                     void *query)
> > +                                     uint32_t *val)
> >   {
> > -     int r, size = sizeof(uint32_t);
> > +     uint32_t tmp = UINT_MAX, size = sizeof(tmp);
> > +     int r;
> > +
> > +     if (!val)
> > +             return -EINVAL;
> >
> >       r = amdgpu_pm_get_access_if_active(adev);
> >       if (r)
> >               return r;
> >
> >       /* get the sensor value */
> > -     r = amdgpu_dpm_read_sensor(adev, sensor, query, &size);
> > +     r = amdgpu_dpm_read_sensor(adev, sensor, (void *)&tmp, &size);
> >
> >       amdgpu_pm_put_access(adev);
> >
> > -     return r;
> > +     if (r)
> > +             return r;
> > +
> > +     switch (sensor) {
> > +     case AMDGPU_PP_SENSOR_GPU_LOAD:
> > +     case AMDGPU_PP_SENSOR_MEM_LOAD:
> > +     case AMDGPU_PP_SENSOR_VCN_LOAD:
> > +             tmp = clamp_t(uint32_t, tmp, 0, 100);
> > +             break;
> > +     default:
> > +             break;
> > +     }
> > +
> > +     *val = tmp;
> > +
> > +     return 0;
> >   }
> >
> >   /**
>

Reply via email to