[PATCH v4 06/21] drm/i915/dsb: Disable the GOSUB interrupt

Ville Syrjala ville.syrjala at linux.intel.com
Mon Jun 9 14:10:31 UTC 2025


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

Current DSB hardware is apparently a bit borked and likes to signal
spurious GOSUB errors. We already have most for the workarounds for
this in place, but the last part is simply not enabling the corresponding
interrupt.

While at it polish up the w/a comments with the w/a number,
and consistently take the short blurp from the w/a page.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_dsb.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
index 6fdd324615e2..f60a6698419c 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -555,8 +555,8 @@ static void intel_dsb_gosub_align(struct intel_dsb *dsb)
 	aligned_tail = ALIGN(tail, CACHELINE_BYTES);
 
 	/*
-	 * "The GOSUB instruction cannot be placed in
-	 *  cacheline QW slot 6 or 7 (numbered 0-7)"
+	 * Wa_16024917128
+	 * "Ensure GOSUB is not placed in cacheline QW slot 6 or 7 (numbered 0-7)"
 	 */
 	if (aligned_tail - tail <= 2 * 8)
 		intel_dsb_buffer_memset(&dsb->dsb_buf, dsb->free_pos, 0,
@@ -619,8 +619,8 @@ void intel_dsb_gosub_finish(struct intel_dsb *dsb)
 	intel_dsb_align_tail(dsb);
 
 	/*
-	 * "All subroutines called by the GOSUB instruction
-	 *  must end with a cacheline of NOPs"
+	 * Wa_16024917128
+	 * "Ensure that all subroutines called by GOSUB end with a cacheline of NOPs"
 	 */
 	intel_dsb_noop(dsb, 8);
 
@@ -668,7 +668,11 @@ static u32 dsb_error_int_en(struct intel_display *display)
 	if (DISPLAY_VER(display) >= 14)
 		errors |= DSB_ATS_FAULT_INT_EN;
 
-	if (DISPLAY_VER(display) >= 30)
+	/*
+	 * Wa_16024917128
+	 * "Disable nested GOSUB interrupt (DSB_INTERRUPT bit 21)"
+	 */
+	if (0 && DISPLAY_VER(display) >= 30)
 		errors |= DSB_GOSUB_INT_EN;
 
 	return errors;
-- 
2.49.0



More information about the Intel-xe mailing list