drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms
A message that is not in the archive (sent off-list or not yet received): 2026092940-reload-script-8bd3@gregkh
PATCH 1/1 drm/xe: Add wa_14025941587 to xe2, xe3 and xe3p platforms
From: Tangudu Tilak Tirumalesh <[email protected]>
Avoid programming the IDLEDLY timer to less than 5 microseconds. Apply wa_14025941587 to Graphics Versions 20.01 to 35.11 and Media Versions 13.01 to 35.03
v2: Use xe_rtp_match_not_sriov_vf, move to local variable
Remove warn and other knits - Matt R
v3: Add verbose comment - Tejas
v4: Restore IDLE_DLY register on engine reset.
Add it to GUC save-restore list. -Vivek
v5: Extend WA to Media Versions 13.01 to 35.03 - Vinay
v6: Avoid clearing inhibit switch - Bala
Refactor code accordingly by adding idle_reg_val.
v7: Rebased with the divide-by-zero/overflow guards living in
a separate hardening patch.
v8: Preserve the Wa_16023105232 floor (DIV_ROUND_DOWN_ULL) and the
maxcnt == 0 guard from the hardening patch. Round up
(DIV_ROUND_UP_ULL) the Wa_14025941587 minimum conversion instead,
so the tick-quantized delay cannot round back below 5 us.v9: Evaluate the Wa_16023105232 xe_gt_WARN_ON() against the value
read from hardware instead of the Wa_14025941587-bumped value, so it no longer fires on the driver's own floor. Re-check the rounded-up tick value against maxcnt and floor it if tick quantization pushed it back to/above maxcnt, logging via xe_gt_dbg since this is the driver's own value, not a hardware anomaly.
--- drivers/gpu/drm/xe/xe_guc_ads.c | 2 +- drivers/gpu/drm/xe/xe_hw_engine.c | 93 ++++++++++++++++++++++++------ drivers/gpu/drm/xe/xe_wa_oob.rules | 2 + 3 files changed, 79 insertions(+), 18 deletions(-)
drivers/gpu/drm/xe/xe_guc_ads.c +1 -1
@@ -791,7 +791,7 @@ static unsigned int guc_mmio_regset_write(struct xe_guc_ads *ads, } } -if (XE_GT_WA (hwe->gt,16023105232 )) +if (XE_GT_WA (hwe->gt,16023105232 ) ||XE_GT_WA (hwe->gt,14025941587 ))guc_mmio_regset_write_one (ads, regset_map,RING_IDLEDLY (hwe->mmio_base), count++);
drivers/gpu/drm/xe/xe_hw_engine.c +76 -17
120 lines not on this page · raw message
drivers/gpu/drm/xe/xe_wa_oob.rules +2 -0
@@ -65,3 +65,5 @@ 14025883347 MEDIA_VERSION_RANGE(1301, 3500) GRAPHICS_VERSION_RANGE(2004, 3005) +14025941587 GRAPHICS_VERSION_RANGE(2001, 3511), FUNC(xe_rtp_match_not_sriov_vf) + MEDIA_VERSION_RANGE(1301, 3503), FUNC(xe_rtp_match_not_sriov_vf)
Signature · 1 line
2.55.0