[PATCH] drm/i915/guc: Change wa registers to MCR type

Matt Roper matthew.d.roper at intel.com
Thu Dec 14 14:59:06 UTC 2023


On Thu, Dec 14, 2023 at 07:26:29AM +0000, Shuicheng Lin wrote:
> some of the wa registers are MCR registers, which has different
> read/write process with normal MMIO registers. As the MCR process
> also work for normal MMIO registers, change all wa registers to
> MCR process for simplicity.
> 
> Signed-off-by: Shuicheng Lin <shuicheng.lin at intel.com>
> Cc: Matt Roper <matthew.d.roper at intel.com>
> ---
>  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
> index 63724e17829a..7409d3255cb0 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c
> @@ -377,8 +377,12 @@ static int guc_mmio_regset_init(struct temp_regset *regset,
>  	    CCS_MASK(engine->gt))
>  		ret |= GUC_MMIO_REG_ADD(gt, regset, GEN12_RCU_MODE, true);
>  
> +	/* some of the wa registers are MCR regiters */
>  	for (i = 0, wa = wal->list; i < wal->count; i++, wa++)
> -		ret |= GUC_MMIO_REG_ADD(gt, regset, wa->reg, wa->masked_reg);
> +		if (GRAPHICS_VER_FULL(engine->i915) >= IP_VER(12, 50))

The condition here doesn't really make sense.  MCR registers have
existed since gen8, so why are we doing this on graphics version 12.50
and higher?

It would be better to just make this conditional on whether the register
is actually an MCR register (and needs special steering) or not.


Matt

> +			ret |= GUC_MCR_REG_ADD(gt, regset, wa->mcr_reg, wa->masked_reg);
> +		else
> +			ret |= GUC_MMIO_REG_ADD(gt, regset, wa->reg, wa->masked_reg);
>  
>  	/* Be extra paranoid and include all whitelist registers. */
>  	for (i = 0; i < RING_MAX_NONPRIV_SLOTS; i++)
> -- 
> 2.25.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-gfx mailing list