diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0157-drm-amdgpu-Show-gpu-load-when-display-gpu-performanc.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0157-drm-amdgpu-Show-gpu-load-when-display-gpu-performanc.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0157-drm-amdgpu-Show-gpu-load-when-display-gpu-performanc.patch b/common/recipes-kernel/linux/files/0157-drm-amdgpu-Show-gpu-load-when-display-gpu-performanc.patch new file mode 100644 index 00000000..1c8a1bc4 --- /dev/null +++ b/common/recipes-kernel/linux/files/0157-drm-amdgpu-Show-gpu-load-when-display-gpu-performanc.patch @@ -0,0 +1,60 @@ +From c86985f31f1598cee0b6ab9aa299b3ccee22bcfd Mon Sep 17 00:00:00 2001 +From: Rex Zhu <Rex.Zhu@amd.com> +Date: Wed, 6 Jan 2016 17:08:46 +0800 +Subject: [PATCH 0157/1110] drm/amdgpu: Show gpu load when display gpu + performance for Ci. + +Reviewed-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> +--- + drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c +index 57a2e34..8b4731d 100644 +--- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c ++++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c +@@ -1395,7 +1395,6 @@ static void ci_thermal_stop_thermal_controller(struct amdgpu_device *adev) + ci_fan_ctrl_set_default_mode(adev); + } + +-#if 0 + static int ci_read_smc_soft_register(struct amdgpu_device *adev, + u16 reg_offset, u32 *value) + { +@@ -1405,7 +1404,6 @@ static int ci_read_smc_soft_register(struct amdgpu_device *adev, + pi->soft_regs_start + reg_offset, + value, pi->sram_end); + } +-#endif + + static int ci_write_smc_soft_register(struct amdgpu_device *adev, + u16 reg_offset, u32 value) +@@ -6084,11 +6082,23 @@ ci_dpm_debugfs_print_current_performance_level(struct amdgpu_device *adev, + struct amdgpu_ps *rps = &pi->current_rps; + u32 sclk = ci_get_average_sclk_freq(adev); + u32 mclk = ci_get_average_mclk_freq(adev); ++ u32 activity_percent = 50; ++ int ret; ++ ++ ret = ci_read_smc_soft_register(adev, offsetof(SMU7_SoftRegisters, AverageGraphicsA), ++ &activity_percent); ++ ++ if (ret == 0) { ++ activity_percent += 0x80; ++ activity_percent >>= 8; ++ activity_percent = activity_percent > 100 ? 100 : activity_percent; ++ } + + seq_printf(m, "uvd %sabled\n", pi->uvd_enabled ? "en" : "dis"); + seq_printf(m, "vce %sabled\n", rps->vce_active ? "en" : "dis"); + seq_printf(m, "power level avg sclk: %u mclk: %u\n", + sclk, mclk); ++ seq_printf(m, "GPU load: %u %%\n", activity_percent); + } + + static void ci_dpm_print_power_state(struct amdgpu_device *adev, +-- +2.7.4 + |