diff options
| author | Christian König <christian.koenig@amd.com> | 2015-02-18 07:19:27 -0500 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2015-02-25 16:06:08 -0500 |
| commit | 18ad01effefe9c16454f2dfe045a9b5252d08d7a (patch) | |
| tree | c6e8593a61fec397ebf6bfc15ca6931148e1eb97 | |
| parent | dc12a3ec712de225da48b35bd602e60397f25f2d (diff) | |
drm/radeon: enable SRBM timeout interrupt on SI
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/si.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/sid.h | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c index ad26973733af..bcf516a8a2f1 100644 --- a/drivers/gpu/drm/radeon/si.c +++ b/drivers/gpu/drm/radeon/si.c | |||
| @@ -3162,6 +3162,8 @@ static void si_gpu_init(struct radeon_device *rdev) | |||
| 3162 | } | 3162 | } |
| 3163 | 3163 | ||
| 3164 | WREG32(GRBM_CNTL, GRBM_READ_TIMEOUT(0xff)); | 3164 | WREG32(GRBM_CNTL, GRBM_READ_TIMEOUT(0xff)); |
| 3165 | WREG32(SRBM_INT_CNTL, 1); | ||
| 3166 | WREG32(SRBM_INT_ACK, 1); | ||
| 3165 | 3167 | ||
| 3166 | evergreen_fix_pci_max_read_req_size(rdev); | 3168 | evergreen_fix_pci_max_read_req_size(rdev); |
| 3167 | 3169 | ||
| @@ -5911,6 +5913,7 @@ static void si_disable_interrupt_state(struct radeon_device *rdev) | |||
| 5911 | tmp = RREG32(DMA_CNTL + DMA1_REGISTER_OFFSET) & ~TRAP_ENABLE; | 5913 | tmp = RREG32(DMA_CNTL + DMA1_REGISTER_OFFSET) & ~TRAP_ENABLE; |
| 5912 | WREG32(DMA_CNTL + DMA1_REGISTER_OFFSET, tmp); | 5914 | WREG32(DMA_CNTL + DMA1_REGISTER_OFFSET, tmp); |
| 5913 | WREG32(GRBM_INT_CNTL, 0); | 5915 | WREG32(GRBM_INT_CNTL, 0); |
| 5916 | WREG32(SRBM_INT_CNTL, 0); | ||
| 5914 | if (rdev->num_crtc >= 2) { | 5917 | if (rdev->num_crtc >= 2) { |
| 5915 | WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); | 5918 | WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); |
| 5916 | WREG32(INT_MASK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); | 5919 | WREG32(INT_MASK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); |
| @@ -6610,6 +6613,10 @@ restart_ih: | |||
| 6610 | break; | 6613 | break; |
| 6611 | } | 6614 | } |
| 6612 | break; | 6615 | break; |
| 6616 | case 96: | ||
| 6617 | DRM_ERROR("SRBM_READ_ERROR: 0x%x\n", RREG32(SRBM_READ_ERROR)); | ||
| 6618 | WREG32(SRBM_INT_ACK, 0x1); | ||
| 6619 | break; | ||
| 6613 | case 124: /* UVD */ | 6620 | case 124: /* UVD */ |
| 6614 | DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data); | 6621 | DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data); |
| 6615 | radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX); | 6622 | radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX); |
diff --git a/drivers/gpu/drm/radeon/sid.h b/drivers/gpu/drm/radeon/sid.h index cbd91d226f3c..c27118cab16a 100644 --- a/drivers/gpu/drm/radeon/sid.h +++ b/drivers/gpu/drm/radeon/sid.h | |||
| @@ -358,6 +358,10 @@ | |||
| 358 | #define CC_SYS_RB_BACKEND_DISABLE 0xe80 | 358 | #define CC_SYS_RB_BACKEND_DISABLE 0xe80 |
| 359 | #define GC_USER_SYS_RB_BACKEND_DISABLE 0xe84 | 359 | #define GC_USER_SYS_RB_BACKEND_DISABLE 0xe84 |
| 360 | 360 | ||
| 361 | #define SRBM_READ_ERROR 0xE98 | ||
| 362 | #define SRBM_INT_CNTL 0xEA0 | ||
| 363 | #define SRBM_INT_ACK 0xEA8 | ||
| 364 | |||
| 361 | #define SRBM_STATUS2 0x0EC4 | 365 | #define SRBM_STATUS2 0x0EC4 |
| 362 | #define DMA_BUSY (1 << 5) | 366 | #define DMA_BUSY (1 << 5) |
| 363 | #define DMA1_BUSY (1 << 6) | 367 | #define DMA1_BUSY (1 << 6) |
