[AMD Official Use Only - AMD Internal Distribution Only] Ping...
Best Regards, Kevin -----Original Message----- From: Alex Deucher <[email protected]> Sent: Wednesday, February 25, 2026 10:24 PM To: Lazar, Lijo <[email protected]> Cc: Wang, Yang(Kevin) <[email protected]>; [email protected]; Deucher, Alexander <[email protected]>; Zhang, Hawking <[email protected]>; Feng, Kenneth <[email protected]> Subject: Re: [PATCH] drm/amd/pm: restrict sensor load values to 0-100 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; > > } > > > > /** >
