]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/xe/xe2lpm: Add permanent Wa_14020756599
authorTejas Upadhyay <tejas.upadhyay@intel.com>
Mon, 3 Jun 2024 10:49:50 +0000 (16:19 +0530)
committerMatthew Brost <matthew.brost@intel.com>
Wed, 5 Jun 2024 06:21:26 +0000 (23:21 -0700)
For xe2_lpm Wa_14020756599 is applied to all steppings and
when RCS is present on graphics GT.

V5(MattR):
  - Add more comments about new API
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

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240603104951.705603-2-tejas.upadhyay@intel.com
drivers/gpu/drm/xe/xe_rtp.c
drivers/gpu/drm/xe/xe_rtp.h
drivers/gpu/drm/xe/xe_wa.c

index fb44cc7521d8c1e0133c2730f1f1d52d05cc2185..01c32a932780e604e3f9ecf72db9aebc4336effb 100644 (file)
@@ -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;
+}
index 337b1ef1959c6246b60fc12f9e65ab1a85fcd3aa..a32645f5f80b4e415daf14221ed02bb9a675a856 100644 (file)
@@ -427,4 +427,18 @@ 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
+ *
+ * Its one of the case where we need to apply workaround on primary GT
+ * based on if media GT version 2000 is present. Thus this API will help
+ * us to match media version 2000.
+ *
+ * Returns: true if media GT version 2000, false otherwise.
+ */
+bool xe_rtp_match_when_media2000(const struct xe_gt *gt,
+                                const struct xe_hw_engine *hwe);
 #endif
index 64bc595fc727a2dfaf8cc50b9bac9b6cfbebf263..321ea100a49119a070adebf4b2eed615a71972d5 100644 (file)
@@ -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))
+       },
+
        {}
 };