aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2016-04-08 00:52:58 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-05-04 20:21:55 -0400
commitc90766cf4e78e4708111afe5011a00288e60c66e (patch)
treea1ab811058f324c216b5c656d1cc5fb5328c9f41 /drivers/gpu
parente08d53cb6943b9b263021320523629005c1f512f (diff)
drm/amdgpu/common: add proper CG flags for fiji
We were already enabling these CG features, this uses the standard interface for doing so. Acked-by: Tom St Denis <tom.stdenis@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/vi.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
index 57595049ad9a..ea9edf4e32ad 100644
--- a/drivers/gpu/drm/amd/amdgpu/vi.c
+++ b/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -1085,7 +1085,11 @@ static int vi_common_early_init(void *handle)
1085 AMD_CG_SUPPORT_GFX_CGCG | 1085 AMD_CG_SUPPORT_GFX_CGCG |
1086 AMD_CG_SUPPORT_GFX_CGLS | 1086 AMD_CG_SUPPORT_GFX_CGLS |
1087 AMD_CG_SUPPORT_SDMA_MGCG | 1087 AMD_CG_SUPPORT_SDMA_MGCG |
1088 AMD_CG_SUPPORT_SDMA_LS; 1088 AMD_CG_SUPPORT_SDMA_LS |
1089 AMD_CG_SUPPORT_BIF_LS |
1090 AMD_CG_SUPPORT_HDP_MGCG |
1091 AMD_CG_SUPPORT_HDP_LS |
1092 AMD_CG_SUPPORT_ROM_MGCG;
1089 adev->pg_flags = 0; 1093 adev->pg_flags = 0;
1090 adev->external_rev_id = adev->rev_id + 0x3c; 1094 adev->external_rev_id = adev->rev_id + 0x3c;
1091 break; 1095 break;
@@ -1188,13 +1192,13 @@ static int vi_common_soft_reset(void *handle)
1188} 1192}
1189 1193
1190static void fiji_update_bif_medium_grain_light_sleep(struct amdgpu_device *adev, 1194static void fiji_update_bif_medium_grain_light_sleep(struct amdgpu_device *adev,
1191 bool enable) 1195 bool enable)
1192{ 1196{
1193 uint32_t temp, data; 1197 uint32_t temp, data;
1194 1198
1195 temp = data = RREG32_PCIE(ixPCIE_CNTL2); 1199 temp = data = RREG32_PCIE(ixPCIE_CNTL2);
1196 1200
1197 if (enable) 1201 if (enable && (adev->cg_flags & AMD_CG_SUPPORT_BIF_LS))
1198 data |= PCIE_CNTL2__SLV_MEM_LS_EN_MASK | 1202 data |= PCIE_CNTL2__SLV_MEM_LS_EN_MASK |
1199 PCIE_CNTL2__MST_MEM_LS_EN_MASK | 1203 PCIE_CNTL2__MST_MEM_LS_EN_MASK |
1200 PCIE_CNTL2__REPLAY_MEM_LS_EN_MASK; 1204 PCIE_CNTL2__REPLAY_MEM_LS_EN_MASK;
@@ -1208,13 +1212,13 @@ static void fiji_update_bif_medium_grain_light_sleep(struct amdgpu_device *adev,
1208} 1212}
1209 1213
1210static void fiji_update_hdp_medium_grain_clock_gating(struct amdgpu_device *adev, 1214static void fiji_update_hdp_medium_grain_clock_gating(struct amdgpu_device *adev,
1211 bool enable) 1215 bool enable)
1212{ 1216{
1213 uint32_t temp, data; 1217 uint32_t temp, data;
1214 1218
1215 temp = data = RREG32(mmHDP_HOST_PATH_CNTL); 1219 temp = data = RREG32(mmHDP_HOST_PATH_CNTL);
1216 1220
1217 if (enable) 1221 if (enable && (adev->cg_flags & AMD_CG_SUPPORT_HDP_MGCG))
1218 data &= ~HDP_HOST_PATH_CNTL__CLOCK_GATING_DIS_MASK; 1222 data &= ~HDP_HOST_PATH_CNTL__CLOCK_GATING_DIS_MASK;
1219 else 1223 else
1220 data |= HDP_HOST_PATH_CNTL__CLOCK_GATING_DIS_MASK; 1224 data |= HDP_HOST_PATH_CNTL__CLOCK_GATING_DIS_MASK;
@@ -1230,7 +1234,7 @@ static void fiji_update_hdp_light_sleep(struct amdgpu_device *adev,
1230 1234
1231 temp = data = RREG32(mmHDP_MEM_POWER_LS); 1235 temp = data = RREG32(mmHDP_MEM_POWER_LS);
1232 1236
1233 if (enable) 1237 if (enable && (adev->cg_flags & AMD_CG_SUPPORT_HDP_LS))
1234 data |= HDP_MEM_POWER_LS__LS_ENABLE_MASK; 1238 data |= HDP_MEM_POWER_LS__LS_ENABLE_MASK;
1235 else 1239 else
1236 data &= ~HDP_MEM_POWER_LS__LS_ENABLE_MASK; 1240 data &= ~HDP_MEM_POWER_LS__LS_ENABLE_MASK;
@@ -1240,13 +1244,13 @@ static void fiji_update_hdp_light_sleep(struct amdgpu_device *adev,
1240} 1244}
1241 1245
1242static void fiji_update_rom_medium_grain_clock_gating(struct amdgpu_device *adev, 1246static void fiji_update_rom_medium_grain_clock_gating(struct amdgpu_device *adev,
1243 bool enable) 1247 bool enable)
1244{ 1248{
1245 uint32_t temp, data; 1249 uint32_t temp, data;
1246 1250
1247 temp = data = RREG32_SMC(ixCGTT_ROM_CLK_CTRL0); 1251 temp = data = RREG32_SMC(ixCGTT_ROM_CLK_CTRL0);
1248 1252
1249 if (enable) 1253 if (enable && (adev->cg_flags & AMD_CG_SUPPORT_ROM_MGCG))
1250 data &= ~(CGTT_ROM_CLK_CTRL0__SOFT_OVERRIDE0_MASK | 1254 data &= ~(CGTT_ROM_CLK_CTRL0__SOFT_OVERRIDE0_MASK |
1251 CGTT_ROM_CLK_CTRL0__SOFT_OVERRIDE1_MASK); 1255 CGTT_ROM_CLK_CTRL0__SOFT_OVERRIDE1_MASK);
1252 else 1256 else
@@ -1258,7 +1262,7 @@ static void fiji_update_rom_medium_grain_clock_gating(struct amdgpu_device *adev
1258} 1262}
1259 1263
1260static int vi_common_set_clockgating_state(void *handle, 1264static int vi_common_set_clockgating_state(void *handle,
1261 enum amd_clockgating_state state) 1265 enum amd_clockgating_state state)
1262{ 1266{
1263 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 1267 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
1264 1268