drm/i915: Rings are always flushed
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 19 Jun 2019 20:35:04 +0000 (21:35 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 20 Jun 2019 18:13:26 +0000 (19:13 +0100)
Our intel_rings are always flushed as they are continually used to submit
commands to the GPU, and so do not need to be flushed on unpinning. This
avoids pulling in the flush_ggtt_writes locking into our context
unpin, which we want to allow from atomic context (for simplicity).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190619203504.4220-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_ringbuffer.c

index 12010e79886888c5bbf2c0ae58a888f69e00dd6e..8b1da57c3764ad7f5ac5421da147be6fc18d9b12 100644 (file)
@@ -1219,6 +1219,7 @@ void intel_ring_unpin(struct intel_ring *ring)
        intel_ring_reset(ring, ring->tail);
 
        GEM_BUG_ON(!ring->vma);
+       i915_vma_unset_ggtt_write(ring->vma);
        if (i915_vma_is_map_and_fenceable(ring->vma))
                i915_vma_unpin_iomap(ring->vma);
        else