aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Quan <evan.quan@amd.com>2018-04-10 01:05:49 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-05-15 14:43:04 -0400
commitc11d8afe10228e4621acfcb8f302255ea8567a1e (patch)
tree427ceca35957c44ebc7f55639c2cbc66e5d4cdd8
parentb8a5559112714bb328330dbf2a4a1912e8c7a462 (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.c13
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/vega10_ppsmc.h1
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