aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-12-18 11:28:49 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-01-13 12:13:26 -0500
commit5f57642672dd90e3183efcd9e6afbff1305a133a (patch)
tree7b0e2f83bb4e023ca9e6d2e2e98bffc697cc742c /drivers/gpu
parent044c0629b55d73235161557a48870d663d0072f5 (diff)
drm/amdgpu/cz: force uvd clocks when sclks are forced
Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/cz_dpm.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c
index 02cba49f13a8..bdf5a22ba450 100644
--- a/drivers/gpu/drm/amd/amdgpu/cz_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/cz_dpm.c
@@ -1971,25 +1971,49 @@ static int cz_dpm_force_dpm_level(struct amdgpu_device *adev,
1971 1971
1972 switch (level) { 1972 switch (level) {
1973 case AMDGPU_DPM_FORCED_LEVEL_HIGH: 1973 case AMDGPU_DPM_FORCED_LEVEL_HIGH:
1974 /* sclk */
1974 ret = cz_dpm_unforce_dpm_levels(adev); 1975 ret = cz_dpm_unforce_dpm_levels(adev);
1975 if (ret) 1976 if (ret)
1976 return ret; 1977 return ret;
1977 ret = cz_dpm_force_highest(adev); 1978 ret = cz_dpm_force_highest(adev);
1978 if (ret) 1979 if (ret)
1979 return ret; 1980 return ret;
1981
1982 /* uvd */
1983 ret = cz_dpm_unforce_uvd_dpm_levels(adev);
1984 if (ret)
1985 return ret;
1986 ret = cz_dpm_uvd_force_highest(adev);
1987 if (ret)
1988 return ret;
1980 break; 1989 break;
1981 case AMDGPU_DPM_FORCED_LEVEL_LOW: 1990 case AMDGPU_DPM_FORCED_LEVEL_LOW:
1991 /* sclk */
1982 ret = cz_dpm_unforce_dpm_levels(adev); 1992 ret = cz_dpm_unforce_dpm_levels(adev);
1983 if (ret) 1993 if (ret)
1984 return ret; 1994 return ret;
1985 ret = cz_dpm_force_lowest(adev); 1995 ret = cz_dpm_force_lowest(adev);
1986 if (ret) 1996 if (ret)
1987 return ret; 1997 return ret;
1998
1999 /* uvd */
2000 ret = cz_dpm_unforce_uvd_dpm_levels(adev);
2001 if (ret)
2002 return ret;
2003 ret = cz_dpm_uvd_force_lowest(adev);
2004 if (ret)
2005 return ret;
1988 break; 2006 break;
1989 case AMDGPU_DPM_FORCED_LEVEL_AUTO: 2007 case AMDGPU_DPM_FORCED_LEVEL_AUTO:
2008 /* sclk */
1990 ret = cz_dpm_unforce_dpm_levels(adev); 2009 ret = cz_dpm_unforce_dpm_levels(adev);
1991 if (ret) 2010 if (ret)
1992 return ret; 2011 return ret;
2012
2013 /* uvd */
2014 ret = cz_dpm_unforce_uvd_dpm_levels(adev);
2015 if (ret)
2016 return ret;
1993 break; 2017 break;
1994 default: 2018 default:
1995 break; 2019 break;