Series is: Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> On Thu, Aug 10, 2023 at 11:40 PM Mario Limonciello <mario.limonciello@xxxxxxx> wrote: > > Some ASICS only offer one type of power attribute, so in the visible > callback check whether the attributes are supported and hide if not > supported. > > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > --- > drivers/gpu/drm/amd/pm/amdgpu_pm.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > index 8133d968f75b9..5b1d73b00ef73 100644 > --- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c > +++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c > @@ -3179,6 +3179,7 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj, > struct amdgpu_device *adev = dev_get_drvdata(dev); > umode_t effective_mode = attr->mode; > uint32_t gc_ver = adev->ip_versions[GC_HWIP][0]; > + uint32_t tmp; > > /* under multi-vf mode, the hwmon attributes are all not supported */ > if (amdgpu_sriov_vf(adev) && !amdgpu_sriov_is_pp_one_vf(adev)) > @@ -3264,6 +3265,14 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj, > (attr == &sensor_dev_attr_power1_average.dev_attr.attr)) > return 0; > > + /* not all products support both average and instantaneous */ > + if (attr == &sensor_dev_attr_power1_average.dev_attr.attr && > + amdgpu_hwmon_get_sensor_generic(adev, AMDGPU_PP_SENSOR_GPU_AVG_POWER, (void *)&tmp) == -EOPNOTSUPP) > + return 0; > + if (attr == &sensor_dev_attr_power1_input.dev_attr.attr && > + amdgpu_hwmon_get_sensor_generic(adev, AMDGPU_PP_SENSOR_GPU_INPUT_POWER, (void *)&tmp) == -EOPNOTSUPP) > + return 0; > + > /* hide max/min values if we can't both query and manage the fan */ > if (((amdgpu_dpm_set_fan_speed_pwm(adev, U32_MAX) == -EOPNOTSUPP) && > (amdgpu_dpm_get_fan_speed_pwm(adev, NULL) == -EOPNOTSUPP) && > -- > 2.34.1 >