aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index 1d442a498bf6..4c53dabb102f 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -3912,28 +3912,30 @@ static int vega10_read_sensor(struct pp_hwmgr *hwmgr, int idx,
3912 3912
3913 switch (idx) { 3913 switch (idx) {
3914 case AMDGPU_PP_SENSOR_GFX_SCLK: 3914 case AMDGPU_PP_SENSOR_GFX_SCLK:
3915 ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentGfxclkIndex); 3915 smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentGfxclkIndex);
3916 if (!ret) { 3916 vega10_read_arg_from_smc(hwmgr, &sclk_idx);
3917 vega10_read_arg_from_smc(hwmgr, &sclk_idx); 3917 if (sclk_idx < dpm_table->gfx_table.count) {
3918 *((uint32_t *)value) = dpm_table->gfx_table.dpm_levels[sclk_idx].value; 3918 *((uint32_t *)value) = dpm_table->gfx_table.dpm_levels[sclk_idx].value;
3919 *size = 4; 3919 *size = 4;
3920 } else {
3921 ret = -EINVAL;
3920 } 3922 }
3921 break; 3923 break;
3922 case AMDGPU_PP_SENSOR_GFX_MCLK: 3924 case AMDGPU_PP_SENSOR_GFX_MCLK:
3923 ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentUclkIndex); 3925 smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetCurrentUclkIndex);
3924 if (!ret) { 3926 vega10_read_arg_from_smc(hwmgr, &mclk_idx);
3925 vega10_read_arg_from_smc(hwmgr, &mclk_idx); 3927 if (mclk_idx < dpm_table->mem_table.count) {
3926 *((uint32_t *)value) = dpm_table->mem_table.dpm_levels[mclk_idx].value; 3928 *((uint32_t *)value) = dpm_table->mem_table.dpm_levels[mclk_idx].value;
3927 *size = 4; 3929 *size = 4;
3930 } else {
3931 ret = -EINVAL;
3928 } 3932 }
3929 break; 3933 break;
3930 case AMDGPU_PP_SENSOR_GPU_LOAD: 3934 case AMDGPU_PP_SENSOR_GPU_LOAD:
3931 ret = smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_GetAverageGfxActivity, 0); 3935 smum_send_msg_to_smc_with_parameter(hwmgr, PPSMC_MSG_GetAverageGfxActivity, 0);
3932 if (!ret) { 3936 vega10_read_arg_from_smc(hwmgr, &activity_percent);
3933 vega10_read_arg_from_smc(hwmgr, &activity_percent); 3937 *((uint32_t *)value) = activity_percent > 100 ? 100 : activity_percent;
3934 *((uint32_t *)value) = activity_percent > 100 ? 100 : activity_percent; 3938 *size = 4;
3935 *size = 4;
3936 }
3937 break; 3939 break;
3938 case AMDGPU_PP_SENSOR_GPU_TEMP: 3940 case AMDGPU_PP_SENSOR_GPU_TEMP:
3939 *((uint32_t *)value) = vega10_thermal_get_temperature(hwmgr); 3941 *((uint32_t *)value) = vega10_thermal_get_temperature(hwmgr);