]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe: Stop applying Wa_16018737384 from Xe3 onward
authorMatt Roper <matthew.d.roper@intel.com>
Wed, 11 Feb 2026 23:47:36 +0000 (15:47 -0800)
committerMatt Roper <matthew.d.roper@intel.com>
Fri, 13 Feb 2026 00:19:18 +0000 (16:19 -0800)
Wa_16018737384 is one of the rare cases where the hardware teams mark a
workaround as "driver change required" rather than "permanent/temporary
workaround" in the internal workaround database, signifying that the
implementation details of the workaround should just be considered
standard programming instructions on all platforms going forward.  Cases
like this are the only time that using XE_RTP_END_VERSION_UNDEFINED as an
upper bound for a workaround's IP range is warranted and correct.

However in this specific case, the register bit in question (0xE4F0[1])
simply no longer exists in hardware from Xe3 onward.  Trying to write to
that bit on Xe3 or Xe3p platforms is harmless and just doesn't have any
effect, but it's possible that the register bit could get repurposed to
control something else down the road on future platforms.  To avoid any
surprises in the future we should replace the unbounded upper bound in
our RTP table with a value that accurately reflects that Wa_16018737384
can only apply to Xe2 platforms.

Bspec: 56849
Reviewed-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Link: https://patch.msgid.link/20260211234735.620087-2-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
drivers/gpu/drm/xe/xe_wa.c

index 843ce9fe7aab1bb088c1c9dbb2823fabfd0f0908..61c4187dc0aee2e86010af36536eff56041f982f 100644 (file)
@@ -588,7 +588,7 @@ static const struct xe_rtp_entry_sr engine_was[] = {
          XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0_UDW, XE2_ALLOC_DPA_STARVE_FIX_DIS))
        },
        { XE_RTP_NAME("16018737384"),
-         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED),
+         XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, 2999),
                       FUNC(xe_rtp_match_first_render_or_compute)),
          XE_RTP_ACTIONS(SET(ROW_CHICKEN, EARLY_EOT_DIS))
        },