Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b662a066 authored by Chris Wilson's avatar Chris Wilson Committed by Daniel Vetter
Browse files

drm/i915: Simplify flushing activity on the ring



As we now always preallocate the seqno before writing to the ring, we
can trivially test if we have any pending activity on the ring by
inspecting the olr. This makes it then possible to flush operations that
are not normally associated with a request, like power-management.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 9d773091
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -2485,13 +2485,9 @@ static int i915_ring_idle(struct intel_ring_buffer *ring)
	u32 seqno;
	int ret;

	/* We need to add any requests required to flush the objects */
	if (!list_empty(&ring->active_list)) {
		seqno = list_entry(ring->active_list.prev,
				   struct drm_i915_gem_object,
				   ring_list)->last_read_seqno;

		ret = i915_gem_check_olr(ring, seqno);
	/* We need to add any requests required to flush the objects and ring */
	if (ring->outstanding_lazy_request) {
		ret = i915_add_request(ring, NULL, NULL);
		if (ret)
			return ret;
	}