[PATCH] drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 properly"

Yury Zhuravlev stalkerg at gmail.com
Wed Oct 26 01:31:01 UTC 2022


Hello,
Can you write here your card name and firmware version? Without this patch,
my fan sensors are broken, and it's sensitive to my pc case with water
cooling.
My card is:  Sapphire Pulse Radeon RX Vega 56  vd6546 SA
lspci name: [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] (rev c3)
Firmware: ATOM BIOS: 113-376XL-UO2
This patch is 100% working correct on my machine, and I tested it last 2
months.

Regards,

On Fri, Oct 14, 2022 at 1:15 PM Asher Song <Asher.Song at amd.com> wrote:

> This reverts commit fe01cb24b81c0091d7e5668874d51ce913e44a97.
>
> Unfortunately, that commit causes fan monitors can't be read and written
> properly.
>
> Signed-off-by: Asher Song <Asher.Song at amd.com>
> ---
>  .../amd/pm/powerplay/hwmgr/vega10_thermal.c   | 25 ++++++++++---------
>  1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> index 190af79f3236..dad3e3741a4e 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> @@ -67,21 +67,22 @@ int vega10_fan_ctrl_get_fan_speed_info(struct pp_hwmgr
> *hwmgr,
>  int vega10_fan_ctrl_get_fan_speed_pwm(struct pp_hwmgr *hwmgr,
>                 uint32_t *speed)
>  {
> -       struct amdgpu_device *adev = hwmgr->adev;
> -       uint32_t duty100, duty;
> -       uint64_t tmp64;
> +       uint32_t current_rpm;
> +       uint32_t percent = 0;
>
> -       duty100 = REG_GET_FIELD(RREG32_SOC15(THM, 0, mmCG_FDO_CTRL1),
> -                               CG_FDO_CTRL1, FMAX_DUTY100);
> -       duty = REG_GET_FIELD(RREG32_SOC15(THM, 0, mmCG_THERMAL_STATUS),
> -                               CG_THERMAL_STATUS, FDO_PWM_DUTY);
> +       if (hwmgr->thermal_controller.fanInfo.bNoFan)
> +               return 0;
>
> -       if (!duty100)
> -               return -EINVAL;
> +       if (vega10_get_current_rpm(hwmgr, &current_rpm))
> +               return -1;
> +
> +       if (hwmgr->thermal_controller.
> +                       advanceFanControlParameters.usMaxFanRPM != 0)
> +               percent = current_rpm * 255 /
> +                       hwmgr->thermal_controller.
> +                       advanceFanControlParameters.usMaxFanRPM;
>
> -       tmp64 = (uint64_t)duty * 255;
> -       do_div(tmp64, duty100);
> -       *speed = MIN((uint32_t)tmp64, 255);
> +       *speed = MIN(percent, 255);
>
>         return 0;
>  }
> --
> 2.25.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20221026/b8fa404d/attachment.htm>


More information about the amd-gfx mailing list