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

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

drm/i915: Add helper functions to aid seqno -> request transition



Added helper functions for retrieving the ring and seqno entries from a request
structure. This allows the internal workings of the request structure to be
hidden from code that is using these. It also allows for useful
workarounds/debug code to be added as or when necessary.

Note that it is intended that the majority (if not all) uses of the seqno
accessor will disappear eventually as code is updated to use the request
structure itself rather than working with seqno values.

For: VIZ-4377
Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
Reviewed-by: default avatarThomas Daniel <Thomas.Daniel@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent abfe262a
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -2024,6 +2024,18 @@ struct drm_i915_gem_request {


void i915_gem_request_free(struct kref *req_ref);
void i915_gem_request_free(struct kref *req_ref);


static inline uint32_t
i915_gem_request_get_seqno(struct drm_i915_gem_request *req)
{
	return req ? req->seqno : 0;
}

static inline struct intel_engine_cs *
i915_gem_request_get_ring(struct drm_i915_gem_request *req)
{
	return req ? req->ring : NULL;
}

static inline void
static inline void
i915_gem_request_reference(struct drm_i915_gem_request *req)
i915_gem_request_reference(struct drm_i915_gem_request *req)
{
{
+7 −0
Original line number Original line Diff line number Diff line
@@ -442,6 +442,13 @@ static inline u32 intel_ring_get_seqno(struct intel_engine_cs *ring)
	return ring->outstanding_lazy_seqno;
	return ring->outstanding_lazy_seqno;
}
}


static inline struct drm_i915_gem_request *
intel_ring_get_request(struct intel_engine_cs *ring)
{
	BUG_ON(ring->preallocated_lazy_request == NULL);
	return ring->preallocated_lazy_request;
}

static inline void i915_trace_irq_get(struct intel_engine_cs *ring, u32 seqno)
static inline void i915_trace_irq_get(struct intel_engine_cs *ring, u32 seqno)
{
{
	if (ring->trace_irq_seqno == 0 && ring->irq_get(ring))
	if (ring->trace_irq_seqno == 0 && ring->irq_get(ring))