[Intel-gfx] [RFC 05/21] drm/i915: Add helper functions to aid seqno -> request transition

Daniel Vetter daniel at ffwll.ch
Sun Oct 19 14:35:09 CEST 2014


On Mon, Oct 06, 2014 at 03:15:09PM +0100, John.C.Harrison at Intel.com wrote:
> From: John Harrison <John.C.Harrison at Intel.com>
> 

I think a few words about how these helpers help the transitions (and
example maybe) would be great. Since without peeking ahead (which I
didn't) and looking at the JIRA (which I've forgotten all about already
right after writing it) this doesn't make a lot of sense ;-)

> For: VIZ-4377
> Signed-off-by: John.C.Harrison at Intel.com
> ---
>  drivers/gpu/drm/i915/i915_drv.h         |   12 ++++++++++++
>  drivers/gpu/drm/i915/intel_ringbuffer.h |    7 +++++++
>  2 files changed, 19 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index e1858e7..62c9f66 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1946,6 +1946,18 @@ struct drm_i915_gem_request {
>  
>  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
>  i915_gem_request_reference(struct drm_i915_gem_request *req)
>  {
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h
> index 96479c8..cc1b62f 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.h
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
> @@ -435,6 +435,13 @@ static inline u32 intel_ring_get_seqno(struct intel_engine_cs *ring)
>  	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);

Again, I'm not a fan of BUG_ON. But if this is just a transitional thing
and will disappear at the end of the series I'm ok with it.
-Daniel

> +	return ring->preallocated_lazy_request;
> +}
> +
>  static inline void i915_trace_irq_get(struct intel_engine_cs *ring, u32 seqno)
>  {
>  	if (ring->trace_irq_seqno == 0 && ring->irq_get(ring))
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list