diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-10-29 11:18:36 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-10-29 14:00:43 -0400 |
commit | 33626e6a08669b1a5834e76363dcd5c8733a4278 (patch) | |
tree | de35d668bdd5336119eb64a427bdbd5599c3174b | |
parent | 872d860c85e30cdc97e7c91723257f4fcf04d5e9 (diff) |
drm/i915/ringbuffer: Disable the ringbuffer on cleanup.
It should be idle on cleanup anyway...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 632a98e0ba5c..0f1693981ee6 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -651,9 +651,17 @@ err_hws: | |||
651 | 651 | ||
652 | void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring) | 652 | void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring) |
653 | { | 653 | { |
654 | struct drm_i915_private *dev_priv; | ||
655 | int ret; | ||
656 | |||
654 | if (ring->gem_object == NULL) | 657 | if (ring->gem_object == NULL) |
655 | return; | 658 | return; |
656 | 659 | ||
660 | /* Disable the ring buffer. The ring must be idle at this point */ | ||
661 | dev_priv = ring->dev->dev_private; | ||
662 | ret = intel_wait_ring_buffer(ring, ring->size - 8); | ||
663 | I915_WRITE_CTL(ring, 0); | ||
664 | |||
657 | drm_core_ioremapfree(&ring->map, ring->dev); | 665 | drm_core_ioremapfree(&ring->map, ring->dev); |
658 | 666 | ||
659 | i915_gem_object_unpin(ring->gem_object); | 667 | i915_gem_object_unpin(ring->gem_object); |