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

Commit 599d924c authored by John Harrison's avatar John Harrison Committed by Daniel Vetter
Browse files

drm/i915: Update ring->sync_to() to take a request structure



Updated the ring->sync_to() implementations to take a request instead of a ring.
Also updated the tracer to include the request id.

For: VIZ-5115
Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Reviewed-by: default avatarTomas Elf <tomas.elf@intel.com>
[danvet: Rebase since I didn't merge the patch which added ->uniq.]
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent be795fc1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -3139,8 +3139,8 @@ __i915_gem_object_sync(struct drm_i915_gem_object *obj,
				return ret;
		}

		trace_i915_gem_ring_sync_to(from, to, from_req);
		ret = to->semaphore.sync_to(to, from, seqno);
		trace_i915_gem_ring_sync_to(*to_req, from, from_req);
		ret = to->semaphore.sync_to(*to_req, from, seqno);
		if (ret)
			return ret;

+4 −4
Original line number Diff line number Diff line
@@ -424,10 +424,10 @@ TRACE_EVENT(i915_gem_evict_vm,
);

TRACE_EVENT(i915_gem_ring_sync_to,
	    TP_PROTO(struct intel_engine_cs *from,
		     struct intel_engine_cs *to,
	    TP_PROTO(struct drm_i915_gem_request *to_req,
		     struct intel_engine_cs *from,
		     struct drm_i915_gem_request *req),
	    TP_ARGS(from, to, req),
	    TP_ARGS(to_req, from, req),

	    TP_STRUCT__entry(
			     __field(u32, dev)
@@ -439,7 +439,7 @@ TRACE_EVENT(i915_gem_ring_sync_to,
	    TP_fast_assign(
			   __entry->dev = from->dev->primary->index;
			   __entry->sync_from = from->id;
			   __entry->sync_to = to->id;
			   __entry->sync_to = to_req->ring->id;
			   __entry->seqno = i915_gem_request_get_seqno(req);
			   ),

+4 −2
Original line number Diff line number Diff line
@@ -1333,10 +1333,11 @@ static inline bool i915_gem_has_seqno_wrapped(struct drm_device *dev,
 */

static int
gen8_ring_sync(struct intel_engine_cs *waiter,
gen8_ring_sync(struct drm_i915_gem_request *waiter_req,
	       struct intel_engine_cs *signaller,
	       u32 seqno)
{
	struct intel_engine_cs *waiter = waiter_req->ring;
	struct drm_i915_private *dev_priv = waiter->dev->dev_private;
	int ret;

@@ -1358,10 +1359,11 @@ gen8_ring_sync(struct intel_engine_cs *waiter,
}

static int
gen6_ring_sync(struct intel_engine_cs *waiter,
gen6_ring_sync(struct drm_i915_gem_request *waiter_req,
	       struct intel_engine_cs *signaller,
	       u32 seqno)
{
	struct intel_engine_cs *waiter = waiter_req->ring;
	u32 dw1 = MI_SEMAPHORE_MBOX |
		  MI_SEMAPHORE_COMPARE |
		  MI_SEMAPHORE_REGISTER;
+2 −2
Original line number Diff line number Diff line
@@ -252,8 +252,8 @@ struct intel_engine_cs {
		};

		/* AKA wait() */
		int	(*sync_to)(struct intel_engine_cs *ring,
				   struct intel_engine_cs *to,
		int	(*sync_to)(struct drm_i915_gem_request *to_req,
				   struct intel_engine_cs *from,
				   u32 seqno);
		int	(*signal)(struct intel_engine_cs *signaller,
				  /* num_dwords needed by caller */