diff options
author | Evan Quan <evan.quan@amd.com> | 2018-04-10 01:05:49 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-05-15 14:43:04 -0400 |
commit | c11d8afe10228e4621acfcb8f302255ea8567a1e (patch) | |
tree | 427ceca35957c44ebc7f55639c2cbc66e5d4cdd8 | |
parent | b8a5559112714bb328330dbf2a4a1912e8c7a462 (diff) |
drm/amd/pp: fix the wrong readout engine clock in deep sleep
Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | 13 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/inc/vega10_ppsmc.h | 1 |
2 files changed, 5 insertions, 9 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c index f6427c88f6a7..c90502bcc2b2 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c | |||
@@ -3805,7 +3805,7 @@ static int vega10_read_sensor(struct pp_hwmgr *hwmgr, int idx, | |||
3805 | void *value, int *size) | 3805 | void *value, int *size) |
3806 | { | 3806 | { |
3807 | struct amdgpu_device *adev = hwmgr->adev; | 3807 | struct amdgpu_device *adev = hwmgr->adev; |
3808 | uint32_t sclk_idx, mclk_idx, activity_percent = 0; | 3808 | uint32_t sclk_mhz, mclk_idx, activity_percent = 0; |
3809 | struct vega10_hwmgr *data = hwmgr->backend; | 3809 | struct vega10_hwmgr *data = hwmgr->backend; |
3810 | struct vega10_dpm_table *dpm_table = &data->dpm_table; | 3810 | struct vega10_dpm_table *dpm_table = &data->dpm_table; |
3811 | int ret = 0; | 3811 | int ret = 0; |
@@ -3813,14 +3813,9 @@ static int vega10_read_sensor(struct pp_hwmgr *hwmgr, int idx, | |||
3813 | 3813 | ||
3814 | switch (idx) { | 3814 | switch (idx) { |
3815 | case AMDGPU_PP_SENSOR_GFX_SCLK: | 3815 | case AMDGPU_PP_SENSOR_GFX_SCLK: |
3816 | smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentGfxclkIndex); | 3816 | smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetAverageGfxclkActualFrequency); |
3817 | sclk_idx = smum_get_argument(hwmgr); | 3817 | sclk_mhz = smum_get_argument(hwmgr); |
3818 | if (sclk_idx < dpm_table->gfx_table.count) { | 3818 | *((uint32_t *)value) = sclk_mhz * 100; |
3819 | *((uint32_t *)value) = dpm_table->gfx_table.dpm_levels[sclk_idx].value; | ||
3820 | *size = 4; | ||
3821 | } else { | ||
3822 | ret = -EINVAL; | ||
3823 | } | ||
3824 | break; | 3819 | break; |
3825 | case AMDGPU_PP_SENSOR_GFX_MCLK: | 3820 | case AMDGPU_PP_SENSOR_GFX_MCLK: |
3826 | smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentUclkIndex); | 3821 | smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentUclkIndex); |
diff --git a/drivers/gpu/drm/amd/powerplay/inc/vega10_ppsmc.h b/drivers/gpu/drm/amd/powerplay/inc/vega10_ppsmc.h index c3ed737ab951..715b5a168831 100644 --- a/drivers/gpu/drm/amd/powerplay/inc/vega10_ppsmc.h +++ b/drivers/gpu/drm/amd/powerplay/inc/vega10_ppsmc.h | |||
@@ -131,6 +131,7 @@ typedef uint16_t PPSMC_Result; | |||
131 | #define PPSMC_MSG_RunAcgInOpenLoop 0x5E | 131 | #define PPSMC_MSG_RunAcgInOpenLoop 0x5E |
132 | #define PPSMC_MSG_InitializeAcg 0x5F | 132 | #define PPSMC_MSG_InitializeAcg 0x5F |
133 | #define PPSMC_MSG_GetCurrPkgPwr 0x61 | 133 | #define PPSMC_MSG_GetCurrPkgPwr 0x61 |
134 | #define PPSMC_MSG_GetAverageGfxclkActualFrequency 0x63 | ||
134 | #define PPSMC_MSG_SetPccThrottleLevel 0x67 | 135 | #define PPSMC_MSG_SetPccThrottleLevel 0x67 |
135 | #define PPSMC_MSG_UpdatePkgPwrPidAlpha 0x68 | 136 | #define PPSMC_MSG_UpdatePkgPwrPidAlpha 0x68 |
136 | #define PPSMC_Message_Count 0x69 | 137 | #define PPSMC_Message_Count 0x69 |