aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2014-02-18 08:52:33 -0500
committerChristian König <christian.koenig@amd.com>2014-02-18 11:49:19 -0500
commitff212f25feb44a915ce9c0144faef7fae27a6e61 (patch)
tree4cfdebae7d47c5504d087ef8950e068a426f1270
parenta1d6f97c8cfa7c3554d0391c0b16505d1d97f380 (diff)
drm/radeon: drop drivers copy of the rptr
In all cases where it really matters we are using the read functions anyway. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/cik.c7
-rw-r--r--drivers/gpu/drm/radeon/cik_sdma.c4
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c4
-rw-r--r--drivers/gpu/drm/radeon/evergreen_dma.c2
-rw-r--r--drivers/gpu/drm/radeon/ni.c6
-rw-r--r--drivers/gpu/drm/radeon/ni_dma.c4
-rw-r--r--drivers/gpu/drm/radeon/r100.c3
-rw-r--r--drivers/gpu/drm/radeon/r600.c4
-rw-r--r--drivers/gpu/drm/radeon/r600_dma.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon.h4
-rw-r--r--drivers/gpu/drm/radeon/radeon_ring.c27
-rw-r--r--drivers/gpu/drm/radeon/si.c8
-rw-r--r--drivers/gpu/drm/radeon/si_dma.c2
-rw-r--r--drivers/gpu/drm/radeon/uvd_v1_0.c2
-rw-r--r--drivers/gpu/drm/radeon/vce_v1_0.c4
15 files changed, 32 insertions, 53 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index 2b31c3233a5e..835dcfb78916 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -4031,8 +4031,6 @@ static int cik_cp_gfx_resume(struct radeon_device *rdev)
4031 WREG32(CP_RB0_BASE, rb_addr); 4031 WREG32(CP_RB0_BASE, rb_addr);
4032 WREG32(CP_RB0_BASE_HI, upper_32_bits(rb_addr)); 4032 WREG32(CP_RB0_BASE_HI, upper_32_bits(rb_addr));
4033 4033
4034 ring->rptr = RREG32(CP_RB0_RPTR);
4035
4036 /* start the ring */ 4034 /* start the ring */
4037 cik_cp_gfx_start(rdev); 4035 cik_cp_gfx_start(rdev);
4038 rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready = true; 4036 rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready = true;
@@ -4587,8 +4585,7 @@ static int cik_cp_compute_resume(struct radeon_device *rdev)
4587 rdev->ring[idx].wptr = 0; 4585 rdev->ring[idx].wptr = 0;
4588 mqd->queue_state.cp_hqd_pq_wptr = rdev->ring[idx].wptr; 4586 mqd->queue_state.cp_hqd_pq_wptr = rdev->ring[idx].wptr;
4589 WREG32(CP_HQD_PQ_WPTR, mqd->queue_state.cp_hqd_pq_wptr); 4587 WREG32(CP_HQD_PQ_WPTR, mqd->queue_state.cp_hqd_pq_wptr);
4590 rdev->ring[idx].rptr = RREG32(CP_HQD_PQ_RPTR); 4588 mqd->queue_state.cp_hqd_pq_rptr = RREG32(CP_HQD_PQ_RPTR);
4591 mqd->queue_state.cp_hqd_pq_rptr = rdev->ring[idx].rptr;
4592 4589
4593 /* set the vmid for the queue */ 4590 /* set the vmid for the queue */
4594 mqd->queue_state.cp_hqd_vmid = 0; 4591 mqd->queue_state.cp_hqd_vmid = 0;
@@ -5118,7 +5115,7 @@ bool cik_gfx_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
5118 if (!(reset_mask & (RADEON_RESET_GFX | 5115 if (!(reset_mask & (RADEON_RESET_GFX |
5119 RADEON_RESET_COMPUTE | 5116 RADEON_RESET_COMPUTE |
5120 RADEON_RESET_CP))) { 5117 RADEON_RESET_CP))) {
5121 radeon_ring_lockup_update(ring); 5118 radeon_ring_lockup_update(rdev, ring);
5122 return false; 5119 return false;
5123 } 5120 }
5124 /* force CP activities */ 5121 /* force CP activities */
diff --git a/drivers/gpu/drm/radeon/cik_sdma.c b/drivers/gpu/drm/radeon/cik_sdma.c
index 1ecb3f1070e3..e474760d714c 100644
--- a/drivers/gpu/drm/radeon/cik_sdma.c
+++ b/drivers/gpu/drm/radeon/cik_sdma.c
@@ -362,8 +362,6 @@ static int cik_sdma_gfx_resume(struct radeon_device *rdev)
362 ring->wptr = 0; 362 ring->wptr = 0;
363 WREG32(SDMA0_GFX_RB_WPTR + reg_offset, ring->wptr << 2); 363 WREG32(SDMA0_GFX_RB_WPTR + reg_offset, ring->wptr << 2);
364 364
365 ring->rptr = RREG32(SDMA0_GFX_RB_RPTR + reg_offset) >> 2;
366
367 /* enable DMA RB */ 365 /* enable DMA RB */
368 WREG32(SDMA0_GFX_RB_CNTL + reg_offset, rb_cntl | SDMA_RB_ENABLE); 366 WREG32(SDMA0_GFX_RB_CNTL + reg_offset, rb_cntl | SDMA_RB_ENABLE);
369 367
@@ -713,7 +711,7 @@ bool cik_sdma_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
713 mask = RADEON_RESET_DMA1; 711 mask = RADEON_RESET_DMA1;
714 712
715 if (!(reset_mask & mask)) { 713 if (!(reset_mask & mask)) {
716 radeon_ring_lockup_update(ring); 714 radeon_ring_lockup_update(rdev, ring);
717 return false; 715 return false;
718 } 716 }
719 /* force ring activities */ 717 /* force ring activities */
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index f2b9e21ce4da..d9156be5b9a6 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -2990,8 +2990,6 @@ static int evergreen_cp_resume(struct radeon_device *rdev)
2990 WREG32(CP_RB_BASE, ring->gpu_addr >> 8); 2990 WREG32(CP_RB_BASE, ring->gpu_addr >> 8);
2991 WREG32(CP_DEBUG, (1 << 27) | (1 << 28)); 2991 WREG32(CP_DEBUG, (1 << 27) | (1 << 28));
2992 2992
2993 ring->rptr = RREG32(CP_RB_RPTR);
2994
2995 evergreen_cp_start(rdev); 2993 evergreen_cp_start(rdev);
2996 ring->ready = true; 2994 ring->ready = true;
2997 r = radeon_ring_test(rdev, RADEON_RING_TYPE_GFX_INDEX, ring); 2995 r = radeon_ring_test(rdev, RADEON_RING_TYPE_GFX_INDEX, ring);
@@ -3952,7 +3950,7 @@ bool evergreen_gfx_is_lockup(struct radeon_device *rdev, struct radeon_ring *rin
3952 if (!(reset_mask & (RADEON_RESET_GFX | 3950 if (!(reset_mask & (RADEON_RESET_GFX |
3953 RADEON_RESET_COMPUTE | 3951 RADEON_RESET_COMPUTE |
3954 RADEON_RESET_CP))) { 3952 RADEON_RESET_CP))) {
3955 radeon_ring_lockup_update(ring); 3953 radeon_ring_lockup_update(rdev, ring);
3956 return false; 3954 return false;
3957 } 3955 }
3958 /* force CP activities */ 3956 /* force CP activities */
diff --git a/drivers/gpu/drm/radeon/evergreen_dma.c b/drivers/gpu/drm/radeon/evergreen_dma.c
index a37b54436382..d448961e9ab2 100644
--- a/drivers/gpu/drm/radeon/evergreen_dma.c
+++ b/drivers/gpu/drm/radeon/evergreen_dma.c
@@ -174,7 +174,7 @@ bool evergreen_dma_is_lockup(struct radeon_device *rdev, struct radeon_ring *rin
174 u32 reset_mask = evergreen_gpu_check_soft_reset(rdev); 174 u32 reset_mask = evergreen_gpu_check_soft_reset(rdev);
175 175
176 if (!(reset_mask & RADEON_RESET_DMA)) { 176 if (!(reset_mask & RADEON_RESET_DMA)) {
177 radeon_ring_lockup_update(ring); 177 radeon_ring_lockup_update(rdev, ring);
178 return false; 178 return false;
179 } 179 }
180 /* force ring activities */ 180 /* force ring activities */
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index ea932ac66fc6..7601532b7372 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1642,8 +1642,8 @@ static int cayman_cp_resume(struct radeon_device *rdev)
1642 ring = &rdev->ring[ridx[i]]; 1642 ring = &rdev->ring[ridx[i]];
1643 WREG32_P(cp_rb_cntl[i], RB_RPTR_WR_ENA, ~RB_RPTR_WR_ENA); 1643 WREG32_P(cp_rb_cntl[i], RB_RPTR_WR_ENA, ~RB_RPTR_WR_ENA);
1644 1644
1645 ring->rptr = ring->wptr = 0; 1645 ring->wptr = 0;
1646 WREG32(cp_rb_rptr[i], ring->rptr); 1646 WREG32(cp_rb_rptr[i], 0);
1647 WREG32(cp_rb_wptr[i], ring->wptr); 1647 WREG32(cp_rb_wptr[i], ring->wptr);
1648 1648
1649 mdelay(1); 1649 mdelay(1);
@@ -1917,7 +1917,7 @@ bool cayman_gfx_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
1917 if (!(reset_mask & (RADEON_RESET_GFX | 1917 if (!(reset_mask & (RADEON_RESET_GFX |
1918 RADEON_RESET_COMPUTE | 1918 RADEON_RESET_COMPUTE |
1919 RADEON_RESET_CP))) { 1919 RADEON_RESET_CP))) {
1920 radeon_ring_lockup_update(ring); 1920 radeon_ring_lockup_update(rdev, ring);
1921 return false; 1921 return false;
1922 } 1922 }
1923 /* force CP activities */ 1923 /* force CP activities */
diff --git a/drivers/gpu/drm/radeon/ni_dma.c b/drivers/gpu/drm/radeon/ni_dma.c
index 7cf96b15377f..95e533c61f83 100644
--- a/drivers/gpu/drm/radeon/ni_dma.c
+++ b/drivers/gpu/drm/radeon/ni_dma.c
@@ -248,8 +248,6 @@ int cayman_dma_resume(struct radeon_device *rdev)
248 ring->wptr = 0; 248 ring->wptr = 0;
249 WREG32(DMA_RB_WPTR + reg_offset, ring->wptr << 2); 249 WREG32(DMA_RB_WPTR + reg_offset, ring->wptr << 2);
250 250
251 ring->rptr = RREG32(DMA_RB_RPTR + reg_offset) >> 2;
252
253 WREG32(DMA_RB_CNTL + reg_offset, rb_cntl | DMA_RB_ENABLE); 251 WREG32(DMA_RB_CNTL + reg_offset, rb_cntl | DMA_RB_ENABLE);
254 252
255 ring->ready = true; 253 ring->ready = true;
@@ -302,7 +300,7 @@ bool cayman_dma_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
302 mask = RADEON_RESET_DMA1; 300 mask = RADEON_RESET_DMA1;
303 301
304 if (!(reset_mask & mask)) { 302 if (!(reset_mask & mask)) {
305 radeon_ring_lockup_update(ring); 303 radeon_ring_lockup_update(rdev, ring);
306 return false; 304 return false;
307 } 305 }
308 /* force ring activities */ 306 /* force ring activities */
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index ef024ce3f7cc..3a7438163d06 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -1193,7 +1193,6 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size)
1193 1193
1194 WREG32(RADEON_CP_RB_CNTL, tmp); 1194 WREG32(RADEON_CP_RB_CNTL, tmp);
1195 udelay(10); 1195 udelay(10);
1196 ring->rptr = RREG32(RADEON_CP_RB_RPTR);
1197 /* Set cp mode to bus mastering & enable cp*/ 1196 /* Set cp mode to bus mastering & enable cp*/
1198 WREG32(RADEON_CP_CSQ_MODE,