[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