aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-10-15 10:59:16 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-01-15 12:43:22 -0500
commit7776a69386179ea477f501aa222692b9856ec56c (patch)
tree4bf953a1499daa4a8655a194df679848abd8efdf /drivers/gpu/drm/amd/amdgpu
parente160e4db833c7e8587ec3c88efaed0d84f1bcf42 (diff)
drm/amdgpu: Add some tweaks to gfx 8 soft reset
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Reviewed-by: Ken Wang <Qingqing.Wang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 13235d84e5a6..95c0cdfbd1b3 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -4186,7 +4186,18 @@ static int gfx_v8_0_soft_reset(void *handle)
4186 gfx_v8_0_cp_gfx_enable(adev, false); 4186 gfx_v8_0_cp_gfx_enable(adev, false);
4187 4187
4188 /* Disable MEC parsing/prefetching */ 4188 /* Disable MEC parsing/prefetching */
4189 /* XXX todo */ 4189 gfx_v8_0_cp_compute_enable(adev, false);
4190
4191 if (grbm_soft_reset || srbm_soft_reset) {
4192 tmp = RREG32(mmGMCON_DEBUG);
4193 tmp = REG_SET_FIELD(tmp,
4194 GMCON_DEBUG, GFX_STALL, 1);
4195 tmp = REG_SET_FIELD(tmp,
4196 GMCON_DEBUG, GFX_CLEAR, 1);
4197 WREG32(mmGMCON_DEBUG, tmp);
4198
4199 udelay(50);
4200 }
4190 4201
4191 if (grbm_soft_reset) { 4202 if (grbm_soft_reset) {
4192 tmp = RREG32(mmGRBM_SOFT_RESET); 4203 tmp = RREG32(mmGRBM_SOFT_RESET);
@@ -4215,6 +4226,16 @@ static int gfx_v8_0_soft_reset(void *handle)
4215 WREG32(mmSRBM_SOFT_RESET, tmp); 4226 WREG32(mmSRBM_SOFT_RESET, tmp);
4216 tmp = RREG32(mmSRBM_SOFT_RESET); 4227 tmp = RREG32(mmSRBM_SOFT_RESET);
4217 } 4228 }
4229
4230 if (grbm_soft_reset || srbm_soft_reset) {
4231 tmp = RREG32(mmGMCON_DEBUG);
4232 tmp = REG_SET_FIELD(tmp,
4233 GMCON_DEBUG, GFX_STALL, 0);
4234 tmp = REG_SET_FIELD(tmp,
4235 GMCON_DEBUG, GFX_CLEAR, 0);
4236 WREG32(mmGMCON_DEBUG, tmp);
4237 }
4238
4218 /* Wait a little for things to settle down */ 4239 /* Wait a little for things to settle down */
4219 udelay(50); 4240 udelay(50);
4220 gfx_v8_0_print_status((void *)adev); 4241 gfx_v8_0_print_status((void *)adev);