aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_ring.c
diff options
context:
space:
mode:
authorChristian König <deathsimple@vodafone.de>2012-05-02 09:11:23 -0400
committerDave Airlie <airlied@redhat.com>2012-05-03 04:16:38 -0400
commit7b9ef16bd187b7e7f43887afb393d1f89e5bee71 (patch)
treef36f2bcd3207f49361ffdf10ed7a630580da788d /drivers/gpu/drm/radeon/radeon_ring.c
parent67e3c7876878264a81afe0dceb8ac653af8387be (diff)
drm/radeon: make forcing ring activity a common function
Nothing chipset or ring specific with it, so also move it to radon_ring. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_ring.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_ring.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index 407d90aaa0c..2eb4c6ed198 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -398,6 +398,22 @@ void radeon_ring_unlock_undo(struct radeon_device *rdev, struct radeon_ring *rin
398 mutex_unlock(&ring->mutex); 398 mutex_unlock(&ring->mutex);
399} 399}
400 400
401void radeon_ring_force_activity(struct radeon_device *rdev, struct radeon_ring *ring)
402{
403 int r;
404
405 mutex_lock(&ring->mutex);
406 radeon_ring_free_size(rdev, ring);
407 if (ring->rptr == ring->wptr) {
408 r = radeon_ring_alloc(rdev, ring, 1);
409 if (!r) {
410 radeon_ring_write(ring, ring->nop);
411 radeon_ring_commit(rdev, ring);
412 }
413 }
414 mutex_unlock(&ring->mutex);
415}
416
401void radeon_ring_lockup_update(struct radeon_ring *ring) 417void radeon_ring_lockup_update(struct radeon_ring *ring)
402{ 418{
403 ring->last_rptr = ring->rptr; 419 ring->last_rptr = ring->rptr;