[Intel-gfx] [PATCH 1/2] drm/i915/dg2: Add workaround 18019627453

Matt Roper matthew.d.roper at intel.com
Tue Apr 19 16:33:34 UTC 2022


On Tue, Apr 19, 2022 at 07:44:53AM -0700, José Roberto de Souza wrote:
> A new DG2 workaround added to some corner cases hangs.
> 
> BSpec: 54077
> BSpec: 68173
> BSpec: 71488
> Cc: Matt Roper <matthew.d.roper at intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> ---
>  drivers/gpu/drm/i915/gt/intel_gt_regs.h     | 1 +
>  drivers/gpu/drm/i915/gt/intel_workarounds.c | 3 +++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> index 0a5c2648aaf07..10db058d9038c 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> @@ -368,6 +368,7 @@
>  #define   GEN9_FACTOR_IN_CLR_VAL_HIZ		(1 << 9)
>  
>  #define VFLSKPD					_MMIO(0x62a8)
> +#define   VF_PREFETCH_TLB_DIS			REG_BIT(5)
>  #define   DIS_OVER_FETCH_CACHE			REG_BIT(1)
>  #define   DIS_MULT_MISS_RD_SQUASH		REG_BIT(0)
>  
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 29c8cd0a81b6f..a1ba775bcb705 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -688,6 +688,9 @@ static void dg2_ctx_workarounds_init(struct intel_engine_cs *engine,
>  	if (IS_DG2_GRAPHICS_STEP(engine->i915, G10, STEP_B0, STEP_FOREVER) ||
>  		IS_DG2_G11(engine->i915) || IS_DG2_G12(engine->i915))
>  		wa_masked_field_set(wal, VF_PREEMPTION, PREEMPTION_VERTEX_COUNT, 0x4000);
> +
> +	/* Wa_18019627453:dg2 */

I just took a closer look at this one...it looks like the DG2-specific
version of this workaround (e.g., per-platform ID #14015981138) lists
two potential workarounds:  the prefetch TLB bit you're setting here, or
a fixed function DOP clock gate bit.  The suggestion (on DG2
specifically) is to use the DOP gate bit.  So we might want to switch
this implementation, even if other platforms wind up going with the
other option.


Matt

> +	wa_masked_en(wal, VFLSKPD, VF_PREFETCH_TLB_DIS);
>  }
>  
>  static void fakewa_disable_nestedbb_mode(struct intel_engine_cs *engine,
> -- 
> 2.35.3
> 

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795


More information about the Intel-gfx mailing list