Skip to content

Commit

Permalink
drm/i915: Simplify flushing activity on the ring
Browse files Browse the repository at this point in the history
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: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Chris Wilson authored and Daniel Vetter committed Nov 29, 2012
1 parent 9d77309 commit b662a06
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions drivers/gpu/drm/i915/i915_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down

0 comments on commit b662a06

Please sign in to comment.