aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-07-03 15:01:45 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-07-03 17:37:30 -0400
commit62fa44bf7b75e3e482655baa15309bf3ea122bd3 (patch)
tree558720917c4e42433ee524960596b4b8d9febf1a
parent2b90eddcd7091dd631ead1d79e28e79ad589bb8d (diff)
drm/radeon/tn: disable PG when changing UVD clocks
Causes hangs for some people. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/trinity_dpm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c b/drivers/gpu/drm/radeon/trinity_dpm.c
index b02b5ad92121..8a32bcc6bbb5 100644
--- a/drivers/gpu/drm/radeon/trinity_dpm.c
+++ b/drivers/gpu/drm/radeon/trinity_dpm.c
@@ -921,6 +921,10 @@ static void trinity_setup_uvd_clocks(struct radeon_device *rdev,
921{ 921{
922 struct trinity_power_info *pi = trinity_get_pi(rdev); 922 struct trinity_power_info *pi = trinity_get_pi(rdev);
923 923
924 if (pi->enable_gfx_power_gating) {
925 trinity_gfx_powergating_enable(rdev, false);
926 }
927
924 if (pi->uvd_dpm) { 928 if (pi->uvd_dpm) {
925 if (trinity_uvd_clocks_zero(new_rps) && 929 if (trinity_uvd_clocks_zero(new_rps) &&
926 !trinity_uvd_clocks_zero(old_rps)) { 930 !trinity_uvd_clocks_zero(old_rps)) {
@@ -946,6 +950,10 @@ static void trinity_setup_uvd_clocks(struct radeon_device *rdev,
946 950
947 radeon_set_uvd_clocks(rdev, new_rps->vclk, new_rps->dclk); 951 radeon_set_uvd_clocks(rdev, new_rps->vclk, new_rps->dclk);
948 } 952 }
953
954 if (pi->enable_gfx_power_gating) {
955 trinity_gfx_powergating_enable(rdev, true);
956 }
949} 957}
950 958
951static void trinity_set_uvd_clock_before_set_eng_clock(struct radeon_device *rdev, 959static void trinity_set_uvd_clock_before_set_eng_clock(struct radeon_device *rdev,