| From 15285fce6941974b2fe116caeb966ba7f7f7c358 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 17 Apr 2020 01:37:45 +0530 |
| Subject: drm/amdgpu: Correctly initialize thermal controller for GPUs with |
| Powerplay table v0 (e.g Hawaii) |
| |
| From: Sandeep Raghuraman <sandy.8925@gmail.com> |
| |
| [ Upstream commit bbc25dadc7ed19f9d6b2e30980f0eb4c741bb8bf ] |
| |
| Initialize thermal controller fields in the PowerPlay table for Hawaii |
| GPUs, so that fan speeds are reported. |
| |
| Signed-off-by: Sandeep Raghuraman <sandy.8925@gmail.com> |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| .../drm/amd/powerplay/hwmgr/processpptables.c | 26 +++++++++++++++++++ |
| 1 file changed, 26 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c b/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c |
| index 925e17104f909..b9e08b06ed5db 100644 |
| --- a/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c |
| +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c |
| @@ -983,6 +983,32 @@ static int init_thermal_controller( |
| struct pp_hwmgr *hwmgr, |
| const ATOM_PPLIB_POWERPLAYTABLE *powerplay_table) |
| { |
| + hwmgr->thermal_controller.ucType = |
| + powerplay_table->sThermalController.ucType; |
| + hwmgr->thermal_controller.ucI2cLine = |
| + powerplay_table->sThermalController.ucI2cLine; |
| + hwmgr->thermal_controller.ucI2cAddress = |
| + powerplay_table->sThermalController.ucI2cAddress; |
| + |
| + hwmgr->thermal_controller.fanInfo.bNoFan = |
| + (0 != (powerplay_table->sThermalController.ucFanParameters & |
| + ATOM_PP_FANPARAMETERS_NOFAN)); |
| + |
| + hwmgr->thermal_controller.fanInfo.ucTachometerPulsesPerRevolution = |
| + powerplay_table->sThermalController.ucFanParameters & |
| + ATOM_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK; |
| + |
| + hwmgr->thermal_controller.fanInfo.ulMinRPM |
| + = powerplay_table->sThermalController.ucFanMinRPM * 100UL; |
| + hwmgr->thermal_controller.fanInfo.ulMaxRPM |
| + = powerplay_table->sThermalController.ucFanMaxRPM * 100UL; |
| + |
| + set_hw_cap(hwmgr, |
| + ATOM_PP_THERMALCONTROLLER_NONE != hwmgr->thermal_controller.ucType, |
| + PHM_PlatformCaps_ThermalController); |
| + |
| + hwmgr->thermal_controller.use_hw_fan_control = 1; |
| + |
| return 0; |
| } |
| |
| -- |
| 2.20.1 |
| |