diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-07-03 15:01:45 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-07-03 17:37:30 -0400 |
commit | 62fa44bf7b75e3e482655baa15309bf3ea122bd3 (patch) | |
tree | 558720917c4e42433ee524960596b4b8d9febf1a | |
parent | 2b90eddcd7091dd631ead1d79e28e79ad589bb8d (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.c | 8 |
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 | ||
951 | static void trinity_set_uvd_clock_before_set_eng_clock(struct radeon_device *rdev, | 959 | static void trinity_set_uvd_clock_before_set_eng_clock(struct radeon_device *rdev, |