diff options
author | Jerome Glisse <jglisse@redhat.com> | 2012-06-27 12:25:01 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-07-19 22:28:07 -0400 |
commit | 440a7cd87e2bea9b8cf7b8b07aecad9c2f8638dd (patch) | |
tree | ccf65cfd96affbdf67e35703791edf49b0ab001e /drivers/gpu/drm/radeon/evergreen.c | |
parent | 4dbdf0aea9585add9359e7ca5535256f866ec85c (diff) |
drm/radeon: improve GPU lockup debugging info on r6xx/r7xx/r8xx/r9xx
Print various CP register that have valuable informations regarding
GPU lockup.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 08293f1ba6a..14098ace156 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
@@ -2316,6 +2316,14 @@ static int evergreen_gpu_soft_reset(struct radeon_device *rdev) | |||
2316 | RREG32(GRBM_STATUS_SE1)); | 2316 | RREG32(GRBM_STATUS_SE1)); |
2317 | dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", | 2317 | dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", |
2318 | RREG32(SRBM_STATUS)); | 2318 | RREG32(SRBM_STATUS)); |
2319 | dev_info(rdev->dev, " R_008674_CP_STALLED_STAT1 = 0x%08X\n", | ||
2320 | RREG32(CP_STALLED_STAT1)); | ||
2321 | dev_info(rdev->dev, " R_008678_CP_STALLED_STAT2 = 0x%08X\n", | ||
2322 | RREG32(CP_STALLED_STAT2)); | ||
2323 | dev_info(rdev->dev, " R_00867C_CP_BUSY_STAT = 0x%08X\n", | ||
2324 | RREG32(CP_BUSY_STAT)); | ||
2325 | dev_info(rdev->dev, " R_008680_CP_STAT = 0x%08X\n", | ||
2326 | RREG32(CP_STAT)); | ||
2319 | evergreen_mc_stop(rdev, &save); | 2327 | evergreen_mc_stop(rdev, &save); |
2320 | if (evergreen_mc_wait_for_idle(rdev)) { | 2328 | if (evergreen_mc_wait_for_idle(rdev)) { |
2321 | dev_warn(rdev->dev, "Wait for MC idle timedout !\n"); | 2329 | dev_warn(rdev->dev, "Wait for MC idle timedout !\n"); |
@@ -2353,6 +2361,14 @@ static int evergreen_gpu_soft_reset(struct radeon_device *rdev) | |||
2353 | RREG32(GRBM_STATUS_SE1)); | 2361 | RREG32(GRBM_STATUS_SE1)); |
2354 | dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", | 2362 | dev_info(rdev->dev, " SRBM_STATUS=0x%08X\n", |
2355 | RREG32(SRBM_STATUS)); | 2363 | RREG32(SRBM_STATUS)); |
2364 | dev_info(rdev->dev, " R_008674_CP_STALLED_STAT1 = 0x%08X\n", | ||
2365 | RREG32(CP_STALLED_STAT1)); | ||
2366 | dev_info(rdev->dev, " R_008678_CP_STALLED_STAT2 = 0x%08X\n", | ||
2367 | RREG32(CP_STALLED_STAT2)); | ||
2368 | dev_info(rdev->dev, " R_00867C_CP_BUSY_STAT = 0x%08X\n", | ||
2369 | RREG32(CP_BUSY_STAT)); | ||
2370 | dev_info(rdev->dev, " R_008680_CP_STAT = 0x%08X\n", | ||
2371 | RREG32(CP_STAT)); | ||
2356 | evergreen_mc_resume(rdev, &save); | 2372 | evergreen_mc_resume(rdev, &save); |
2357 | return 0; | 2373 | return 0; |
2358 | } | 2374 | } |