summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/evergreen.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-01-18 19:17:22 -0500
committerAlex Deucher <alexander.deucher@amd.com>2013-01-31 16:24:53 -0500
commit168757ea854b7dd8eac3962753ed75a542ebca92 (patch)
tree2e7190c1fbdedf3da36f76a0215d711d9f3e62c4 /drivers/gpu/drm/radeon/evergreen.c
parenta65a4369f7a69281b65ed42b7fa2a8e8d6ff585f (diff)
downloadlinux-168757ea854b7dd8eac3962753ed75a542ebca92.tar.bz2
drm/radeon: use status regs to determine what to reset (cayman)
When we attempt the reset the GPU, look at the status registers to determine what blocks need to be reset. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 8b73743b0b3f..fd5e0025b656 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -2349,9 +2349,13 @@ void evergreen_print_gpu_status_regs(struct radeon_device *rdev)
RREG32(CP_STAT));
dev_info(rdev->dev, " R_00D034_DMA_STATUS_REG = 0x%08X\n",
RREG32(DMA_STATUS_REG));
+ if (rdev->family >= CHIP_CAYMAN) {
+ dev_info(rdev->dev, " R_00D834_DMA_STATUS_REG = 0x%08X\n",
+ RREG32(DMA_STATUS_REG + 0x800));
+ }
}
-static bool evergreen_is_display_hung(struct radeon_device *rdev)
+bool evergreen_is_display_hung(struct radeon_device *rdev)
{
u32 crtc_hung = 0;
u32 crtc_status[6];