public inbox for intel-xe@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Nitin Gote <nitin.r.gote@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: matthew.d.roper@intel.com, tejas.upadhyay@intel.com
Subject: [PATCH] drm/xe: Add Wa_14026626235
Date: Fri, 27 Mar 2026 13:37:20 +0530	[thread overview]
Message-ID: <20260327080719.2136248-2-nitin.r.gote@intel.com> (raw)

Wa_14026626235 requires two changes for graphics version 35.10:

1. Clear bit 6 (9th on state change mode) of PSS_CHICKEN (0x7044) via
   an LRC workaround applied per render context.

2. Disable preemption for the render engine by setting the GuC
   preemption timeout to 0. This prevents the HW from halting in the
   middle of a 3DPRIMITIVE command and inserting a flush.

Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
---
 drivers/gpu/drm/xe/regs/xe_gt_regs.h | 1 +
 drivers/gpu/drm/xe/xe_guc_submit.c   | 8 ++++++++
 drivers/gpu/drm/xe/xe_wa.c           | 4 ++++
 drivers/gpu/drm/xe/xe_wa_oob.rules   | 1 +
 4 files changed, 14 insertions(+)

diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
index 4ebaa0888a43..db45d7908ebb 100644
--- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
@@ -167,6 +167,7 @@
 
 #define XEHP_PSS_CHICKEN			XE_REG_MCR(0x7044, XE_REG_OPTION_MASKED)
 #define   FLSH_IGNORES_PSD			REG_BIT(10)
+#define   PSS_CHICKEN_9TH_ON_STATE_CHANGE	REG_BIT(6)
 #define   FD_END_COLLECT			REG_BIT(5)
 
 #define SC_INSTDONE				XE_REG(0x7100)
diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c
index a145234f662b..d2bb574d422b 100644
--- a/drivers/gpu/drm/xe/xe_guc_submit.c
+++ b/drivers/gpu/drm/xe/xe_guc_submit.c
@@ -12,6 +12,8 @@
 
 #include <drm/drm_managed.h>
 
+#include <generated/xe_wa_oob.h>
+
 #include "abi/guc_actions_abi.h"
 #include "abi/guc_actions_slpc_abi.h"
 #include "abi/guc_klvs_abi.h"
@@ -44,6 +46,7 @@
 #include "xe_trace.h"
 #include "xe_uc_fw.h"
 #include "xe_vm.h"
+#include "xe_wa.h"
 
 #define XE_GUC_EXEC_QUEUE_CGP_CONTEXT_ERROR_LEN		6
 
@@ -531,6 +534,11 @@ static void init_policies(struct xe_guc *guc, struct xe_exec_queue *q)
 	xe_gt_assert(guc_to_gt(guc), exec_queue_registered(q) &&
 		     !xe_exec_queue_is_multi_queue_secondary(q));
 
+	/* Wa_14026626235: Disable preemption for render engine */
+	if (q->class == XE_ENGINE_CLASS_RENDER &&
+	    XE_GT_WA(q->gt, 14026626235))
+		preempt_timeout_us = 0;
+
 	if (q->flags & EXEC_QUEUE_FLAG_LOW_LATENCY)
 		slpc_exec_queue_freq_req |= SLPC_CTX_FREQ_REQ_IS_COMPUTE;
 
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index 546296f0220b..fe9ca153b33d 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -789,6 +789,10 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
 		       ENGINE_CLASS(RENDER)),
 	  XE_RTP_ACTIONS(SET(CHICKEN_RASTER_1, DIS_CLIP_NEGATIVE_BOUNDING_BOX))
 	},
+	{ XE_RTP_NAME("14026626235"),
+	  XE_RTP_RULES(GRAPHICS_VERSION(3510), ENGINE_CLASS(RENDER)),
+	  XE_RTP_ACTIONS(CLR(XEHP_PSS_CHICKEN, PSS_CHICKEN_9TH_ON_STATE_CHANGE))
+	},
 };
 
 static __maybe_unused const struct xe_rtp_entry oob_was[] = {
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
index 80b54b195f20..3f2582568171 100644
--- a/drivers/gpu/drm/xe/xe_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
@@ -58,3 +58,4 @@
 
 14025883347	MEDIA_VERSION_RANGE(1301, 3503)
 		GRAPHICS_VERSION_RANGE(2004, 3005)
+14026626235	GRAPHICS_VERSION(3510)
-- 
2.50.1


             reply	other threads:[~2026-03-27  7:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-27  8:07 Nitin Gote [this message]
2026-03-27  7:39 ` ✓ CI.KUnit: success for drm/xe: Add Wa_14026626235 Patchwork
2026-03-27  8:27 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-27 23:21 ` ✓ Xe.CI.FULL: " Patchwork
2026-03-30 10:06 ` [PATCH] " Upadhyay, Tejas
2026-03-31  7:25   ` Gote, Nitin R
2026-03-31 22:22 ` Matt Roper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260327080719.2136248-2-nitin.r.gote@intel.com \
    --to=nitin.r.gote@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=matthew.d.roper@intel.com \
    --cc=tejas.upadhyay@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox