diff options
author | Christian König <deathsimple@vodafone.de> | 2012-05-02 09:11:23 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-05-03 04:16:38 -0400 |
commit | 7b9ef16bd187b7e7f43887afb393d1f89e5bee71 (patch) | |
tree | f36f2bcd3207f49361ffdf10ed7a630580da788d /drivers/gpu/drm/radeon/radeon_ring.c | |
parent | 67e3c7876878264a81afe0dceb8ac653af8387be (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.c | 16 |
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 | ||
401 | void 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 | |||
401 | void radeon_ring_lockup_update(struct radeon_ring *ring) | 417 | void radeon_ring_lockup_update(struct radeon_ring *ring) |
402 | { | 418 | { |
403 | ring->last_rptr = ring->rptr; | 419 | ring->last_rptr = ring->rptr; |