From: Chris Wilson Date: Fri, 29 Oct 2010 15:18:36 +0000 (+0100) Subject: drm/i915/ringbuffer: Disable the ringbuffer on cleanup. X-Git-Tag: firefly_0821_release~7613^2~3065^2~23^2~148 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=33626e6a08669b1a5834e76363dcd5c8733a4278;p=firefly-linux-kernel-4.4.55.git drm/i915/ringbuffer: Disable the ringbuffer on cleanup. It should be idle on cleanup anyway... Signed-off-by: Chris Wilson --- 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: void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring) { + struct drm_i915_private *dev_priv; + int ret; + if (ring->gem_object == NULL) return; + /* Disable the ring buffer. The ring must be idle at this point */ + dev_priv = ring->dev->dev_private; + ret = intel_wait_ring_buffer(ring, ring->size - 8); + I915_WRITE_CTL(ring, 0); + drm_core_ioremapfree(&ring->map, ring->dev); i915_gem_object_unpin(ring->gem_object);