diff options
| author | Leo Liu <leo.liu@amd.com> | 2015-02-18 07:19:26 -0500 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2015-02-25 16:06:07 -0500 |
| commit | dc12a3ec712de225da48b35bd602e60397f25f2d (patch) | |
| tree | f2d315fa8121f495c40db77d3a707d65438e9d15 | |
| parent | e1b4e722f7b401bdf90f2ac397b89c20d096eb04 (diff) | |
drm/radeon: enable SRBM timeout interrupt on CIK v2
v2: disable it on suspend
Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
| -rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/cikd.h | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index e6a4ba236c70..0c993da9c8fb 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c | |||
| @@ -3613,6 +3613,8 @@ static void cik_gpu_init(struct radeon_device *rdev) | |||
| 3613 | } | 3613 | } |
| 3614 | 3614 | ||
| 3615 | WREG32(GRBM_CNTL, GRBM_READ_TIMEOUT(0xff)); | 3615 | WREG32(GRBM_CNTL, GRBM_READ_TIMEOUT(0xff)); |
| 3616 | WREG32(SRBM_INT_CNTL, 0x1); | ||
| 3617 | WREG32(SRBM_INT_ACK, 0x1); | ||
| 3616 | 3618 | ||
| 3617 | WREG32(BIF_FB_EN, FB_READ_EN | FB_WRITE_EN); | 3619 | WREG32(BIF_FB_EN, FB_READ_EN | FB_WRITE_EN); |
| 3618 | 3620 | ||
| @@ -7230,6 +7232,8 @@ static void cik_disable_interrupt_state(struct radeon_device *rdev) | |||
| 7230 | WREG32(CP_ME2_PIPE3_INT_CNTL, 0); | 7232 | WREG32(CP_ME2_PIPE3_INT_CNTL, 0); |
| 7231 | /* grbm */ | 7233 | /* grbm */ |
| 7232 | WREG32(GRBM_INT_CNTL, 0); | 7234 | WREG32(GRBM_INT_CNTL, 0); |
| 7235 | /* SRBM */ | ||
| 7236 | WREG32(SRBM_INT_CNTL, 0); | ||
| 7233 | /* vline/vblank, etc. */ | 7237 | /* vline/vblank, etc. */ |
| 7234 | WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); | 7238 | WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); |
| 7235 | WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); | 7239 | WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); |
| @@ -8046,6 +8050,10 @@ restart_ih: | |||
| 8046 | break; | 8050 | break; |
| 8047 | } | 8051 | } |
| 8048 | break; | 8052 | break; |
| 8053 | case 96: | ||
| 8054 | DRM_ERROR("SRBM_READ_ERROR: 0x%x\n", RREG32(SRBM_READ_ERROR)); | ||
| 8055 | WREG32(SRBM_INT_ACK, 0x1); | ||
| 8056 | break; | ||
| 8049 | case 124: /* UVD */ | 8057 | case 124: /* UVD */ |
| 8050 | DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data); | 8058 | DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data); |
| 8051 | radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX); | 8059 | radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX); |
diff --git a/drivers/gpu/drm/radeon/cikd.h b/drivers/gpu/drm/radeon/cikd.h index 03003f8a6de6..c648e1996dab 100644 --- a/drivers/gpu/drm/radeon/cikd.h +++ b/drivers/gpu/drm/radeon/cikd.h | |||
| @@ -482,6 +482,10 @@ | |||
| 482 | #define SOFT_RESET_ORB (1 << 23) | 482 | #define SOFT_RESET_ORB (1 << 23) |
| 483 | #define SOFT_RESET_VCE (1 << 24) | 483 | #define SOFT_RESET_VCE (1 << 24) |
| 484 | 484 | ||
| 485 | #define SRBM_READ_ERROR 0xE98 | ||
| 486 | #define SRBM_INT_CNTL 0xEA0 | ||
| 487 | #define SRBM_INT_ACK 0xEA8 | ||
| 488 | |||
| 485 | #define VM_L2_CNTL 0x1400 | 489 | #define VM_L2_CNTL 0x1400 |
| 486 | #define ENABLE_L2_CACHE (1 << 0) | 490 | #define ENABLE_L2_CACHE (1 << 0) |
| 487 | #define ENABLE_L2_FRAGMENT_PROCESSING (1 << 1) | 491 | #define ENABLE_L2_FRAGMENT_PROCESSING (1 << 1) |
