]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/xe2_hpg: Add set of workarounds
authorShekhar Chauhan <shekhar.chauhan@intel.com>
Thu, 5 Jun 2025 19:08:03 +0000 (00:38 +0530)
committerMatt Roper <matthew.d.roper@intel.com>
Wed, 11 Jun 2025 14:29:48 +0000 (07:29 -0700)
Add set of workarounds for xe2_hpg.

-v2: Fix xe2_hpg GMD version for some workarounds.
-v3: Removed extra Workaround (Matt Roper)

Signed-off-by: Shekhar Chauhan <shekhar.chauhan@intel.com>
Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20250605190804.1287289-3-dnyaneshwar.bhadane@intel.com
drivers/gpu/drm/xe/xe_wa.c
drivers/gpu/drm/xe/xe_wa_oob.rules

index 67196baa42492860e7d6af40a65f58666528f88e..4a76de391abb2f86919f32ea8767aa655cdf920b 100644 (file)
@@ -503,10 +503,6 @@ static const struct xe_rtp_entry_sr engine_was[] = {
          XE_RTP_RULES(GRAPHICS_VERSION(2004), FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0_UDW, ENABLE_SMP_LD_RENDER_SURFACE_CONTROL))
        },
-       { XE_RTP_NAME("16018737384"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2004), FUNC(xe_rtp_match_first_render_or_compute)),
-         XE_RTP_ACTIONS(SET(ROW_CHICKEN, EARLY_EOT_DIS))
-       },
        /*
         * These two workarounds are the same, just applying to different
         * engines.  Although Wa_18032095049 (for the RCS) isn't required on
@@ -533,31 +529,38 @@ static const struct xe_rtp_entry_sr engine_was[] = {
        /* Xe2_HPG */
 
        { XE_RTP_NAME("16018712365"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0_UDW, XE2_ALLOC_DPA_STARVE_FIX_DIS))
        },
        { XE_RTP_NAME("16018737384"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(ROW_CHICKEN, EARLY_EOT_DIS))
        },
        { XE_RTP_NAME("14019988906"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(XEHP_PSS_CHICKEN, FLSH_IGNORES_PSD))
        },
        { XE_RTP_NAME("14019877138"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(XEHP_PSS_CHICKEN, FD_END_COLLECT))
        },
        { XE_RTP_NAME("14020338487"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(ROW_CHICKEN3, XE2_EUPEND_CHK_FLUSH_DIS))
        },
        { XE_RTP_NAME("18032247524"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0, SEQUENTIAL_ACCESS_UPGRADE_DISABLE))
        },
        { XE_RTP_NAME("14018471104"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0_UDW, ENABLE_SMP_LD_RENDER_SURFACE_CONTROL))
        },
        /*
@@ -566,7 +569,7 @@ static const struct xe_rtp_entry_sr engine_was[] = {
         * apply this to all engines for simplicity.
         */
        { XE_RTP_NAME("16021639441"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002)),
          XE_RTP_ACTIONS(SET(CSFE_CHICKEN1(0),
                             GHWSP_CSB_REPORT_DIS |
                             PPHWSP_CSB_AND_TIMESTAMP_REPORT_DIS,
@@ -578,11 +581,12 @@ static const struct xe_rtp_entry_sr engine_was[] = {
          XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0, WR_REQ_CHAINING_DIS))
        },
        { XE_RTP_NAME("14021402888"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
          XE_RTP_ACTIONS(SET(HALF_SLICE_CHICKEN7, CLEAR_OPTIMIZATION_DISABLE))
        },
-       { XE_RTP_NAME("14021821874"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_first_render_or_compute)),
+       { XE_RTP_NAME("14021821874, 14022954250"),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002),
+                      FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(TDL_TSL_CHICKEN, STK_ID_RESTRICT))
        },
 
@@ -774,7 +778,7 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
          XE_RTP_ACTIONS(SET(INSTPM(RENDER_RING_BASE), ENABLE_SEMAPHORE_POLL_BIT))
        },
        { XE_RTP_NAME("18033852989"),
-         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2004), ENGINE_CLASS(RENDER)),
+         XE_RTP_RULES(GRAPHICS_VERSION(2004), ENGINE_CLASS(RENDER)),
          XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN1, DISABLE_BOTTOM_CLIP_RECTANGLE_TEST))
        },
        { XE_RTP_NAME("14021567978"),
@@ -807,7 +811,7 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
          XE_RTP_ACTIONS(SET(CHICKEN_RASTER_1, DIS_SF_ROUND_NEAREST_EVEN))
        },
        { XE_RTP_NAME("14019386621"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
          XE_RTP_ACTIONS(SET(VF_SCRATCHPAD, XE2_VFG_TED_CREDIT_INTERFACE_DISABLE))
        },
        { XE_RTP_NAME("14020756599"),
@@ -824,13 +828,17 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
                             DIS_AUTOSTRIP))
        },
        { XE_RTP_NAME("15016589081"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
          XE_RTP_ACTIONS(SET(CHICKEN_RASTER_1, DIS_CLIP_NEGATIVE_BOUNDING_BOX))
        },
        { XE_RTP_NAME("22021007897"),
-         XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2002), ENGINE_CLASS(RENDER)),
          XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN4, SBE_PUSH_CONSTANT_BEHIND_FIX_ENABLE))
        },
+       { XE_RTP_NAME("18033852989"),
+         XE_RTP_RULES(GRAPHICS_VERSION(2001), ENGINE_CLASS(RENDER)),
+         XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN1, DISABLE_BOTTOM_CLIP_RECTANGLE_TEST))
+       },
 
        /* Xe3_LPG */
        { XE_RTP_NAME("14021490052"),
index 9efc5accd43d1c3ca8a55a62af22b74c414b93d1..425cb401c27624496364b97938b635f584172bbd 100644 (file)
                GRAPHICS_VERSION(2004)
 13011645652    GRAPHICS_VERSION(2004)
                GRAPHICS_VERSION(3001)
-14022293748    GRAPHICS_VERSION(2001)
+14022293748    GRAPHICS_VERSION_RANGE(2001, 2002)
                GRAPHICS_VERSION(2004)
                GRAPHICS_VERSION_RANGE(3000, 3001)
-22019794406    GRAPHICS_VERSION(2001)
+22019794406    GRAPHICS_VERSION_RANGE(2001, 2002)
                GRAPHICS_VERSION(2004)
                GRAPHICS_VERSION_RANGE(3000, 3001)
 22019338487    MEDIA_VERSION(2000)