+@Meng, Xiaohu
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@xxxxxxxxx>
Sent: Wednesday, October 26, 2022 9:31 AM
To: Song, Asher <Asher.Song@xxxxxxx>
Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Chen, Guchun <Guchun.Chen@xxxxxxx>; Quan, Evan <Evan.Quan@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
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.
This reverts commit fe01cb24b81c0091d7e5668874d51ce913e44a97.
Unfortunately, that commit causes fan monitors can't be read and written
properly.
Signed-off-by: Asher Song <Asher.Song@xxxxxxx>
---
.../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, ¤t_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
|