drm/amd/pp: Convert voltage unit in mV*4 to mV on CZ/ST
the voltage showed in debugfs and hwmon should be in mV Reviewed-by: Evan Quan <evan.quan@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
This commit is contained in:
parent
90983631a6
commit
8a50bb47a8
|
@ -244,6 +244,7 @@ static int smu8_initialize_dpm_defaults(struct pp_hwmgr *hwmgr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* convert form 8bit vid to real voltage in mV*4 */
|
||||||
static uint32_t smu8_convert_8Bit_index_to_voltage(
|
static uint32_t smu8_convert_8Bit_index_to_voltage(
|
||||||
struct pp_hwmgr *hwmgr, uint16_t voltage)
|
struct pp_hwmgr *hwmgr, uint16_t voltage)
|
||||||
{
|
{
|
||||||
|
@ -1702,13 +1703,13 @@ static int smu8_read_sensor(struct pp_hwmgr *hwmgr, int idx,
|
||||||
case AMDGPU_PP_SENSOR_VDDNB:
|
case AMDGPU_PP_SENSOR_VDDNB:
|
||||||
tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_NB_CURRENTVID) &
|
tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_NB_CURRENTVID) &
|
||||||
CURRENT_NB_VID_MASK) >> CURRENT_NB_VID__SHIFT;
|
CURRENT_NB_VID_MASK) >> CURRENT_NB_VID__SHIFT;
|
||||||
vddnb = smu8_convert_8Bit_index_to_voltage(hwmgr, tmp);
|
vddnb = smu8_convert_8Bit_index_to_voltage(hwmgr, tmp) / 4;
|
||||||
*((uint32_t *)value) = vddnb;
|
*((uint32_t *)value) = vddnb;
|
||||||
return 0;
|
return 0;
|
||||||
case AMDGPU_PP_SENSOR_VDDGFX:
|
case AMDGPU_PP_SENSOR_VDDGFX:
|
||||||
tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_GFX_CURRENTVID) &
|
tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_GFX_CURRENTVID) &
|
||||||
CURRENT_GFX_VID_MASK) >> CURRENT_GFX_VID__SHIFT;
|
CURRENT_GFX_VID_MASK) >> CURRENT_GFX_VID__SHIFT;
|
||||||
vddgfx = smu8_convert_8Bit_index_to_voltage(hwmgr, (u16)tmp);
|
vddgfx = smu8_convert_8Bit_index_to_voltage(hwmgr, (u16)tmp) / 4;
|
||||||
*((uint32_t *)value) = vddgfx;
|
*((uint32_t *)value) = vddgfx;
|
||||||
return 0;
|
return 0;
|
||||||
case AMDGPU_PP_SENSOR_UVD_VCLK:
|
case AMDGPU_PP_SENSOR_UVD_VCLK:
|
||||||
|
|
Loading…
Reference in New Issue