[PATCH] Revert "drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 properly""
Alex Deucher
alexdeucher at gmail.com
Fri Nov 4 14:20:30 UTC 2022
On Fri, Nov 4, 2022 at 5:30 AM Asher Song <Asher.Song at amd.com> wrote:
>
> This reverts commit 97370f1826eb7ee6880e09ee1eaafe28232cabc6.
>
> The origin patch "drm/amdgpu: getting fan speed pwm for vega10 properly" works fine. Test failure is caused by test case self.
Instead of reverting the revert, can you just reapply the original
patch and amend the commit message with this statement?
Either way:
Acked-by: Alex Deucher <alexander.deucher at amd.com>
Alex
>
> Signed-off-by: Asher Song <Asher.Song at amd.com>
> ---
> .../amd/pm/powerplay/hwmgr/vega10_thermal.c | 25 +++++++++----------
> 1 file changed, 12 insertions(+), 13 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 dad3e3741a4e..190af79f3236 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c
> @@ -67,22 +67,21 @@ 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)
> {
> - uint32_t current_rpm;
> - uint32_t percent = 0;
> -
> - if (hwmgr->thermal_controller.fanInfo.bNoFan)
> - return 0;
> + struct amdgpu_device *adev = hwmgr->adev;
> + uint32_t duty100, duty;
> + uint64_t tmp64;
>
> - if (vega10_get_current_rpm(hwmgr, ¤t_rpm))
> - return -1;
> + 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.
> - advanceFanControlParameters.usMaxFanRPM != 0)
> - percent = current_rpm * 255 /
> - hwmgr->thermal_controller.
> - advanceFanControlParameters.usMaxFanRPM;
> + if (!duty100)
> + return -EINVAL;
>
> - *speed = MIN(percent, 255);
> + tmp64 = (uint64_t)duty * 255;
> + do_div(tmp64, duty100);
> + *speed = MIN((uint32_t)tmp64, 255);
>
> return 0;
> }
> --
> 2.25.1
>
More information about the amd-gfx
mailing list