summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/si.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2013-01-21 13:24:12 +1000
committerDave Airlie <airlied@redhat.com>2013-01-21 13:24:12 +1000
commita3f5aed42f64878ad98006e27492255381bba061 (patch)
treed9dbee246d96b003572eb011609cdf021cc4e0c4 /drivers/gpu/drm/radeon/si.c
parent7b4cf994e4c6ba48872bb25253cc393b7fb74c82 (diff)
parent20707874fd4fd37e09513f508e642fa8bd06365a (diff)
downloadop-kernel-dev-a3f5aed42f64878ad98006e27492255381bba061.zip
op-kernel-dev-a3f5aed42f64878ad98006e27492255381bba061.tar.gz
Merge branch 'drm-fixes-3.8' of git://people.freedesktop.org/~agd5f/linux into drm-next
A number of fixes, and one revert for a patch having some wierd side effects. * 'drm-fixes-3.8' of git://people.freedesktop.org/~agd5f/linux: Revert "drm/radeon: do not move bo to different placement at each cs" drm/radeon: improve semaphore debugging on lockup drm/radeon: allow FP16 color clear registers on r500 drm/radeon: clear reset flags if engines are idle
Diffstat (limited to 'drivers/gpu/drm/radeon/si.c')
-rw-r--r--drivers/gpu/drm/radeon/si.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index 3240a3d..ae8b482 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -2215,6 +2215,12 @@ static int si_gpu_soft_reset(struct radeon_device *rdev, u32 reset_mask)
{
struct evergreen_mc_save save;
+ if (!(RREG32(GRBM_STATUS) & GUI_ACTIVE))
+ reset_mask &= ~(RADEON_RESET_GFX | RADEON_RESET_COMPUTE);
+
+ if (RREG32(DMA_STATUS_REG) & DMA_IDLE)
+ reset_mask &= ~RADEON_RESET_DMA;
+
if (reset_mask == 0)
return 0;
OpenPOWER on IntegriCloud