| From 3bfa4ca1128df7d634ec62b2dcf1b5530df0db3b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 27 Aug 2020 18:43:37 +0530 |
| Subject: drm/amdgpu: Fix bug in reporting voltage for CIK |
| |
| From: Sandeep Raghuraman <sandy.8925@gmail.com> |
| |
| [ Upstream commit d98299885c9ea140c1108545186593deba36c4ac ] |
| |
| On my R9 390, the voltage was reported as a constant 1000 mV. |
| This was due to a bug in smu7_hwmgr.c, in the smu7_read_sensor() |
| function, where some magic constants were used in a condition, |
| to determine whether the voltage should be read from PLANE2_VID |
| or PLANE1_VID. The VDDC mask was incorrectly used, instead of |
| the VDDGFX mask. |
| |
| This patch changes the code to use the correct defined constants |
| (and apply the correct bitshift), thus resulting in correct voltage reporting. |
| |
| 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> |
| --- |
| drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c |
| index e6da53e9c3f46..3a2a1dc9a786a 100644 |
| --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c |
| +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c |
| @@ -3575,7 +3575,8 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx, |
| case AMDGPU_PP_SENSOR_GPU_POWER: |
| return smu7_get_gpu_power(hwmgr, (uint32_t *)value); |
| case AMDGPU_PP_SENSOR_VDDGFX: |
| - if ((data->vr_config & 0xff) == 0x2) |
| + if ((data->vr_config & VRCONF_VDDGFX_MASK) == |
| + (VR_SVI2_PLANE_2 << VRCONF_VDDGFX_SHIFT)) |
| val_vid = PHM_READ_INDIRECT_FIELD(hwmgr->device, |
| CGS_IND_REG__SMC, PWR_SVI2_STATUS, PLANE2_VID); |
| else |
| -- |
| 2.25.1 |
| |