[PATCH V4] drm/xe/xe2lpm: Add permanent Wa_14020756599

Matt Roper matthew.d.roper at intel.com
Fri May 31 17:29:16 UTC 2024


On Fri, May 31, 2024 at 04:30:22PM +0530, Tejas Upadhyay wrote:
> For xe2_lpm Wa_14020756599 is applied to all steppings and
> when RCS is present on graphics GT.
> 
> V4:
>   - Make it part of lrc wa
>   - Check for RCS as rtp rule
> V3(MattR):
>   - Rename rtp api name
>   - Use MEDIA_VERx100
> V2:
>   - Remove engine filter video decode
>   - Fix typo GRAPHICS/MEDIA/s - Himal
> 
> Signed-off-by: Tejas Upadhyay <tejas.upadhyay at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_rtp.c |  6 ++++++
>  drivers/gpu/drm/xe/xe_rtp.h | 10 ++++++++++
>  drivers/gpu/drm/xe/xe_wa.c  |  7 +++++++
>  3 files changed, 23 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
> index fb44cc7521d8..01c32a932780 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.c
> +++ b/drivers/gpu/drm/xe/xe_rtp.c
> @@ -323,3 +323,9 @@ bool xe_rtp_match_first_gslice_fused_off(const struct xe_gt *gt,
>  
>  	return dss >= dss_per_gslice;
>  }
> +
> +bool xe_rtp_match_when_media2000(const struct xe_gt *gt,
> +				 const struct xe_hw_engine *hwe)
> +{
> +	return (gt_to_xe(gt))->info.media_verx100 == 2000;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
> index 337b1ef1959c..24ee0e4cdf1b 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.h
> +++ b/drivers/gpu/drm/xe/xe_rtp.h
> @@ -427,4 +427,14 @@ bool xe_rtp_match_first_render_or_compute(const struct xe_gt *gt,
>  bool xe_rtp_match_first_gslice_fused_off(const struct xe_gt *gt,
>  					 const struct xe_hw_engine *hwe);
>  
> +/*
> + * xe_rtp_match_when_media2000 - Match when media GT version 2000
> + *
> + * @gt: GT structure
> + * @hwe: Engine instance
> + *
> + * Returns: true if media GT version 2000, false otherwise.
> + */

You might want to add a bit more detail to the comment explaining that
the reason to use this instead of MEDIA_VER() is because there are (very
rare) cases where we need to apply a workaround on the primary GT
according to the version of the media GT.

Aside from that,

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>


> +bool xe_rtp_match_when_media2000(const struct xe_gt *gt,
> +				 const struct xe_hw_engine *hwe);
>  #endif
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index 64bc595fc727..321ea100a491 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -701,6 +701,13 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
>  			     DIS_AUTOSTRIP))
>  	},
>  
> +	/* Xe2_LPM */
> +
> +	{ XE_RTP_NAME("14020756599"),
> +	  XE_RTP_RULES(ENGINE_CLASS(RENDER), FUNC(xe_rtp_match_when_media2000)),
> +	  XE_RTP_ACTIONS(SET(WM_CHICKEN3, HIZ_PLANE_COMPRESSION_DIS))
> +	},
> +
>  	{}
>  };
>  
> -- 
> 2.25.1
> 

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


More information about the Intel-xe mailing list