[PATCH 9/9] drm/amd: Hide unsupported power attributes

Alex Deucher alexdeucher at gmail.com
Fri Aug 11 13:44:21 UTC 2023


Series is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

On Thu, Aug 10, 2023 at 11:40 PM Mario Limonciello
<mario.limonciello at amd.com> 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 at amd.com>
> ---
>  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
>


More information about the amd-gfx mailing list