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

Song, Asher Asher.Song at amd.com
Wed Oct 26 06:51:23 UTC 2022


[AMD Official Use Only - General]

+ at Meng, Xiaohu<mailto:Xiaohu.Meng at amd.com>

Hi Zhuravlev,

The information of test card is as following:
Lspci name: [AMD/ATI] Vega 10 [Radeon Instinct MI25 MxGPU] (rev 05)
Firmware: ATOM BIOS: 113-D0531800-C04

When run test scripts compute-rocm-*/utils/run_rsmitst.sh, the below test cases fail.
[  FAILED  ] 4 tests, listed below:
[  FAILED  ] rsmitstReadOnly.TestOverdriveRead
[  FAILED  ] rsmitstReadWrite.FanReadWrite
[  FAILED  ] rsmitstReadWrite.TestOverdriveReadWrite
[  FAILED  ] rsmitstReadWrite.TestPowerCapReadWrite

Best Regards,
Asher
From: Yury Zhuravlev <stalkerg at gmail.com>
Sent: Wednesday, October 26, 2022 9:31 AM
To: Song, Asher <Asher.Song at amd.com>
Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; Chen, Guchun <Guchun.Chen at amd.com>; Quan, Evan <Evan.Quan at amd.com>; amd-gfx at lists.freedesktop.org
Subject: Re: [PATCH] drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 properly"

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<mailto: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<mailto: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/641dbf9e/attachment.htm>


More information about the amd-gfx mailing list