[Intel-gfx] [PATCH 02/43] drm/i915: Parametrize LRC registers

Jani Nikula jani.nikula at linux.intel.com
Mon Sep 21 00:36:54 PDT 2015


On Fri, 18 Sep 2015, ville.syrjala at linux.intel.com wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula at intel.com>


> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 8 ++++----
>  drivers/gpu/drm/i915/intel_lrc.c    | 8 +++-----
>  drivers/gpu/drm/i915/intel_lrc.h    | 6 ++++--
>  3 files changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 72ae347..5615d3d 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2069,8 +2069,8 @@ static int i915_execlists(struct seq_file *m, void *data)
>  
>  		seq_printf(m, "%s\n", ring->name);
>  
> -		status = I915_READ(RING_EXECLIST_STATUS(ring));
> -		ctx_id = I915_READ(RING_EXECLIST_STATUS(ring) + 4);
> +		status = I915_READ(RING_EXECLIST_STATUS_LO(ring));
> +		ctx_id = I915_READ(RING_EXECLIST_STATUS_HI(ring));
>  		seq_printf(m, "\tExeclist status: 0x%08X, context: %u\n",
>  			   status, ctx_id);
>  
> @@ -2085,8 +2085,8 @@ static int i915_execlists(struct seq_file *m, void *data)
>  			   read_pointer, write_pointer);
>  
>  		for (i = 0; i < 6; i++) {
> -			status = I915_READ(RING_CONTEXT_STATUS_BUF(ring) + 8*i);
> -			ctx_id = I915_READ(RING_CONTEXT_STATUS_BUF(ring) + 8*i + 4);
> +			status = I915_READ(RING_CONTEXT_STATUS_BUF_LO(ring, i));
> +			ctx_id = I915_READ(RING_CONTEXT_STATUS_BUF_HI(ring, i));
>  
>  			seq_printf(m, "\tStatus buffer %d: 0x%08X, context: %u\n",
>  				   i, status, ctx_id);
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index fe06accb0..ca9f161 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -349,7 +349,7 @@ static void execlists_elsp_write(struct drm_i915_gem_request *rq0,
>  	I915_WRITE_FW(RING_ELSP(ring), lower_32_bits(desc[0]));
>  
>  	/* ELSP is a wo register, use another nearby reg for posting */
> -	POSTING_READ_FW(RING_EXECLIST_STATUS(ring));
> +	POSTING_READ_FW(RING_EXECLIST_STATUS_LO(ring));
>  	intel_uncore_forcewake_put__locked(dev_priv, FORCEWAKE_ALL);
>  	spin_unlock(&dev_priv->uncore.lock);
>  }
> @@ -519,10 +519,8 @@ void intel_lrc_irq_handler(struct intel_engine_cs *ring)
>  
>  	while (read_pointer < write_pointer) {
>  		read_pointer++;
> -		status = I915_READ(RING_CONTEXT_STATUS_BUF(ring) +
> -				(read_pointer % 6) * 8);
> -		status_id = I915_READ(RING_CONTEXT_STATUS_BUF(ring) +
> -				(read_pointer % 6) * 8 + 4);
> +		status = I915_READ(RING_CONTEXT_STATUS_BUF_LO(ring, read_pointer % 6));
> +		status_id = I915_READ(RING_CONTEXT_STATUS_BUF_HI(ring, read_pointer % 6));
>  
>  		if (status & GEN8_CTX_STATUS_IDLE_ACTIVE)
>  			continue;
> diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
> index 69d99f0..8a08a27 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.h
> +++ b/drivers/gpu/drm/i915/intel_lrc.h
> @@ -28,12 +28,14 @@
>  
>  /* Execlists regs */
>  #define RING_ELSP(ring)			((ring)->mmio_base+0x230)
> -#define RING_EXECLIST_STATUS(ring)	((ring)->mmio_base+0x234)
> +#define RING_EXECLIST_STATUS_LO(ring)	((ring)->mmio_base+0x234)
> +#define RING_EXECLIST_STATUS_HI(ring)	((ring)->mmio_base+0x234 + 4)
>  #define RING_CONTEXT_CONTROL(ring)	((ring)->mmio_base+0x244)
>  #define	  CTX_CTRL_INHIBIT_SYN_CTX_SWITCH	(1 << 3)
>  #define	  CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT	(1 << 0)
>  #define   CTX_CTRL_RS_CTX_ENABLE                (1 << 1)
> -#define RING_CONTEXT_STATUS_BUF(ring)	((ring)->mmio_base+0x370)
> +#define RING_CONTEXT_STATUS_BUF_LO(ring, i)	((ring)->mmio_base+0x370 + (i) * 8)
> +#define RING_CONTEXT_STATUS_BUF_HI(ring, i)	((ring)->mmio_base+0x370 + (i) * 8 + 4)
>  #define RING_CONTEXT_STATUS_PTR(ring)	((ring)->mmio_base+0x3a0)
>  
>  /* Logical Rings */
> -- 
> 2.4.6
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list