All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Move RTP tables for engine init off the stack
@ 2026-06-17 19:24 Matt Roper
  2026-06-17 19:24 ` [PATCH v2 1/5] drm/xe: Reformat xe_rtp_types.h Matt Roper
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Matt Roper @ 2026-06-17 19:24 UTC (permalink / raw)
  To: intel-xe; +Cc: Gustavo Sousa, Violet Monti, Matt Roper

There are two RTP tables used during engine initialization that are
currently defined as stack variables inside of functions because they're
not truly constant tables and utilize other values calculated on the
functions' stacks.  We'd like to make those tables truly constant and
pull them out of the function bodies.  Doing so should make the code
more readable, avoid compiler warnings about stack size as these tables
grow over time, and potentially allow these tables to be tested with
kunit in the future.

Let's add a FIELD_SET_FUNC RTP action that acts similarly to FIELD_SET,
but indicates that the value to write should be determined during RTP
processing by calling the provided function pointer.  FIELD_SET_FUNC can
be used with small static functions to calculate the cache control
values at runtime.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
Changes in v2:
- Made tables 'static'
- Tweaked kerneldoc for FIELD_SET_FUNC (Gustavo)
- Added a couple extra kunit tests to exercise FIELD_SET_FUNC (Gustavo)
- Link to v1: https://lore.kernel.org/r/20260616-rtp_with_dynamic_vals-v1-0-f2b47bea9dd3@intel.com

---
Matt Roper (5):
      drm/xe: Reformat xe_rtp_types.h
      drm/xe/rtp: Add FIELD_SET_FUNC RTP action
      drm/xe: Move engines' LRC programming RTP table off the stack
      drm/xe: Move engines' non-LRC programming RTP table off the stack
      drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action

 drivers/gpu/drm/xe/tests/xe_rtp_test.c |  52 ++++++++
 drivers/gpu/drm/xe/xe_hw_engine.c      | 218 +++++++++++++++++----------------
 drivers/gpu/drm/xe/xe_rtp.c            |  10 +-
 drivers/gpu/drm/xe/xe_rtp.h            |  19 +++
 drivers/gpu/drm/xe/xe_rtp_types.h      |  33 ++++-
 5 files changed, 219 insertions(+), 113 deletions(-)
---
base-commit: 0984dfdee2a4f9e1922fe919a6b469e115e23360
change-id: 20260615-rtp_with_dynamic_vals-f161965451af

Best regards,
-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/5] drm/xe: Reformat xe_rtp_types.h
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
@ 2026-06-17 19:24 ` Matt Roper
  2026-06-17 19:24 ` [PATCH v2 2/5] drm/xe/rtp: Add FIELD_SET_FUNC RTP action Matt Roper
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Matt Roper @ 2026-06-17 19:24 UTC (permalink / raw)
  To: intel-xe; +Cc: Gustavo Sousa, Violet Monti, Matt Roper

Adjust whitespace / newlines in xe_rtp_types.h to make it easier to read
and more consistent with other files.  No functional change.

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/xe_rtp_types.h | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
index 58018ae4f8cc..1d7c63d0ae94 100644
--- a/drivers/gpu/drm/xe/xe_rtp_types.h
+++ b/drivers/gpu/drm/xe/xe_rtp_types.h
@@ -22,20 +22,24 @@ struct xe_gt;
  */
 struct xe_rtp_action {
 	/** @reg: Register */
-	struct xe_reg		reg;
+	struct xe_reg reg;
+
 	/**
 	 * @clr_bits: bits to clear when updating register. It's always a
 	 * superset of bits being modified
 	 */
-	u32			clr_bits;
+	u32 clr_bits;
+
 	/** @set_bits: bits to set when updating register */
-	u32			set_bits;
+	u32 set_bits;
+
 #define XE_RTP_NOCHECK		.read_mask = 0
 	/** @read_mask: mask for bits to consider when reading value back */
-	u32			read_mask;
+	u32 read_mask;
+
 #define XE_RTP_ACTION_FLAG_ENGINE_BASE		BIT(0)
 	/** @flags: flags to apply on rule evaluation or action */
-	u8			flags;
+	u8 flags;
 };
 
 enum {
@@ -69,6 +73,7 @@ struct xe_rtp_rule {
 			u8 platform;
 			u8 subplatform;
 		};
+
 		/*
 		 * MATCH_GRAPHICS_VERSION / XE_RTP_MATCH_GRAPHICS_VERSION_RANGE /
 		 * MATCH_MEDIA_VERSION  / XE_RTP_MATCH_MEDIA_VERSION_RANGE
@@ -78,15 +83,18 @@ struct xe_rtp_rule {
 #define XE_RTP_END_VERSION_UNDEFINED	U32_MAX
 			u32 ver_end;
 		};
+
 		/* MATCH_STEP */
 		struct {
 			u8 step_start;
 			u8 step_end;
 		};
+
 		/* MATCH_ENGINE_CLASS / MATCH_NOT_ENGINE_CLASS */
 		struct {
 			u8 engine_class;
 		};
+
 		/* MATCH_FUNC */
 		bool (*match_func)(const struct xe_device *xe,
 				   const struct xe_gt *gt,

-- 
2.54.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/5] drm/xe/rtp: Add FIELD_SET_FUNC RTP action
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
  2026-06-17 19:24 ` [PATCH v2 1/5] drm/xe: Reformat xe_rtp_types.h Matt Roper
@ 2026-06-17 19:24 ` Matt Roper
  2026-06-17 19:24 ` [PATCH v2 3/5] drm/xe: Move engines' LRC programming RTP table off the stack Matt Roper
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Matt Roper @ 2026-06-17 19:24 UTC (permalink / raw)
  To: intel-xe; +Cc: Gustavo Sousa, Violet Monti, Matt Roper

Most of our RTP programming involves programming constant values into
register fields.  However there are a few cases (e.g., RING_CMD_CCTL
programming) that rely on dynamic per-GT or per-engine checks to decide
what value will be programmed.  Add a FIELD_SET_FUNC RTP action which
will call the provided function pointer once at RTP processing time to
determine the appropriate value.

v2:
 - Tweak kerneldoc to avoid duplicating explanation from FIELD_SET.
   (Gustavo)

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/xe_rtp.c       | 10 ++++++++--
 drivers/gpu/drm/xe/xe_rtp.h       | 19 +++++++++++++++++++
 drivers/gpu/drm/xe/xe_rtp_types.h | 17 +++++++++++++++--
 3 files changed, 42 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
index 83a40e1f9528..6a8d6ea68f25 100644
--- a/drivers/gpu/drm/xe/xe_rtp.c
+++ b/drivers/gpu/drm/xe/xe_rtp.c
@@ -227,17 +227,23 @@ static bool rule_matches(const struct xe_device *xe,
 
 static void rtp_add_sr_entry(const struct xe_rtp_action *action,
 			     struct xe_gt *gt,
+			     struct xe_hw_engine *hwe,
 			     u32 mmio_base,
 			     struct xe_reg_sr *sr)
 {
 	struct xe_reg_sr_entry sr_entry = {
 		.reg = action->reg,
 		.clr_bits = action->clr_bits,
-		.set_bits = action->set_bits,
 		.read_mask = action->read_mask,
 	};
 
+	if (action->use_func)
+		sr_entry.set_bits = action->set_func(gt, hwe);
+	else
+		sr_entry.set_bits = action->set_bits;
+
 	sr_entry.reg.addr += mmio_base;
+
 	xe_reg_sr_add(sr, &sr_entry, gt);
 }
 
@@ -259,7 +265,7 @@ static bool rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
 		else
 			mmio_base = 0;
 
-		rtp_add_sr_entry(action, gt, mmio_base, sr);
+		rtp_add_sr_entry(action, gt, hwe, mmio_base, sr);
 	}
 
 	return true;
diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
index 2cc65053cd07..0032f68ea187 100644
--- a/drivers/gpu/drm/xe/xe_rtp.h
+++ b/drivers/gpu/drm/xe/xe_rtp.h
@@ -322,6 +322,25 @@ struct xe_reg_sr;
 	  .clr_bits = (mask_bits_), .set_bits = (val_),				\
 	  .read_mask = 0, ##__VA_ARGS__ }
 
+/**
+ * XE_RTP_ACTION_FIELD_SET_FUNC: Set a bit range to the value returned by a function
+ * @reg_: Register
+ * @mask_bits_: Mask of bits to be changed in the register, forming a field
+ * @func_: Function that returns value to set in the field denoted by @mask_bits_
+ * @...: Additional fields to override in the struct xe_rtp_action entry
+ *
+ * This macro works like XE_RTP_ACTION_FIELD_SET(), except that the
+ * field value is evaluated at the time the RTP table is processed.
+ *
+ * @func_ will only be called a single time, when the RTP table is being
+ * processed.  After processing, the value in the reg_sr entry is fixed and
+ * will not be re-evaluated.
+ */
+#define XE_RTP_ACTION_FIELD_SET_FUNC(reg_, mask_bits_, func_, ...)		\
+	{ .reg = XE_RTP_DROP_CAST(reg_),					\
+	  .clr_bits = mask_bits_, .set_func = func_, .use_func = 1,		\
+	  .read_mask = mask_bits_, ##__VA_ARGS__ }
+
 /**
  * XE_RTP_ACTION_WHITELIST - Add register to userspace whitelist
  * @reg_: Register
diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
index 1d7c63d0ae94..b78092fa06e0 100644
--- a/drivers/gpu/drm/xe/xe_rtp_types.h
+++ b/drivers/gpu/drm/xe/xe_rtp_types.h
@@ -30,8 +30,14 @@ struct xe_rtp_action {
 	 */
 	u32 clr_bits;
 
-	/** @set_bits: bits to set when updating register */
-	u32 set_bits;
+	union {
+		/** @set_bits: bits to set when updating register */
+		u32 set_bits;
+
+		/** @set_func: function to provide bits to set when updating register */
+		u32 (*set_func)(struct xe_gt *gt,
+				struct xe_hw_engine *hwe);
+	};
 
 #define XE_RTP_NOCHECK		.read_mask = 0
 	/** @read_mask: mask for bits to consider when reading value back */
@@ -40,6 +46,13 @@ struct xe_rtp_action {
 #define XE_RTP_ACTION_FLAG_ENGINE_BASE		BIT(0)
 	/** @flags: flags to apply on rule evaluation or action */
 	u8 flags;
+
+	/**
+	 * @use_func:
+	 *   Internal flag indicating @set_func should be called instead of
+	 *   using @set_bits.
+	 */
+	u8 use_func:1;
 };
 
 enum {

-- 
2.54.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 3/5] drm/xe: Move engines' LRC programming RTP table off the stack
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
  2026-06-17 19:24 ` [PATCH v2 1/5] drm/xe: Reformat xe_rtp_types.h Matt Roper
  2026-06-17 19:24 ` [PATCH v2 2/5] drm/xe/rtp: Add FIELD_SET_FUNC RTP action Matt Roper
@ 2026-06-17 19:24 ` Matt Roper
  2026-06-17 19:24 ` [PATCH v2 4/5] drm/xe: Move engines' non-LRC " Matt Roper
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Matt Roper @ 2026-06-17 19:24 UTC (permalink / raw)
  To: intel-xe; +Cc: Gustavo Sousa, Violet Monti, Matt Roper

The 'lrc_setup' RTP table was allocated on the stack because it wasn't
truly constant and needed to calculate the proper value for BLIT_CCTL at
runtime based on other stack variables.  Using the FIELD_SET_FUNC action
allows us to make the table itself truly constant and move it off the
stack; the BLIT_CCTL value is now calculated during RTP table
processing.

v2:
 - Made table static

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/xe_hw_engine.c | 60 ++++++++++++++++++++-------------------
 1 file changed, 31 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 98265293f2dc..603bb197801a 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -337,39 +337,41 @@ static bool xe_rtp_cfeg_wmtp_disabled(const struct xe_device *xe,
 	return xe_mmio_read32(&hwe->gt->mmio, XEHP_FUSE4) & CFEG_WMTP_DISABLE;
 }
 
+static u32 blit_cctl_val(struct xe_gt *gt, struct xe_hw_engine *hwe)
+{
+	return REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, gt->mocs.uc_index) |
+		REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, gt->mocs.uc_index);
+}
+
+static const struct xe_rtp_table_sr lrc_setup = XE_RTP_TABLE_SR(
+	/*
+	 * Some blitter commands do not have a field for MOCS, those
+	 * commands will use MOCS index pointed by BLIT_CCTL.
+	 * BLIT_CCTL registers are needed to be programmed to un-cached.
+	 */
+	{ XE_RTP_NAME("BLIT_CCTL_default_MOCS"),
+	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1274),
+		       ENGINE_CLASS(COPY)),
+	  XE_RTP_ACTIONS(FIELD_SET_FUNC(BLIT_CCTL(0),
+					BLIT_CCTL_DST_MOCS_MASK |
+					BLIT_CCTL_SRC_MOCS_MASK,
+					blit_cctl_val,
+					XE_RTP_ACTION_FLAG(ENGINE_BASE)))
+	},
+	/* Disable WMTP if HW doesn't support it */
+	{ XE_RTP_NAME("DISABLE_WMTP_ON_UNSUPPORTED_HW"),
+	  XE_RTP_RULES(FUNC(xe_rtp_cfeg_wmtp_disabled)),
+	  XE_RTP_ACTIONS(FIELD_SET(CS_CHICKEN1(0),
+				   PREEMPT_GPGPU_LEVEL_MASK,
+				   PREEMPT_GPGPU_THREAD_GROUP_LEVEL)),
+	  XE_RTP_ENTRY_FLAG(FOREACH_ENGINE)
+	},
+);
+
 static void
 hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
 {
-	struct xe_gt *gt = hwe->gt;
-	const u8 mocs_write_idx = gt->mocs.uc_index;
-	const u8 mocs_read_idx = gt->mocs.uc_index;
-	u32 blit_cctl_val = REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, mocs_write_idx) |
-			    REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, mocs_read_idx);
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
-	const struct xe_rtp_table_sr lrc_setup = XE_RTP_TABLE_SR(
-		/*
-		 * Some blitter commands do not have a field for MOCS, those
-		 * commands will use MOCS index pointed by BLIT_CCTL.
-		 * BLIT_CCTL registers are needed to be programmed to un-cached.
-		 */
-		{ XE_RTP_NAME("BLIT_CCTL_default_MOCS"),
-		  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1274),
-			       ENGINE_CLASS(COPY)),
-		  XE_RTP_ACTIONS(FIELD_SET(BLIT_CCTL(0),
-				 BLIT_CCTL_DST_MOCS_MASK |
-				 BLIT_CCTL_SRC_MOCS_MASK,
-				 blit_cctl_val,
-				 XE_RTP_ACTION_FLAG(ENGINE_BASE)))
-		},
-		/* Disable WMTP if HW doesn't support it */
-		{ XE_RTP_NAME("DISABLE_WMTP_ON_UNSUPPORTED_HW"),
-		  XE_RTP_RULES(FUNC(xe_rtp_cfeg_wmtp_disabled)),
-		  XE_RTP_ACTIONS(FIELD_SET(CS_CHICKEN1(0),
-					   PREEMPT_GPGPU_LEVEL_MASK,
-					   PREEMPT_GPGPU_THREAD_GROUP_LEVEL)),
-		  XE_RTP_ENTRY_FLAG(FOREACH_ENGINE)
-		},
-	);
 
 	xe_rtp_process_to_sr(&ctx, &lrc_setup, &hwe->reg_lrc, true);
 }

-- 
2.54.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 4/5] drm/xe: Move engines' non-LRC programming RTP table off the stack
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
                   ` (2 preceding siblings ...)
  2026-06-17 19:24 ` [PATCH v2 3/5] drm/xe: Move engines' LRC programming RTP table off the stack Matt Roper
@ 2026-06-17 19:24 ` Matt Roper
  2026-06-17 19:24 ` [PATCH v2 5/5] drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action Matt Roper
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Matt Roper @ 2026-06-17 19:24 UTC (permalink / raw)
  To: intel-xe; +Cc: Gustavo Sousa, Violet Monti, Matt Roper

The 'engine_sr' RTP table was allocated on the stack because it wasn't
truly constant and needed to calculate the proper value for
RING_CMD_CCTL at runtime based on other stack variables.  Using the
FIELD_SET_FUNC action allows us to make the table itself truly constant
and move it off the stack; the RING_CMD_CCTL value is now calculated
during RTP table processing.

v2:
 - Made table static

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/xe_hw_engine.c | 158 ++++++++++++++++++++------------------
 1 file changed, 82 insertions(+), 76 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 603bb197801a..7e7411bfe1dc 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -387,86 +387,92 @@ void xe_hw_engine_setup_reg_lrc(struct xe_hw_engine *hwe)
 	xe_tuning_process_lrc(hwe);
 }
 
+/*
+ * RING_CMD_CCTL specifies the default MOCS entry that will be
+ * used by the command streamer when executing commands that
+ * don't have a way to explicitly specify a MOCS setting.
+ * The default should usually reference whichever MOCS entry
+ * corresponds to uncached behavior, although use of a WB cached
+ * entry is recommended by the spec in certain circumstances on
+ * specific platforms.
+ * Bspec: 72161
+ */
+static u32 ring_cmd_cctl_val(struct xe_gt *gt, struct xe_hw_engine *hwe)
+{
+	struct xe_device *xe = gt_to_xe(gt);
+	u8 mocs_read_idx = gt->mocs.uc_index;
+
+	if (hwe->class == XE_ENGINE_CLASS_COMPUTE && IS_DGFX(xe) &&
+	    (GRAPHICS_VER(xe) >= 20 || xe->info.platform == XE_PVC))
+		mocs_read_idx = gt->mocs.wb_index;
+
+	return REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, gt->mocs.uc_index) |
+		REG_FIELD_PREP(CMD_CCTL_READ_OVERRIDE_MASK, mocs_read_idx);
+}
+
+static const struct xe_rtp_table_sr engine_sr = XE_RTP_TABLE_SR(
+	{ XE_RTP_NAME("RING_CMD_CCTL_default_MOCS"),
+	  XE_RTP_RULES(FUNC(xe_rtp_match_always)),
+	  XE_RTP_ACTIONS(FIELD_SET_FUNC(RING_CMD_CCTL(0),
+					CMD_CCTL_WRITE_OVERRIDE_MASK |
+					CMD_CCTL_READ_OVERRIDE_MASK,
+					ring_cmd_cctl_val,
+					XE_RTP_ACTION_FLAG(ENGINE_BASE)))
+	},
+	{ XE_RTP_NAME("Disable HW status page updates for interrupts"),
+	  XE_RTP_RULES(FUNC(xe_rtp_match_always)),
+	  XE_RTP_ACTIONS(SET(RING_HWSTAM(0), ~0x0,
+			     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
+	},
+	{ XE_RTP_NAME("Disable engine 'legacy' mode"),
+	  XE_RTP_RULES(FUNC(xe_rtp_match_always)),
+	  XE_RTP_ACTIONS(SET(GFX_MODE(0), GFX_DISABLE_LEGACY_MODE,
+			     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
+	},
+	/*
+	 * To allow the GSC engine to go idle on MTL we need to enable
+	 * idle messaging and set the hysteresis value (we use 0xA=5us
+	 * as recommended in spec). On platforms after MTL this is
+	 * enabled by default.
+	 */
+	{ XE_RTP_NAME("MTL GSCCS IDLE MSG enable"),
+	  XE_RTP_RULES(MEDIA_VERSION(1300), ENGINE_CLASS(OTHER)),
+	  XE_RTP_ACTIONS(CLR(RING_PSMI_CTL(0),
+			     IDLE_MSG_DISABLE,
+			     XE_RTP_ACTION_FLAG(ENGINE_BASE)),
+			 FIELD_SET(RING_PWRCTX_MAXCNT(0),
+				   IDLE_WAIT_TIME,
+				   0xA,
+				   XE_RTP_ACTION_FLAG(ENGINE_BASE)))
+	},
+	/* Enable Priority Mem Read */
+	{ XE_RTP_NAME("Priority_Mem_Read"),
+	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED)),
+	  XE_RTP_ACTIONS(SET(CSFE_CHICKEN1(0), CS_PRIORITY_MEM_READ,
+			     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
+	},
+	{ XE_RTP_NAME("Enable CCS Engine(s)"),
+	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1255, XE_RTP_END_VERSION_UNDEFINED),
+		       FUNC(xe_rtp_match_first_render_or_compute)),
+	  XE_RTP_ACTIONS(SET(RCU_MODE, RCU_MODE_CCS_ENABLE))
+	},
+	/* Use Fixed slice CCS mode */
+	{ XE_RTP_NAME("RCU_MODE_FIXED_SLICE_CCS_MODE"),
+	  XE_RTP_RULES(FUNC(xe_hw_engine_match_fixed_cslice_mode)),
+	  XE_RTP_ACTIONS(FIELD_SET(RCU_MODE, RCU_MODE_FIXED_SLICE_CCS_MODE,
+				   RCU_MODE_FIXED_SLICE_CCS_MODE))
+	},
+	{ XE_RTP_NAME("Enable MSI-X interrupt support"),
+	  XE_RTP_RULES(FUNC(xe_rtp_match_has_msix)),
+	  XE_RTP_ACTIONS(SET(GFX_MODE(0), GFX_MSIX_INTERRUPT_ENABLE,
+			     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
+	},
+);
+
 static void
 hw_engine_setup_default_state(struct xe_hw_engine *hwe)
 {
-	struct xe_gt *gt = hwe->gt;
-	struct xe_device *xe = gt_to_xe(gt);
-	/*
-	 * RING_CMD_CCTL specifies the default MOCS entry that will be
-	 * used by the command streamer when executing commands that
-	 * don't have a way to explicitly specify a MOCS setting.
-	 * The default should usually reference whichever MOCS entry
-	 * corresponds to uncached behavior, although use of a WB cached
-	 * entry is recommended by the spec in certain circumstances on
-	 * specific platforms.
-	 * Bspec: 72161
-	 */
-	const u8 mocs_write_idx = gt->mocs.uc_index;
-	const u8 mocs_read_idx = hwe->class == XE_ENGINE_CLASS_COMPUTE && IS_DGFX(xe) &&
-				 (GRAPHICS_VER(xe) >= 20 || xe->info.platform == XE_PVC) ?
-				 gt->mocs.wb_index : gt->mocs.uc_index;
-	u32 ring_cmd_cctl_val = REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, mocs_write_idx) |
-				REG_FIELD_PREP(CMD_CCTL_READ_OVERRIDE_MASK, mocs_read_idx);
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
-	const struct xe_rtp_table_sr engine_sr = XE_RTP_TABLE_SR(
-		{ XE_RTP_NAME("RING_CMD_CCTL_default_MOCS"),
-		  XE_RTP_RULES(FUNC(xe_rtp_match_always)),
-		  XE_RTP_ACTIONS(FIELD_SET(RING_CMD_CCTL(0),
-					   CMD_CCTL_WRITE_OVERRIDE_MASK |
-					   CMD_CCTL_READ_OVERRIDE_MASK,
-					   ring_cmd_cctl_val,
-					   XE_RTP_ACTION_FLAG(ENGINE_BASE)))
-		},
-		{ XE_RTP_NAME("Disable HW status page updates for interrupts"),
-		  XE_RTP_RULES(FUNC(xe_rtp_match_always)),
-		  XE_RTP_ACTIONS(SET(RING_HWSTAM(0), ~0x0,
-				     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
-		},
-		{ XE_RTP_NAME("Disable engine 'legacy' mode"),
-		  XE_RTP_RULES(FUNC(xe_rtp_match_always)),
-		  XE_RTP_ACTIONS(SET(GFX_MODE(0), GFX_DISABLE_LEGACY_MODE,
-				     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
-		},
-		/*
-		 * To allow the GSC engine to go idle on MTL we need to enable
-		 * idle messaging and set the hysteresis value (we use 0xA=5us
-		 * as recommended in spec). On platforms after MTL this is
-		 * enabled by default.
-		 */
-		{ XE_RTP_NAME("MTL GSCCS IDLE MSG enable"),
-		  XE_RTP_RULES(MEDIA_VERSION(1300), ENGINE_CLASS(OTHER)),
-		  XE_RTP_ACTIONS(CLR(RING_PSMI_CTL(0),
-				     IDLE_MSG_DISABLE,
-				     XE_RTP_ACTION_FLAG(ENGINE_BASE)),
-				 FIELD_SET(RING_PWRCTX_MAXCNT(0),
-					   IDLE_WAIT_TIME,
-					   0xA,
-					   XE_RTP_ACTION_FLAG(ENGINE_BASE)))
-		},
-		/* Enable Priority Mem Read */
-		{ XE_RTP_NAME("Priority_Mem_Read"),
-		  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(2001, XE_RTP_END_VERSION_UNDEFINED)),
-		  XE_RTP_ACTIONS(SET(CSFE_CHICKEN1(0), CS_PRIORITY_MEM_READ,
-				     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
-		},
-		{ XE_RTP_NAME("Enable CCS Engine(s)"),
-		  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1255, XE_RTP_END_VERSION_UNDEFINED),
-			       FUNC(xe_rtp_match_first_render_or_compute)),
-		  XE_RTP_ACTIONS(SET(RCU_MODE, RCU_MODE_CCS_ENABLE))
-		},
-		/* Use Fixed slice CCS mode */
-		{ XE_RTP_NAME("RCU_MODE_FIXED_SLICE_CCS_MODE"),
-		  XE_RTP_RULES(FUNC(xe_hw_engine_match_fixed_cslice_mode)),
-		  XE_RTP_ACTIONS(FIELD_SET(RCU_MODE, RCU_MODE_FIXED_SLICE_CCS_MODE,
-					   RCU_MODE_FIXED_SLICE_CCS_MODE))
-		},
-		{ XE_RTP_NAME("Enable MSI-X interrupt support"),
-		  XE_RTP_RULES(FUNC(xe_rtp_match_has_msix)),
-		  XE_RTP_ACTIONS(SET(GFX_MODE(0), GFX_MSIX_INTERRUPT_ENABLE,
-				     XE_RTP_ACTION_FLAG(ENGINE_BASE)))
-		},
-	);
 
 	xe_rtp_process_to_sr(&ctx, &engine_sr, &hwe->reg_sr, false);
 }

-- 
2.54.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 5/5] drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
                   ` (3 preceding siblings ...)
  2026-06-17 19:24 ` [PATCH v2 4/5] drm/xe: Move engines' non-LRC " Matt Roper
@ 2026-06-17 19:24 ` Matt Roper
  2026-06-17 20:13   ` Gustavo Sousa
  2026-06-17 19:32 ` ✗ CI.checkpatch: warning for Move RTP tables for engine init off the stack (rev2) Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 11+ messages in thread
From: Matt Roper @ 2026-06-17 19:24 UTC (permalink / raw)
  To: intel-xe; +Cc: Gustavo Sousa, Violet Monti, Matt Roper

Add a couple additional tests to the RTP kunit suite that ensure
FIELD_SET_FUNC() actions are evaluated properly and the values properly
consolidate/conflict with values coming from other literal SET/FIELD_SET
rules.

Suggested-by: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
 drivers/gpu/drm/xe/tests/xe_rtp_test.c | 52 ++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
index 3d0688d058d9..367811621880 100644
--- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
+++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
@@ -280,6 +280,11 @@ static void xe_rtp_rules_tests(struct kunit *test)
 	KUNIT_EXPECT_EQ(test, err, param->expected_err);
 }
 
+static u32 bits_2_3_set(struct xe_gt *gt, struct xe_hw_engine *hwe)
+{
+	return REG_BIT(2) | REG_BIT(3);
+}
+
 static const struct rtp_to_sr_test_case rtp_to_sr_cases[] = {
 	{
 		.name = "coalesce-same-reg",
@@ -300,6 +305,29 @@ static const struct rtp_to_sr_test_case rtp_to_sr_cases[] = {
 			},
 		),
 	},
+	{
+		.name = "coalesce-same-reg-literal-and-func",
+		.expected_reg = REGULAR_REG1,
+		.expected_set_bits = REG_BIT(0) | REG_BIT(1) | REG_BIT(2) | REG_BIT(3),
+		.expected_clr_bits = REG_BIT(0) | REG_BIT(1) | REG_BIT(2) | REG_BIT(3),
+		.expected_active = BIT(0) | BIT(1),
+		.expected_count_sr_entries = 1,
+		/* Different bits on the same register: create a single entry */
+		.table = XE_RTP_TABLE_SR(
+			{ XE_RTP_NAME("basic-1"),
+			  XE_RTP_RULES(FUNC(match_yes)),
+			  XE_RTP_ACTIONS(FIELD_SET(REGULAR_REG1,
+						   REG_BIT(0) | REG_BIT(1),
+						   REG_BIT(0) | REG_BIT(1)))
+			},
+			{ XE_RTP_NAME("basic-2"),
+			  XE_RTP_RULES(FUNC(match_yes)),
+			  XE_RTP_ACTIONS(FIELD_SET_FUNC(REGULAR_REG1,
+							REG_BIT(2) | REG_BIT(3),
+							bits_2_3_set))
+			},
+		),
+	},
 	{
 		.name = "no-match-no-add",
 		.expected_reg = REGULAR_REG1,
@@ -417,6 +445,30 @@ static const struct rtp_to_sr_test_case rtp_to_sr_cases[] = {
 			},
 		),
 	},
+	{
+		.name = "conflict-not-disjoint-literal-and-func",
+		.expected_reg = REGULAR_REG1,
+		.expected_set_bits = REG_BIT(1) | REG_BIT(2),
+		.expected_clr_bits = REG_BIT(1) | REG_BIT(2),
+		.expected_active = BIT(0) | BIT(1),
+		.expected_count_sr_entries = 1,
+		.expected_sr_errors = 1,
+		.table = XE_RTP_TABLE_SR(
+			{ XE_RTP_NAME("basic-1"),
+			  XE_RTP_RULES(FUNC(match_yes)),
+			  XE_RTP_ACTIONS(FIELD_SET(REGULAR_REG1,
+						   REG_BIT(1) | REG_BIT(2),
+						   REG_BIT(1) | REG_BIT(2)))
+			},
+			/* drop: bits are not disjoint with previous entries */
+			{ XE_RTP_NAME("basic-2"),
+			  XE_RTP_RULES(FUNC(match_yes)),
+			  XE_RTP_ACTIONS(FIELD_SET_FUNC(REGULAR_REG1,
+							REG_BIT(2) | REG_BIT(3),
+							bits_2_3_set))
+			},
+		),
+	},
 	{
 		.name = "conflict-reg-type",
 		.expected_reg = REGULAR_REG1,

-- 
2.54.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* ✗ CI.checkpatch: warning for Move RTP tables for engine init off the stack (rev2)
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
                   ` (4 preceding siblings ...)
  2026-06-17 19:24 ` [PATCH v2 5/5] drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action Matt Roper
@ 2026-06-17 19:32 ` Patchwork
  2026-06-17 19:33 ` ✓ CI.KUnit: success " Patchwork
  2026-06-17 20:11 ` ✗ Xe.CI.BAT: failure " Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-06-17 19:32 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe

== Series Details ==

Series: Move RTP tables for engine init off the stack (rev2)
URL   : https://patchwork.freedesktop.org/series/168630/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
061140b9bc586ae7f40abc1249c97e1cc72d1b9d
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit ad0e71f48a593d8cd4aba83de8ff499b881cae3f
Author: Matt Roper <matthew.d.roper@intel.com>
Date:   Wed Jun 17 12:24:49 2026 -0700

    drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action
    
    Add a couple additional tests to the RTP kunit suite that ensure
    FIELD_SET_FUNC() actions are evaluated properly and the values properly
    consolidate/conflict with values coming from other literal SET/FIELD_SET
    rules.
    
    Suggested-by: Gustavo Sousa <gustavo.sousa@intel.com>
    Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
+ /mt/dim checkpatch 18816557ad112c94f3bf5ee625cd862d8d3f41af drm-intel
f930e9c55f37 drm/xe: Reformat xe_rtp_types.h
4efb5f0f48b1 drm/xe/rtp: Add FIELD_SET_FUNC RTP action
-:80: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'mask_bits_' - possible side-effects?
#80: FILE: drivers/gpu/drm/xe/xe_rtp.h:339:
+#define XE_RTP_ACTION_FIELD_SET_FUNC(reg_, mask_bits_, func_, ...)		\
+	{ .reg = XE_RTP_DROP_CAST(reg_),					\
+	  .clr_bits = mask_bits_, .set_func = func_, .use_func = 1,		\
+	  .read_mask = mask_bits_, ##__VA_ARGS__ }

total: 0 errors, 0 warnings, 1 checks, 86 lines checked
a478fae17a45 drm/xe: Move engines' LRC programming RTP table off the stack
-:33: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#33: FILE: drivers/gpu/drm/xe/xe_hw_engine.c:346:
+static const struct xe_rtp_table_sr lrc_setup = XE_RTP_TABLE_SR(

total: 0 errors, 0 warnings, 1 checks, 70 lines checked
d678f9e92cfe drm/xe: Move engines' non-LRC programming RTP table off the stack
-:54: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#54: FILE: drivers/gpu/drm/xe/xe_hw_engine.c:413:
+static const struct xe_rtp_table_sr engine_sr = XE_RTP_TABLE_SR(

total: 0 errors, 0 warnings, 1 checks, 167 lines checked
ad0e71f48a59 drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action
-:42: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#42: FILE: drivers/gpu/drm/xe/tests/xe_rtp_test.c:316:
+		.table = XE_RTP_TABLE_SR(

-:72: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#72: FILE: drivers/gpu/drm/xe/tests/xe_rtp_test.c:456:
+		.table = XE_RTP_TABLE_SR(

total: 0 errors, 0 warnings, 2 checks, 70 lines checked



^ permalink raw reply	[flat|nested] 11+ messages in thread

* ✓ CI.KUnit: success for Move RTP tables for engine init off the stack (rev2)
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
                   ` (5 preceding siblings ...)
  2026-06-17 19:32 ` ✗ CI.checkpatch: warning for Move RTP tables for engine init off the stack (rev2) Patchwork
@ 2026-06-17 19:33 ` Patchwork
  2026-06-17 20:11 ` ✗ Xe.CI.BAT: failure " Patchwork
  7 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2026-06-17 19:33 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe

== Series Details ==

Series: Move RTP tables for engine init off the stack (rev2)
URL   : https://patchwork.freedesktop.org/series/168630/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[19:32:11] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[19:32:15] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[19:32:46] Starting KUnit Kernel (1/1)...
[19:32:46] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[19:32:47] ================== guc_buf (11 subtests) ===================
[19:32:47] [PASSED] test_smallest
[19:32:47] [PASSED] test_largest
[19:32:47] [PASSED] test_granular
[19:32:47] [PASSED] test_unique
[19:32:47] [PASSED] test_overlap
[19:32:47] [PASSED] test_reusable
[19:32:47] [PASSED] test_too_big
[19:32:47] [PASSED] test_flush
[19:32:47] [PASSED] test_lookup
[19:32:47] [PASSED] test_data
[19:32:47] [PASSED] test_class
[19:32:47] ===================== [PASSED] guc_buf =====================
[19:32:47] =================== guc_dbm (7 subtests) ===================
[19:32:47] [PASSED] test_empty
[19:32:47] [PASSED] test_default
[19:32:47] ======================== test_size  ========================
[19:32:47] [PASSED] 4
[19:32:47] [PASSED] 8
[19:32:47] [PASSED] 32
[19:32:47] [PASSED] 256
[19:32:47] ==================== [PASSED] test_size ====================
[19:32:47] ======================= test_reuse  ========================
[19:32:47] [PASSED] 4
[19:32:47] [PASSED] 8
[19:32:47] [PASSED] 32
[19:32:47] [PASSED] 256
[19:32:47] =================== [PASSED] test_reuse ====================
[19:32:47] =================== test_range_overlap  ====================
[19:32:47] [PASSED] 4
[19:32:47] [PASSED] 8
[19:32:47] [PASSED] 32
[19:32:47] [PASSED] 256
[19:32:47] =============== [PASSED] test_range_overlap ================
[19:32:47] =================== test_range_compact  ====================
[19:32:47] [PASSED] 4
[19:32:47] [PASSED] 8
[19:32:47] [PASSED] 32
[19:32:47] [PASSED] 256
[19:32:47] =============== [PASSED] test_range_compact ================
[19:32:47] ==================== test_range_spare  =====================
[19:32:47] [PASSED] 4
[19:32:47] [PASSED] 8
[19:32:47] [PASSED] 32
[19:32:47] [PASSED] 256
[19:32:47] ================ [PASSED] test_range_spare =================
[19:32:47] ===================== [PASSED] guc_dbm =====================
[19:32:47] =================== guc_idm (6 subtests) ===================
[19:32:47] [PASSED] bad_init
[19:32:47] [PASSED] no_init
[19:32:47] [PASSED] init_fini
[19:32:47] [PASSED] check_used
[19:32:47] [PASSED] check_quota
[19:32:47] [PASSED] check_all
[19:32:47] ===================== [PASSED] guc_idm =====================
[19:32:47] ================== no_relay (3 subtests) ===================
[19:32:47] [PASSED] xe_drops_guc2pf_if_not_ready
[19:32:47] [PASSED] xe_drops_guc2vf_if_not_ready
[19:32:47] [PASSED] xe_rejects_send_if_not_ready
[19:32:47] ==================== [PASSED] no_relay =====================
[19:32:47] ================== pf_relay (14 subtests) ==================
[19:32:47] [PASSED] pf_rejects_guc2pf_too_short
[19:32:47] [PASSED] pf_rejects_guc2pf_too_long
[19:32:47] [PASSED] pf_rejects_guc2pf_no_payload
[19:32:47] [PASSED] pf_fails_no_payload
[19:32:47] [PASSED] pf_fails_bad_origin
[19:32:47] [PASSED] pf_fails_bad_type
[19:32:47] [PASSED] pf_txn_reports_error
[19:32:47] [PASSED] pf_txn_sends_pf2guc
[19:32:47] [PASSED] pf_sends_pf2guc
[19:32:47] [SKIPPED] pf_loopback_nop
[19:32:47] [SKIPPED] pf_loopback_echo
[19:32:47] [SKIPPED] pf_loopback_fail
[19:32:47] [SKIPPED] pf_loopback_busy
[19:32:47] [SKIPPED] pf_loopback_retry
[19:32:47] ==================== [PASSED] pf_relay =====================
[19:32:47] ================== vf_relay (3 subtests) ===================
[19:32:47] [PASSED] vf_rejects_guc2vf_too_short
[19:32:47] [PASSED] vf_rejects_guc2vf_too_long
[19:32:47] [PASSED] vf_rejects_guc2vf_no_payload
[19:32:47] ==================== [PASSED] vf_relay =====================
[19:32:47] ================ pf_gt_config (9 subtests) =================
[19:32:47] [PASSED] fair_contexts_1vf
[19:32:47] [PASSED] fair_doorbells_1vf
[19:32:47] [PASSED] fair_ggtt_1vf
[19:32:47] ====================== fair_vram_1vf  ======================
[19:32:47] [PASSED] 3.50 GiB
[19:32:47] [PASSED] 11.5 GiB
[19:32:47] [PASSED] 15.5 GiB
[19:32:47] [PASSED] 31.5 GiB
[19:32:47] [PASSED] 63.5 GiB
[19:32:47] [PASSED] 1.91 GiB
[19:32:47] ================== [PASSED] fair_vram_1vf ==================
[19:32:47] ================ fair_vram_1vf_admin_only  =================
[19:32:47] [PASSED] 3.50 GiB
[19:32:47] [PASSED] 11.5 GiB
[19:32:47] [PASSED] 15.5 GiB
[19:32:47] [PASSED] 31.5 GiB
[19:32:47] [PASSED] 63.5 GiB
[19:32:47] [PASSED] 1.91 GiB
[19:32:47] ============ [PASSED] fair_vram_1vf_admin_only =============
[19:32:47] ====================== fair_contexts  ======================
[19:32:47] [PASSED] 1 VF
[19:32:47] [PASSED] 2 VFs
[19:32:47] [PASSED] 3 VFs
[19:32:47] [PASSED] 4 VFs
[19:32:47] [PASSED] 5 VFs
[19:32:47] [PASSED] 6 VFs
[19:32:47] [PASSED] 7 VFs
[19:32:47] [PASSED] 8 VFs
[19:32:47] [PASSED] 9 VFs
[19:32:47] [PASSED] 10 VFs
[19:32:47] [PASSED] 11 VFs
[19:32:47] [PASSED] 12 VFs
[19:32:47] [PASSED] 13 VFs
[19:32:47] [PASSED] 14 VFs
[19:32:47] [PASSED] 15 VFs
[19:32:47] [PASSED] 16 VFs
[19:32:47] [PASSED] 17 VFs
[19:32:47] [PASSED] 18 VFs
[19:32:47] [PASSED] 19 VFs
[19:32:47] [PASSED] 20 VFs
[19:32:47] [PASSED] 21 VFs
[19:32:47] [PASSED] 22 VFs
[19:32:47] [PASSED] 23 VFs
[19:32:47] [PASSED] 24 VFs
[19:32:47] [PASSED] 25 VFs
[19:32:47] [PASSED] 26 VFs
[19:32:47] [PASSED] 27 VFs
[19:32:47] [PASSED] 28 VFs
[19:32:47] [PASSED] 29 VFs
[19:32:47] [PASSED] 30 VFs
[19:32:47] [PASSED] 31 VFs
[19:32:47] [PASSED] 32 VFs
[19:32:47] [PASSED] 33 VFs
[19:32:47] [PASSED] 34 VFs
[19:32:47] [PASSED] 35 VFs
[19:32:47] [PASSED] 36 VFs
[19:32:47] [PASSED] 37 VFs
[19:32:47] [PASSED] 38 VFs
[19:32:47] [PASSED] 39 VFs
[19:32:47] [PASSED] 40 VFs
[19:32:47] [PASSED] 41 VFs
[19:32:47] [PASSED] 42 VFs
[19:32:47] [PASSED] 43 VFs
[19:32:47] [PASSED] 44 VFs
[19:32:47] [PASSED] 45 VFs
[19:32:47] [PASSED] 46 VFs
[19:32:47] [PASSED] 47 VFs
[19:32:47] [PASSED] 48 VFs
[19:32:47] [PASSED] 49 VFs
[19:32:47] [PASSED] 50 VFs
[19:32:47] [PASSED] 51 VFs
[19:32:47] [PASSED] 52 VFs
[19:32:47] [PASSED] 53 VFs
[19:32:47] [PASSED] 54 VFs
[19:32:47] [PASSED] 55 VFs
[19:32:47] [PASSED] 56 VFs
[19:32:47] [PASSED] 57 VFs
[19:32:47] [PASSED] 58 VFs
[19:32:47] [PASSED] 59 VFs
[19:32:47] [PASSED] 60 VFs
[19:32:47] [PASSED] 61 VFs
[19:32:47] [PASSED] 62 VFs
[19:32:47] [PASSED] 63 VFs
[19:32:47] ================== [PASSED] fair_contexts ==================
[19:32:47] ===================== fair_doorbells  ======================
[19:32:47] [PASSED] 1 VF
[19:32:47] [PASSED] 2 VFs
[19:32:47] [PASSED] 3 VFs
[19:32:47] [PASSED] 4 VFs
[19:32:47] [PASSED] 5 VFs
[19:32:47] [PASSED] 6 VFs
[19:32:47] [PASSED] 7 VFs
[19:32:47] [PASSED] 8 VFs
[19:32:47] [PASSED] 9 VFs
[19:32:47] [PASSED] 10 VFs
[19:32:47] [PASSED] 11 VFs
[19:32:47] [PASSED] 12 VFs
[19:32:47] [PASSED] 13 VFs
[19:32:47] [PASSED] 14 VFs
[19:32:47] [PASSED] 15 VFs
[19:32:47] [PASSED] 16 VFs
[19:32:47] [PASSED] 17 VFs
[19:32:47] [PASSED] 18 VFs
[19:32:47] [PASSED] 19 VFs
[19:32:47] [PASSED] 20 VFs
[19:32:47] [PASSED] 21 VFs
[19:32:47] [PASSED] 22 VFs
[19:32:47] [PASSED] 23 VFs
[19:32:47] [PASSED] 24 VFs
[19:32:47] [PASSED] 25 VFs
[19:32:47] [PASSED] 26 VFs
[19:32:47] [PASSED] 27 VFs
[19:32:47] [PASSED] 28 VFs
[19:32:47] [PASSED] 29 VFs
[19:32:47] [PASSED] 30 VFs
[19:32:47] [PASSED] 31 VFs
[19:32:47] [PASSED] 32 VFs
[19:32:47] [PASSED] 33 VFs
[19:32:47] [PASSED] 34 VFs
[19:32:47] [PASSED] 35 VFs
[19:32:47] [PASSED] 36 VFs
[19:32:47] [PASSED] 37 VFs
[19:32:47] [PASSED] 38 VFs
[19:32:47] [PASSED] 39 VFs
[19:32:47] [PASSED] 40 VFs
[19:32:47] [PASSED] 41 VFs
[19:32:47] [PASSED] 42 VFs
[19:32:47] [PASSED] 43 VFs
[19:32:47] [PASSED] 44 VFs
[19:32:47] [PASSED] 45 VFs
[19:32:47] [PASSED] 46 VFs
[19:32:47] [PASSED] 47 VFs
[19:32:47] [PASSED] 48 VFs
[19:32:47] [PASSED] 49 VFs
[19:32:47] [PASSED] 50 VFs
[19:32:47] [PASSED] 51 VFs
[19:32:47] [PASSED] 52 VFs
[19:32:47] [PASSED] 53 VFs
[19:32:47] [PASSED] 54 VFs
[19:32:47] [PASSED] 55 VFs
[19:32:47] [PASSED] 56 VFs
[19:32:47] [PASSED] 57 VFs
[19:32:47] [PASSED] 58 VFs
[19:32:47] [PASSED] 59 VFs
[19:32:47] [PASSED] 60 VFs
[19:32:47] [PASSED] 61 VFs
[19:32:47] [PASSED] 62 VFs
[19:32:47] [PASSED] 63 VFs
[19:32:47] ================= [PASSED] fair_doorbells ==================
[19:32:47] ======================== fair_ggtt  ========================
[19:32:47] [PASSED] 1 VF
[19:32:47] [PASSED] 2 VFs
[19:32:47] [PASSED] 3 VFs
[19:32:47] [PASSED] 4 VFs
[19:32:47] [PASSED] 5 VFs
[19:32:47] [PASSED] 6 VFs
[19:32:47] [PASSED] 7 VFs
[19:32:47] [PASSED] 8 VFs
[19:32:47] [PASSED] 9 VFs
[19:32:47] [PASSED] 10 VFs
[19:32:47] [PASSED] 11 VFs
[19:32:47] [PASSED] 12 VFs
[19:32:47] [PASSED] 13 VFs
[19:32:47] [PASSED] 14 VFs
[19:32:47] [PASSED] 15 VFs
[19:32:47] [PASSED] 16 VFs
[19:32:47] [PASSED] 17 VFs
[19:32:47] [PASSED] 18 VFs
[19:32:47] [PASSED] 19 VFs
[19:32:47] [PASSED] 20 VFs
[19:32:47] [PASSED] 21 VFs
[19:32:47] [PASSED] 22 VFs
[19:32:47] [PASSED] 23 VFs
[19:32:47] [PASSED] 24 VFs
[19:32:47] [PASSED] 25 VFs
[19:32:47] [PASSED] 26 VFs
[19:32:47] [PASSED] 27 VFs
[19:32:47] [PASSED] 28 VFs
[19:32:47] [PASSED] 29 VFs
[19:32:47] [PASSED] 30 VFs
[19:32:47] [PASSED] 31 VFs
[19:32:47] [PASSED] 32 VFs
[19:32:47] [PASSED] 33 VFs
[19:32:47] [PASSED] 34 VFs
[19:32:47] [PASSED] 35 VFs
[19:32:47] [PASSED] 36 VFs
[19:32:47] [PASSED] 37 VFs
[19:32:47] [PASSED] 38 VFs
[19:32:47] [PASSED] 39 VFs
[19:32:47] [PASSED] 40 VFs
[19:32:47] [PASSED] 41 VFs
[19:32:47] [PASSED] 42 VFs
[19:32:47] [PASSED] 43 VFs
[19:32:47] [PASSED] 44 VFs
[19:32:47] [PASSED] 45 VFs
[19:32:47] [PASSED] 46 VFs
[19:32:47] [PASSED] 47 VFs
[19:32:47] [PASSED] 48 VFs
[19:32:47] [PASSED] 49 VFs
[19:32:47] [PASSED] 50 VFs
[19:32:47] [PASSED] 51 VFs
[19:32:47] [PASSED] 52 VFs
[19:32:47] [PASSED] 53 VFs
[19:32:47] [PASSED] 54 VFs
[19:32:47] [PASSED] 55 VFs
[19:32:47] [PASSED] 56 VFs
[19:32:47] [PASSED] 57 VFs
[19:32:47] [PASSED] 58 VFs
[19:32:47] [PASSED] 59 VFs
[19:32:47] [PASSED] 60 VFs
[19:32:47] [PASSED] 61 VFs
[19:32:47] [PASSED] 62 VFs
[19:32:47] [PASSED] 63 VFs
[19:32:47] ==================== [PASSED] fair_ggtt ====================
[19:32:47] ======================== fair_vram  ========================
[19:32:47] [PASSED] 1 VF
[19:32:47] [PASSED] 2 VFs
[19:32:47] [PASSED] 3 VFs
[19:32:47] [PASSED] 4 VFs
[19:32:47] [PASSED] 5 VFs
[19:32:47] [PASSED] 6 VFs
[19:32:47] [PASSED] 7 VFs
[19:32:47] [PASSED] 8 VFs
[19:32:47] [PASSED] 9 VFs
[19:32:47] [PASSED] 10 VFs
[19:32:47] [PASSED] 11 VFs
[19:32:47] [PASSED] 12 VFs
[19:32:47] [PASSED] 13 VFs
[19:32:47] [PASSED] 14 VFs
[19:32:47] [PASSED] 15 VFs
[19:32:47] [PASSED] 16 VFs
[19:32:47] [PASSED] 17 VFs
[19:32:47] [PASSED] 18 VFs
[19:32:47] [PASSED] 19 VFs
[19:32:47] [PASSED] 20 VFs
[19:32:47] [PASSED] 21 VFs
[19:32:47] [PASSED] 22 VFs
[19:32:47] [PASSED] 23 VFs
[19:32:47] [PASSED] 24 VFs
[19:32:47] [PASSED] 25 VFs
[19:32:47] [PASSED] 26 VFs
[19:32:47] [PASSED] 27 VFs
[19:32:47] [PASSED] 28 VFs
[19:32:47] [PASSED] 29 VFs
[19:32:47] [PASSED] 30 VFs
[19:32:47] [PASSED] 31 VFs
[19:32:47] [PASSED] 32 VFs
[19:32:47] [PASSED] 33 VFs
[19:32:47] [PASSED] 34 VFs
[19:32:47] [PASSED] 35 VFs
[19:32:47] [PASSED] 36 VFs
[19:32:47] [PASSED] 37 VFs
[19:32:47] [PASSED] 38 VFs
[19:32:47] [PASSED] 39 VFs
[19:32:47] [PASSED] 40 VFs
[19:32:47] [PASSED] 41 VFs
[19:32:47] [PASSED] 42 VFs
[19:32:47] [PASSED] 43 VFs
[19:32:47] [PASSED] 44 VFs
[19:32:47] [PASSED] 45 VFs
[19:32:47] [PASSED] 46 VFs
[19:32:47] [PASSED] 47 VFs
[19:32:47] [PASSED] 48 VFs
[19:32:47] [PASSED] 49 VFs
[19:32:47] [PASSED] 50 VFs
[19:32:47] [PASSED] 51 VFs
[19:32:47] [PASSED] 52 VFs
[19:32:47] [PASSED] 53 VFs
[19:32:47] [PASSED] 54 VFs
[19:32:47] [PASSED] 55 VFs
[19:32:47] [PASSED] 56 VFs
[19:32:47] [PASSED] 57 VFs
[19:32:47] [PASSED] 58 VFs
[19:32:47] [PASSED] 59 VFs
[19:32:47] [PASSED] 60 VFs
[19:32:47] [PASSED] 61 VFs
[19:32:47] [PASSED] 62 VFs
[19:32:47] [PASSED] 63 VFs
[19:32:47] ==================== [PASSED] fair_vram ====================
[19:32:47] ================== [PASSED] pf_gt_config ===================
[19:32:47] ===================== lmtt (1 subtest) =====================
[19:32:47] ======================== test_ops  =========================
[19:32:47] [PASSED] 2-level
[19:32:47] [PASSED] multi-level
[19:32:47] ==================== [PASSED] test_ops =====================
[19:32:47] ====================== [PASSED] lmtt =======================
[19:32:47] ================= pf_service (11 subtests) =================
[19:32:47] [PASSED] pf_negotiate_any
[19:32:47] [PASSED] pf_negotiate_base_match
[19:32:47] [PASSED] pf_negotiate_base_newer
[19:32:47] [PASSED] pf_negotiate_base_next
[19:32:47] [SKIPPED] pf_negotiate_base_older
[19:32:47] [PASSED] pf_negotiate_base_prev
[19:32:47] [PASSED] pf_negotiate_latest_match
[19:32:47] [PASSED] pf_negotiate_latest_newer
[19:32:47] [PASSED] pf_negotiate_latest_next
[19:32:47] [SKIPPED] pf_negotiate_latest_older
[19:32:47] [SKIPPED] pf_negotiate_latest_prev
[19:32:47] =================== [PASSED] pf_service ====================
[19:32:47] ================= xe_guc_g2g (2 subtests) ==================
[19:32:47] ============== xe_live_guc_g2g_kunit_default  ==============
[19:32:47] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[19:32:47] ============== xe_live_guc_g2g_kunit_allmem  ===============
[19:32:47] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[19:32:47] =================== [SKIPPED] xe_guc_g2g ===================
[19:32:47] =================== xe_mocs (2 subtests) ===================
[19:32:47] ================ xe_live_mocs_kernel_kunit  ================
[19:32:47] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[19:32:47] ================ xe_live_mocs_reset_kunit  =================
[19:32:47] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[19:32:47] ==================== [SKIPPED] xe_mocs =====================
[19:32:47] ================= xe_migrate (2 subtests) ==================
[19:32:47] ================= xe_migrate_sanity_kunit  =================
[19:32:47] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[19:32:47] ================== xe_validate_ccs_kunit  ==================
[19:32:47] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[19:32:47] =================== [SKIPPED] xe_migrate ===================
[19:32:47] ================== xe_dma_buf (1 subtest) ==================
[19:32:47] ==================== xe_dma_buf_kunit  =====================
[19:32:47] ================ [SKIPPED] xe_dma_buf_kunit ================
[19:32:47] =================== [SKIPPED] xe_dma_buf ===================
[19:32:47] ================= xe_bo_shrink (1 subtest) =================
[19:32:47] =================== xe_bo_shrink_kunit  ====================
[19:32:47] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[19:32:47] ================== [SKIPPED] xe_bo_shrink ==================
[19:32:47] ==================== xe_bo (2 subtests) ====================
[19:32:47] ================== xe_ccs_migrate_kunit  ===================
[19:32:47] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[19:32:47] ==================== xe_bo_evict_kunit  ====================
[19:32:47] =============== [SKIPPED] xe_bo_evict_kunit ================
[19:32:47] ===================== [SKIPPED] xe_bo ======================
[19:32:47] ==================== args (13 subtests) ====================
[19:32:47] [PASSED] count_args_test
[19:32:47] [PASSED] call_args_example
[19:32:47] [PASSED] call_args_test
[19:32:47] [PASSED] drop_first_arg_example
[19:32:47] [PASSED] drop_first_arg_test
[19:32:47] [PASSED] first_arg_example
[19:32:47] [PASSED] first_arg_test
[19:32:47] [PASSED] last_arg_example
[19:32:47] [PASSED] last_arg_test
[19:32:47] [PASSED] pick_arg_example
[19:32:47] [PASSED] if_args_example
[19:32:47] [PASSED] if_args_test
[19:32:47] [PASSED] sep_comma_example
[19:32:47] ====================== [PASSED] args =======================
[19:32:47] =================== xe_pci (3 subtests) ====================
[19:32:47] ==================== check_graphics_ip  ====================
[19:32:47] [PASSED] 12.00 Xe_LP
[19:32:47] [PASSED] 12.10 Xe_LP+
[19:32:47] [PASSED] 12.55 Xe_HPG
[19:32:47] [PASSED] 12.60 Xe_HPC
[19:32:47] [PASSED] 12.70 Xe_LPG
[19:32:47] [PASSED] 12.71 Xe_LPG
[19:32:47] [PASSED] 12.74 Xe_LPG+
[19:32:47] [PASSED] 20.01 Xe2_HPG
[19:32:47] [PASSED] 20.02 Xe2_HPG
[19:32:47] [PASSED] 20.04 Xe2_LPG
[19:32:47] [PASSED] 30.00 Xe3_LPG
[19:32:47] [PASSED] 30.01 Xe3_LPG
[19:32:47] [PASSED] 30.03 Xe3_LPG
[19:32:47] [PASSED] 30.04 Xe3_LPG
[19:32:47] [PASSED] 30.05 Xe3_LPG
[19:32:47] [PASSED] 35.10 Xe3p_LPG
[19:32:47] [PASSED] 35.11 Xe3p_XPC
[19:32:47] ================ [PASSED] check_graphics_ip ================
[19:32:47] ===================== check_media_ip  ======================
[19:32:47] [PASSED] 12.00 Xe_M
[19:32:47] [PASSED] 12.55 Xe_HPM
[19:32:47] [PASSED] 13.00 Xe_LPM+
[19:32:47] [PASSED] 13.01 Xe2_HPM
[19:32:47] [PASSED] 20.00 Xe2_LPM
[19:32:47] [PASSED] 30.00 Xe3_LPM
[19:32:47] [PASSED] 30.02 Xe3_LPM
[19:32:47] [PASSED] 35.00 Xe3p_LPM
[19:32:47] [PASSED] 35.03 Xe3p_HPM
[19:32:47] ================= [PASSED] check_media_ip ==================
[19:32:47] =================== check_platform_desc  ===================
[19:32:47] [PASSED] 0x9A60 (TIGERLAKE)
[19:32:47] [PASSED] 0x9A68 (TIGERLAKE)
[19:32:47] [PASSED] 0x9A70 (TIGERLAKE)
[19:32:47] [PASSED] 0x9A40 (TIGERLAKE)
[19:32:47] [PASSED] 0x9A49 (TIGERLAKE)
[19:32:47] [PASSED] 0x9A59 (TIGERLAKE)
[19:32:47] [PASSED] 0x9A78 (TIGERLAKE)
[19:32:47] [PASSED] 0x9AC0 (TIGERLAKE)
[19:32:47] [PASSED] 0x9AC9 (TIGERLAKE)
[19:32:47] [PASSED] 0x9AD9 (TIGERLAKE)
[19:32:47] [PASSED] 0x9AF8 (TIGERLAKE)
[19:32:47] [PASSED] 0x4C80 (ROCKETLAKE)
[19:32:47] [PASSED] 0x4C8A (ROCKETLAKE)
[19:32:47] [PASSED] 0x4C8B (ROCKETLAKE)
[19:32:47] [PASSED] 0x4C8C (ROCKETLAKE)
[19:32:47] [PASSED] 0x4C90 (ROCKETLAKE)
[19:32:47] [PASSED] 0x4C9A (ROCKETLAKE)
[19:32:47] [PASSED] 0x4680 (ALDERLAKE_S)
[19:32:47] [PASSED] 0x4682 (ALDERLAKE_S)
[19:32:47] [PASSED] 0x4688 (ALDERLAKE_S)
[19:32:47] [PASSED] 0x468A (ALDERLAKE_S)
[19:32:47] [PASSED] 0x468B (ALDERLAKE_S)
[19:32:47] [PASSED] 0x4690 (ALDERLAKE_S)
[19:32:47] [PASSED] 0x4692 (ALDERLAKE_S)
[19:32:47] [PASSED] 0x4693 (ALDERLAKE_S)
[19:32:47] [PASSED] 0x46A0 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46A1 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46A2 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46A3 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46A6 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46A8 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46AA (ALDERLAKE_P)
[19:32:47] [PASSED] 0x462A (ALDERLAKE_P)
[19:32:47] [PASSED] 0x4626 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x4628 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46B0 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46B1 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46B2 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46B3 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46C0 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46C1 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46C2 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46C3 (ALDERLAKE_P)
[19:32:47] [PASSED] 0x46D0 (ALDERLAKE_N)
[19:32:47] [PASSED] 0x46D1 (ALDERLAKE_N)
[19:32:47] [PASSED] 0x46D2 (ALDERLAKE_N)
[19:32:47] [PASSED] 0x46D3 (ALDERLAKE_N)
[19:32:47] [PASSED] 0x46D4 (ALDERLAKE_N)
[19:32:47] [PASSED] 0xA721 (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7A1 (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7A9 (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7AC (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7AD (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA720 (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7A0 (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7A8 (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7AA (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA7AB (ALDERLAKE_P)
[19:32:47] [PASSED] 0xA780 (ALDERLAKE_S)
[19:32:47] [PASSED] 0xA781 (ALDERLAKE_S)
[19:32:47] [PASSED] 0xA782 (ALDERLAKE_S)
[19:32:47] [PASSED] 0xA783 (ALDERLAKE_S)
[19:32:47] [PASSED] 0xA788 (ALDERLAKE_S)
[19:32:47] [PASSED] 0xA789 (ALDERLAKE_S)
[19:32:47] [PASSED] 0xA78A (ALDERLAKE_S)
[19:32:47] [PASSED] 0xA78B (ALDERLAKE_S)
[19:32:47] [PASSED] 0x4905 (DG1)
[19:32:47] [PASSED] 0x4906 (DG1)
[19:32:47] [PASSED] 0x4907 (DG1)
[19:32:47] [PASSED] 0x4908 (DG1)
[19:32:47] [PASSED] 0x4909 (DG1)
[19:32:47] [PASSED] 0x56C0 (DG2)
[19:32:47] [PASSED] 0x56C2 (DG2)
[19:32:47] [PASSED] 0x56C1 (DG2)
[19:32:47] [PASSED] 0x7D51 (METEORLAKE)
[19:32:47] [PASSED] 0x7DD1 (METEORLAKE)
[19:32:47] [PASSED] 0x7D41 (METEORLAKE)
[19:32:47] [PASSED] 0x7D67 (METEORLAKE)
[19:32:47] [PASSED] 0xB640 (METEORLAKE)
[19:32:47] [PASSED] 0x56A0 (DG2)
[19:32:47] [PASSED] 0x56A1 (DG2)
[19:32:47] [PASSED] 0x56A2 (DG2)
[19:32:47] [PASSED] 0x56BE (DG2)
[19:32:47] [PASSED] 0x56BF (DG2)
[19:32:47] [PASSED] 0x5690 (DG2)
[19:32:47] [PASSED] 0x5691 (DG2)
[19:32:47] [PASSED] 0x5692 (DG2)
[19:32:47] [PASSED] 0x56A5 (DG2)
[19:32:47] [PASSED] 0x56A6 (DG2)
[19:32:47] [PASSED] 0x56B0 (DG2)
[19:32:47] [PASSED] 0x56B1 (DG2)
[19:32:47] [PASSED] 0x56BA (DG2)
[19:32:47] [PASSED] 0x56BB (DG2)
[19:32:47] [PASSED] 0x56BC (DG2)
[19:32:47] [PASSED] 0x56BD (DG2)
[19:32:47] [PASSED] 0x5693 (DG2)
[19:32:47] [PASSED] 0x5694 (DG2)
[19:32:47] [PASSED] 0x5695 (DG2)
[19:32:47] [PASSED] 0x56A3 (DG2)
[19:32:47] [PASSED] 0x56A4 (DG2)
[19:32:47] [PASSED] 0x56B2 (DG2)
[19:32:47] [PASSED] 0x56B3 (DG2)
[19:32:47] [PASSED] 0x5696 (DG2)
[19:32:47] [PASSED] 0x5697 (DG2)
[19:32:47] [PASSED] 0xB69 (PVC)
[19:32:47] [PASSED] 0xB6E (PVC)
[19:32:47] [PASSED] 0xBD4 (PVC)
[19:32:47] [PASSED] 0xBD5 (PVC)
[19:32:47] [PASSED] 0xBD6 (PVC)
[19:32:47] [PASSED] 0xBD7 (PVC)
[19:32:47] [PASSED] 0xBD8 (PVC)
[19:32:47] [PASSED] 0xBD9 (PVC)
[19:32:47] [PASSED] 0xBDA (PVC)
[19:32:47] [PASSED] 0xBDB (PVC)
[19:32:47] [PASSED] 0xBE0 (PVC)
[19:32:47] [PASSED] 0xBE1 (PVC)
[19:32:47] [PASSED] 0xBE5 (PVC)
[19:32:47] [PASSED] 0x7D40 (METEORLAKE)
[19:32:47] [PASSED] 0x7D45 (METEORLAKE)
[19:32:47] [PASSED] 0x7D55 (METEORLAKE)
[19:32:47] [PASSED] 0x7D60 (METEORLAKE)
[19:32:47] [PASSED] 0x7DD5 (METEORLAKE)
[19:32:47] [PASSED] 0x6420 (LUNARLAKE)
[19:32:47] [PASSED] 0x64A0 (LUNARLAKE)
[19:32:47] [PASSED] 0x64B0 (LUNARLAKE)
[19:32:47] [PASSED] 0xE202 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE209 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE20B (BATTLEMAGE)
[19:32:47] [PASSED] 0xE20C (BATTLEMAGE)
[19:32:47] [PASSED] 0xE20D (BATTLEMAGE)
[19:32:47] [PASSED] 0xE210 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE211 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE212 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE216 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE220 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE221 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE222 (BATTLEMAGE)
[19:32:47] [PASSED] 0xE223 (BATTLEMAGE)
[19:32:47] [PASSED] 0xB080 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB081 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB082 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB083 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB084 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB085 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB086 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB087 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB08F (PANTHERLAKE)
[19:32:47] [PASSED] 0xB090 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB0A0 (PANTHERLAKE)
[19:32:47] [PASSED] 0xB0B0 (PANTHERLAKE)
[19:32:47] [PASSED] 0xFD80 (PANTHERLAKE)
[19:32:47] [PASSED] 0xFD81 (PANTHERLAKE)
[19:32:47] [PASSED] 0xD740 (NOVALAKE_S)
[19:32:47] [PASSED] 0xD741 (NOVALAKE_S)
[19:32:47] [PASSED] 0xD742 (NOVALAKE_S)
[19:32:47] [PASSED] 0xD743 (NOVALAKE_S)
[19:32:47] [PASSED] 0xD745 (NOVALAKE_S)
[19:32:47] [PASSED] 0xD74A (NOVALAKE_S)
[19:32:47] [PASSED] 0xD74B (NOVALAKE_S)
[19:32:47] [PASSED] 0x674C (CRESCENTISLAND)
[19:32:47] [PASSED] 0x674D (CRESCENTISLAND)
[19:32:47] [PASSED] 0x674E (CRESCENTISLAND)
[19:32:47] [PASSED] 0x674F (CRESCENTISLAND)
[19:32:47] [PASSED] 0x6750 (CRESCENTISLAND)
[19:32:47] [PASSED] 0xD750 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD751 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD752 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD753 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD754 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD755 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD756 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD757 (NOVALAKE_P)
[19:32:47] [PASSED] 0xD75F (NOVALAKE_P)
[19:32:47] =============== [PASSED] check_platform_desc ===============
[19:32:47] ===================== [PASSED] xe_pci ======================
[19:32:47] ============= xe_rtp_tables_test (4 subtests) ==============
[19:32:47] ================== xe_rtp_table_gt_test  ===================
[19:32:47] [PASSED] gt_was/14011060649
[19:32:47] [PASSED] gt_was/14011059788
[19:32:47] [PASSED] gt_was/14015795083
[19:32:47] [PASSED] gt_was/16021867713
[19:32:47] [PASSED] gt_was/14019449301
[19:32:47] [PASSED] gt_was/16028005424
[19:32:47] [PASSED] gt_was/14026578760
[19:32:47] [PASSED] gt_was/1409420604
[19:32:47] [PASSED] gt_was/1408615072
[19:32:47] [PASSED] gt_was/22010523718
[19:32:47] [PASSED] gt_was/14011006942
[19:32:47] [PASSED] gt_was/14014830051
[19:32:47] [PASSED] gt_was/18018781329
[19:32:47] [PASSED] gt_was/1509235366
[19:32:47] [PASSED] gt_was/18018781329
[19:32:47] [PASSED] gt_was/16016694945
[19:32:47] [PASSED] gt_was/14018575942
[19:32:47] [PASSED] gt_was/22016670082
[19:32:47] [PASSED] gt_was/22016670082
[19:32:47] [PASSED] gt_was/14017421178
[19:32:47] [PASSED] gt_was/16025250150
[19:32:47] [PASSED] gt_was/14021871409
[19:32:47] [PASSED] gt_was/16021865536
[19:32:47] [PASSED] gt_was/14021486841
[19:32:47] [PASSED] gt_was/14025160223
[19:32:47] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[19:32:47] [PASSED] gt_was/14025635424
[19:32:47] [PASSED] gt_was/16028005424
[19:32:47] ============== [PASSED] xe_rtp_table_gt_test ===============
[19:32:47] ================== xe_rtp_table_gt_test  ===================
[19:32:47] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[19:32:47] [PASSED] gt_tunings/Tuning: 32B Access Enable
[19:32:47] [PASSED] gt_tunings/Tuning: L3 cache
[19:32:47] [PASSED] gt_tunings/Tuning: L3 cache - media
[19:32:47] [PASSED] gt_tunings/Tuning: Compression Overfetch
[19:32:47] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[19:32:47] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[19:32:47] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[19:32:47] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[19:32:47] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[19:32:47] [PASSED] gt_tunings/Tuning: Stateless compression control
[19:32:47] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[19:32:47] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[19:32:47] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[19:32:47] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[19:32:47] ============== [PASSED] xe_rtp_table_gt_test ===============
[19:32:47] ================== xe_rtp_table_oob_test  ==================
[19:32:47] [PASSED] oob_was/1607983814
[19:32:47] [PASSED] oob_was/16010904313
[19:32:47] [PASSED] oob_was/18022495364
[19:32:47] [PASSED] oob_was/22012773006
[19:32:47] [PASSED] oob_was/14014475959
[19:32:47] [PASSED] oob_was/22011391025
[19:32:47] [PASSED] oob_was/22012727170
[19:32:47] [PASSED] oob_was/22012727685
[19:32:47] [PASSED] oob_was/22016596838
[19:32:47] [PASSED] oob_was/18020744125
[19:32:47] [PASSED] oob_was/1409600907
[19:32:47] [PASSED] oob_was/22014953428
[19:32:47] [PASSED] oob_was/16017236439
[19:32:47] [PASSED] oob_was/14019821291
[19:32:47] [PASSED] oob_was/14015076503
[19:32:47] [PASSED] oob_was/14018913170
[19:32:47] [PASSED] oob_was/14018094691
[19:32:47] [PASSED] oob_was/18024947630
[19:32:47] [PASSED] oob_was/16022287689
[19:32:47] [PASSED] oob_was/13011645652
[19:32:47] [PASSED] oob_was/14022293748
[19:32:47] [PASSED] oob_was/22019794406
[19:32:47] [PASSED] oob_was/22019338487
[19:32:47] [PASSED] oob_was/16023588340
[19:32:47] [PASSED] oob_was/14019789679
[19:32:47] [PASSED] oob_was/14022866841
[19:32:47] [PASSED] oob_was/16021333562
[19:32:47] [PASSED] oob_was/14016712196
[19:32:47] [PASSED] oob_was/14015568240
[19:32:47] [PASSED] oob_was/18013179988
[19:32:47] [PASSED] oob_was/1508761755
[19:32:47] [PASSED] oob_was/16023105232
[19:32:47] [PASSED] oob_was/16026508708
[19:32:47] [PASSED] oob_was/14020001231
[19:32:47] [PASSED] oob_was/16023683509
[19:32:47] [PASSED] oob_was/14025515070
[19:32:47] [PASSED] oob_was/15015404425_disable
[19:32:47] [PASSED] oob_was/16026007364
[19:32:47] [PASSED] oob_was/14020316580
[19:32:47] [PASSED] oob_was/14025883347
[19:32:47] [PASSED] oob_was/16029380221
[19:32:47] ============== [PASSED] xe_rtp_table_oob_test ==============
[19:32:47] ================ xe_rtp_table_dev_oob_test  ================
[19:32:47] [PASSED] device_oob_was/22010954014
[19:32:47] [PASSED] device_oob_was/15015404425
[19:32:47] [PASSED] device_oob_was/22019338487_display
[19:32:47] [PASSED] device_oob_was/14022085890
[19:32:47] [PASSED] device_oob_was/14026539277
[19:32:47] [PASSED] device_oob_was/14026633728
[19:32:47] [PASSED] device_oob_was/14026746987
[19:32:47] [PASSED] device_oob_was/14026779378
[19:32:47] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[19:32:47] =============== [PASSED] xe_rtp_tables_test ================
[19:32:47] =================== xe_rtp (3 subtests) ====================
[19:32:47] =================== xe_rtp_rules_tests  ====================
[19:32:47] [PASSED] no
[19:32:47] [PASSED] yes
[19:32:47] [PASSED] no-and-no
[19:32:47] [PASSED] no-and-yes
[19:32:47] [PASSED] yes-and-no
[19:32:47] [PASSED] yes-and-yes
[19:32:47] [PASSED] no-or-no
[19:32:47] [PASSED] no-or-yes
[19:32:47] [PASSED] yes-or-no
[19:32:47] [PASSED] yes-or-yes
[19:32:47] [PASSED] no-yes-or-yes-no
[19:32:47] [PASSED] no-yes-or-yes-yes
[19:32:47] [PASSED] yes-yes-or-no-yes
[19:32:47] [PASSED] yes-yes-or-yes-yes
[19:32:47] [PASSED] no-no-or-yes-or-no
[19:32:47] [PASSED] or
[19:32:47] [PASSED] or-yes
[19:32:47] [PASSED] or-no
[19:32:47] [PASSED] yes-or
[19:32:47] [PASSED] no-or
[19:32:47] [PASSED] no-or-or-yes
[19:32:47] [PASSED] yes-or-or-no
[19:32:47] [PASSED] no-or-or-no
[19:32:47] [PASSED] missing-context-engine-class
[19:32:47] [PASSED] missing-context-engine-class-or-yes
[19:32:47] [PASSED] missing-context-engine-class-or-or-yes
[19:32:47] =============== [PASSED] xe_rtp_rules_tests ================
[19:32:47] =============== xe_rtp_process_to_sr_tests  ================
[19:32:47] [PASSED] coalesce-same-reg
[19:32:47] [PASSED] coalesce-same-reg-literal-and-func
[19:32:47] [PASSED] no-match-no-add
[19:32:47] [PASSED] two-regs-two-entries
[19:32:47] [PASSED] clr-one-set-other
[19:32:47] [PASSED] set-field
[19:32:47] [PASSED] conflict-duplicate
[19:32:47] [PASSED] conflict-not-disjoint
[19:32:47] [PASSED] conflict-not-disjoint-literal-and-func
[19:32:47] [PASSED] conflict-reg-type
[19:32:47] [PASSED] bad-mcr-reg-forced-to-regular
[19:32:47] [PASSED] bad-regular-reg-forced-to-mcr
[19:32:47] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[19:32:47] ================== xe_rtp_process_tests  ===================
[19:32:47] [PASSED] active1
[19:32:47] [PASSED] active2
[19:32:47] [PASSED] active-inactive
[19:32:47] [PASSED] inactive-active
[19:32:47] [PASSED] inactive-active-inactive
[19:32:47] [PASSED] inactive-inactive-inactive
[19:32:47] ============== [PASSED] xe_rtp_process_tests ===============
[19:32:47] ===================== [PASSED] xe_rtp ======================
[19:32:47] ==================== xe_wa (1 subtest) =====================
[19:32:47] ======================== xe_wa_gt  =========================
[19:32:47] [PASSED] TIGERLAKE B0
[19:32:47] [PASSED] DG1 A0
[19:32:47] [PASSED] DG1 B0
[19:32:47] [PASSED] ALDERLAKE_S A0
[19:32:47] [PASSED] ALDERLAKE_S B0
[19:32:47] [PASSED] ALDERLAKE_S C0
[19:32:47] [PASSED] ALDERLAKE_S D0
[19:32:47] [PASSED] ALDERLAKE_P A0
[19:32:47] [PASSED] ALDERLAKE_P B0
[19:32:47] [PASSED] ALDERLAKE_P C0
[19:32:47] [PASSED] ALDERLAKE_S RPLS D0
[19:32:47] [PASSED] ALDERLAKE_P RPLU E0
[19:32:47] [PASSED] DG2 G10 C0
[19:32:47] [PASSED] DG2 G11 B1
[19:32:47] [PASSED] DG2 G12 A1
[19:32:47] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[19:32:47] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[19:32:47] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[19:32:47] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[19:32:47] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[19:32:47] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[19:32:47] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[19:32:47] ==================== [PASSED] xe_wa_gt =====================
[19:32:47] ====================== [PASSED] xe_wa ======================
[19:32:47] ============================================================
[19:32:47] Testing complete. Ran 719 tests: passed: 701, skipped: 18
[19:32:47] Elapsed time: 36.164s total, 4.303s configuring, 31.193s building, 0.649s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[19:32:47] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[19:32:49] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[19:33:13] Starting KUnit Kernel (1/1)...
[19:33:13] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[19:33:13] ============ drm_test_pick_cmdline (2 subtests) ============
[19:33:13] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[19:33:13] =============== drm_test_pick_cmdline_named  ===============
[19:33:13] [PASSED] NTSC
[19:33:13] [PASSED] NTSC-J
[19:33:13] [PASSED] PAL
[19:33:13] [PASSED] PAL-M
[19:33:13] =========== [PASSED] drm_test_pick_cmdline_named ===========
[19:33:13] ============== [PASSED] drm_test_pick_cmdline ==============
[19:33:13] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[19:33:13] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[19:33:13] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[19:33:13] =========== drm_validate_clone_mode (2 subtests) ===========
[19:33:13] ============== drm_test_check_in_clone_mode  ===============
[19:33:13] [PASSED] in_clone_mode
[19:33:13] [PASSED] not_in_clone_mode
[19:33:13] ========== [PASSED] drm_test_check_in_clone_mode ===========
[19:33:13] =============== drm_test_check_valid_clones  ===============
[19:33:13] [PASSED] not_in_clone_mode
[19:33:13] [PASSED] valid_clone
[19:33:13] [PASSED] invalid_clone
[19:33:13] =========== [PASSED] drm_test_check_valid_clones ===========
[19:33:13] ============= [PASSED] drm_validate_clone_mode =============
[19:33:13] ============= drm_validate_modeset (1 subtest) =============
[19:33:13] [PASSED] drm_test_check_connector_changed_modeset
[19:33:13] ============== [PASSED] drm_validate_modeset ===============
[19:33:13] ====== drm_test_bridge_get_current_state (2 subtests) ======
[19:33:13] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[19:33:13] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[19:33:13] ======== [PASSED] drm_test_bridge_get_current_state ========
[19:33:13] ====== drm_test_bridge_helper_reset_crtc (4 subtests) ======
[19:33:13] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[19:33:13] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[19:33:13] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[19:33:13] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[19:33:13] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[19:33:13] ============== drm_bridge_alloc (2 subtests) ===============
[19:33:13] [PASSED] drm_test_drm_bridge_alloc_basic
[19:33:13] [PASSED] drm_test_drm_bridge_alloc_get_put
[19:33:13] ================ [PASSED] drm_bridge_alloc =================
[19:33:13] ============= drm_bridge_bus_fmt (5 subtests) ==============
[19:33:13] [PASSED] drm_test_bridge_rgb_yuv_rgb
[19:33:13] [PASSED] drm_test_bridge_must_convert_to_yuv444
[19:33:13] [PASSED] drm_test_bridge_hdmi_auto_rgb
[19:33:13] [PASSED] drm_test_bridge_auto_first
[19:33:13] [PASSED] drm_test_bridge_rgb_yuv_no_path
[19:33:13] =============== [PASSED] drm_bridge_bus_fmt ================
[19:33:13] ============= drm_cmdline_parser (40 subtests) =============
[19:33:13] [PASSED] drm_test_cmdline_force_d_only
[19:33:13] [PASSED] drm_test_cmdline_force_D_only_dvi
[19:33:13] [PASSED] drm_test_cmdline_force_D_only_hdmi
[19:33:13] [PASSED] drm_test_cmdline_force_D_only_not_digital
[19:33:13] [PASSED] drm_test_cmdline_force_e_only
[19:33:13] [PASSED] drm_test_cmdline_res
[19:33:13] [PASSED] drm_test_cmdline_res_vesa
[19:33:13] [PASSED] drm_test_cmdline_res_vesa_rblank
[19:33:13] [PASSED] drm_test_cmdline_res_rblank
[19:33:13] [PASSED] drm_test_cmdline_res_bpp
[19:33:13] [PASSED] drm_test_cmdline_res_refresh
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[19:33:13] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[19:33:13] [PASSED] drm_test_cmdline_res_margins_force_on
[19:33:13] [PASSED] drm_test_cmdline_res_vesa_margins
[19:33:13] [PASSED] drm_test_cmdline_name
[19:33:13] [PASSED] drm_test_cmdline_name_bpp
[19:33:13] [PASSED] drm_test_cmdline_name_option
[19:33:13] [PASSED] drm_test_cmdline_name_bpp_option
[19:33:13] [PASSED] drm_test_cmdline_rotate_0
[19:33:13] [PASSED] drm_test_cmdline_rotate_90
[19:33:13] [PASSED] drm_test_cmdline_rotate_180
[19:33:13] [PASSED] drm_test_cmdline_rotate_270
[19:33:13] [PASSED] drm_test_cmdline_hmirror
[19:33:13] [PASSED] drm_test_cmdline_vmirror
[19:33:13] [PASSED] drm_test_cmdline_margin_options
[19:33:13] [PASSED] drm_test_cmdline_multiple_options
[19:33:13] [PASSED] drm_test_cmdline_bpp_extra_and_option
[19:33:13] [PASSED] drm_test_cmdline_extra_and_option
[19:33:13] [PASSED] drm_test_cmdline_freestanding_options
[19:33:13] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[19:33:13] [PASSED] drm_test_cmdline_panel_orientation
[19:33:13] ================ drm_test_cmdline_invalid  =================
[19:33:13] [PASSED] margin_only
[19:33:13] [PASSED] interlace_only
[19:33:13] [PASSED] res_missing_x
[19:33:13] [PASSED] res_missing_y
[19:33:13] [PASSED] res_bad_y
[19:33:13] [PASSED] res_missing_y_bpp
[19:33:13] [PASSED] res_bad_bpp
[19:33:13] [PASSED] res_bad_refresh
[19:33:13] [PASSED] res_bpp_refresh_force_on_off
[19:33:13] [PASSED] res_invalid_mode
[19:33:13] [PASSED] res_bpp_wrong_place_mode
[19:33:13] [PASSED] name_bpp_refresh
[19:33:13] [PASSED] name_refresh
[19:33:13] [PASSED] name_refresh_wrong_mode
[19:33:13] [PASSED] name_refresh_invalid_mode
[19:33:13] [PASSED] rotate_multiple
[19:33:13] [PASSED] rotate_invalid_val
[19:33:13] [PASSED] rotate_truncated
[19:33:13] [PASSED] invalid_option
[19:33:13] [PASSED] invalid_tv_option
[19:33:13] [PASSED] truncated_tv_option
[19:33:13] ============ [PASSED] drm_test_cmdline_invalid =============
[19:33:13] =============== drm_test_cmdline_tv_options  ===============
[19:33:13] [PASSED] NTSC
[19:33:13] [PASSED] NTSC_443
[19:33:13] [PASSED] NTSC_J
[19:33:13] [PASSED] PAL
[19:33:13] [PASSED] PAL_M
[19:33:13] [PASSED] PAL_N
[19:33:13] [PASSED] SECAM
[19:33:13] [PASSED] MONO_525
[19:33:13] [PASSED] MONO_625
[19:33:13] =========== [PASSED] drm_test_cmdline_tv_options ===========
[19:33:13] =============== [PASSED] drm_cmdline_parser ================
[19:33:13] ========== drmm_connector_hdmi_init (20 subtests) ==========
[19:33:13] [PASSED] drm_test_connector_hdmi_init_valid
[19:33:13] [PASSED] drm_test_connector_hdmi_init_bpc_8
[19:33:13] [PASSED] drm_test_connector_hdmi_init_bpc_10
[19:33:13] [PASSED] drm_test_connector_hdmi_init_bpc_12
[19:33:13] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[19:33:13] [PASSED] drm_test_connector_hdmi_init_bpc_null
[19:33:13] [PASSED] drm_test_connector_hdmi_init_formats_empty
[19:33:13] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[19:33:13] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[19:33:13] [PASSED] supported_formats=0x9 yuv420_allowed=1
[19:33:13] [PASSED] supported_formats=0x9 yuv420_allowed=0
[19:33:13] [PASSED] supported_formats=0x5 yuv420_allowed=1
[19:33:13] [PASSED] supported_formats=0x5 yuv420_allowed=0
[19:33:13] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[19:33:13] [PASSED] drm_test_connector_hdmi_init_null_ddc
[19:33:13] [PASSED] drm_test_connector_hdmi_init_null_product
[19:33:13] [PASSED] drm_test_connector_hdmi_init_null_vendor
[19:33:13] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[19:33:13] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[19:33:13] [PASSED] drm_test_connector_hdmi_init_product_valid
[19:33:13] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[19:33:13] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[19:33:13] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[19:33:13] ========= drm_test_connector_hdmi_init_type_valid  =========
[19:33:13] [PASSED] HDMI-A
[19:33:13] [PASSED] HDMI-B
[19:33:13] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[19:33:13] ======== drm_test_connector_hdmi_init_type_invalid  ========
[19:33:13] [PASSED] Unknown
[19:33:13] [PASSED] VGA
[19:33:13] [PASSED] DVI-I
[19:33:13] [PASSED] DVI-D
[19:33:13] [PASSED] DVI-A
[19:33:13] [PASSED] Composite
[19:33:13] [PASSED] SVIDEO
[19:33:13] [PASSED] LVDS
[19:33:13] [PASSED] Component
[19:33:13] [PASSED] DIN
[19:33:13] [PASSED] DP
[19:33:13] [PASSED] TV
[19:33:13] [PASSED] eDP
[19:33:13] [PASSED] Virtual
[19:33:13] [PASSED] DSI
[19:33:13] [PASSED] DPI
[19:33:13] [PASSED] Writeback
[19:33:13] [PASSED] SPI
[19:33:13] [PASSED] USB
[19:33:13] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[19:33:13] ============ [PASSED] drmm_connector_hdmi_init =============
[19:33:13] ============= drmm_connector_init (3 subtests) =============
[19:33:13] [PASSED] drm_test_drmm_connector_init
[19:33:13] [PASSED] drm_test_drmm_connector_init_null_ddc
[19:33:13] ========= drm_test_drmm_connector_init_type_valid  =========
[19:33:13] [PASSED] Unknown
[19:33:13] [PASSED] VGA
[19:33:13] [PASSED] DVI-I
[19:33:13] [PASSED] DVI-D
[19:33:13] [PASSED] DVI-A
[19:33:13] [PASSED] Composite
[19:33:13] [PASSED] SVIDEO
[19:33:13] [PASSED] LVDS
[19:33:13] [PASSED] Component
[19:33:13] [PASSED] DIN
[19:33:13] [PASSED] DP
[19:33:13] [PASSED] HDMI-A
[19:33:13] [PASSED] HDMI-B
[19:33:13] [PASSED] TV
[19:33:13] [PASSED] eDP
[19:33:13] [PASSED] Virtual
[19:33:13] [PASSED] DSI
[19:33:13] [PASSED] DPI
[19:33:13] [PASSED] Writeback
[19:33:13] [PASSED] SPI
[19:33:13] [PASSED] USB
[19:33:13] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[19:33:13] =============== [PASSED] drmm_connector_init ===============
[19:33:13] ========= drm_connector_dynamic_init (6 subtests) ==========
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_init
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_init_properties
[19:33:13] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[19:33:13] [PASSED] Unknown
[19:33:13] [PASSED] VGA
[19:33:13] [PASSED] DVI-I
[19:33:13] [PASSED] DVI-D
[19:33:13] [PASSED] DVI-A
[19:33:13] [PASSED] Composite
[19:33:13] [PASSED] SVIDEO
[19:33:13] [PASSED] LVDS
[19:33:13] [PASSED] Component
[19:33:13] [PASSED] DIN
[19:33:13] [PASSED] DP
[19:33:13] [PASSED] HDMI-A
[19:33:13] [PASSED] HDMI-B
[19:33:13] [PASSED] TV
[19:33:13] [PASSED] eDP
[19:33:13] [PASSED] Virtual
[19:33:13] [PASSED] DSI
[19:33:13] [PASSED] DPI
[19:33:13] [PASSED] Writeback
[19:33:13] [PASSED] SPI
[19:33:13] [PASSED] USB
[19:33:13] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[19:33:13] ======== drm_test_drm_connector_dynamic_init_name  =========
[19:33:13] [PASSED] Unknown
[19:33:13] [PASSED] VGA
[19:33:13] [PASSED] DVI-I
[19:33:13] [PASSED] DVI-D
[19:33:13] [PASSED] DVI-A
[19:33:13] [PASSED] Composite
[19:33:13] [PASSED] SVIDEO
[19:33:13] [PASSED] LVDS
[19:33:13] [PASSED] Component
[19:33:13] [PASSED] DIN
[19:33:13] [PASSED] DP
[19:33:13] [PASSED] HDMI-A
[19:33:13] [PASSED] HDMI-B
[19:33:13] [PASSED] TV
[19:33:13] [PASSED] eDP
[19:33:13] [PASSED] Virtual
[19:33:13] [PASSED] DSI
[19:33:13] [PASSED] DPI
[19:33:13] [PASSED] Writeback
[19:33:13] [PASSED] SPI
[19:33:13] [PASSED] USB
[19:33:13] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[19:33:13] =========== [PASSED] drm_connector_dynamic_init ============
[19:33:13] ==== drm_connector_dynamic_register_early (4 subtests) =====
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[19:33:13] ====== [PASSED] drm_connector_dynamic_register_early =======
[19:33:13] ======= drm_connector_dynamic_register (7 subtests) ========
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[19:33:13] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[19:33:13] ========= [PASSED] drm_connector_dynamic_register ==========
[19:33:13] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[19:33:13] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[19:33:13] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[19:33:13] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[19:33:13] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[19:33:13] ========== drm_test_get_tv_mode_from_name_valid  ===========
[19:33:13] [PASSED] NTSC
[19:33:13] [PASSED] NTSC-443
[19:33:13] [PASSED] NTSC-J
[19:33:13] [PASSED] PAL
[19:33:13] [PASSED] PAL-M
[19:33:13] [PASSED] PAL-N
[19:33:13] [PASSED] SECAM
[19:33:13] [PASSED] Mono
[19:33:13] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[19:33:13] [PASSED] drm_test_get_tv_mode_from_name_truncated
[19:33:13] ============ [PASSED] drm_get_tv_mode_from_name ============
[19:33:13] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[19:33:13] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[19:33:13] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[19:33:13] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[19:33:13] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[19:33:13] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[19:33:13] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[19:33:13] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[19:33:13] [PASSED] VIC 96
[19:33:13] [PASSED] VIC 97
[19:33:13] [PASSED] VIC 101
[19:33:13] [PASSED] VIC 102
[19:33:13] [PASSED] VIC 106
[19:33:13] [PASSED] VIC 107
[19:33:13] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[19:33:13] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[19:33:13] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[19:33:13] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[19:33:13] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[19:33:13] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[19:33:13] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[19:33:13] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[19:33:13] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[19:33:13] [PASSED] Automatic
[19:33:13] [PASSED] Full
[19:33:13] [PASSED] Limited 16:235
[19:33:13] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[19:33:13] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[19:33:13] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[19:33:13] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[19:33:13] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[19:33:13] [PASSED] RGB
[19:33:13] [PASSED] YUV 4:2:0
[19:33:13] [PASSED] YUV 4:2:2
[19:33:13] [PASSED] YUV 4:4:4
[19:33:13] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[19:33:13] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[19:33:13] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[19:33:13] ============= drm_damage_helper (21 subtests) ==============
[19:33:13] [PASSED] drm_test_damage_iter_no_damage
[19:33:13] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[19:33:13] [PASSED] drm_test_damage_iter_no_damage_src_moved
[19:33:13] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[19:33:13] [PASSED] drm_test_damage_iter_no_damage_not_visible
[19:33:13] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[19:33:13] [PASSED] drm_test_damage_iter_no_damage_no_fb
[19:33:13] [PASSED] drm_test_damage_iter_simple_damage
[19:33:13] [PASSED] drm_test_damage_iter_single_damage
[19:33:13] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[19:33:13] [PASSED] drm_test_damage_iter_single_damage_outside_src
[19:33:13] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[19:33:13] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[19:33:13] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[19:33:13] [PASSED] drm_test_damage_iter_single_damage_src_moved
[19:33:13] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[19:33:13] [PASSED] drm_test_damage_iter_damage
[19:33:13] [PASSED] drm_test_damage_iter_damage_one_intersect
[19:33:13] [PASSED] drm_test_damage_iter_damage_one_outside
[19:33:13] [PASSED] drm_test_damage_iter_damage_src_moved
[19:33:13] [PASSED] drm_test_damage_iter_damage_not_visible
[19:33:13] ================ [PASSED] drm_damage_helper ================
[19:33:13] ============== drm_dp_mst_helper (3 subtests) ==============
[19:33:13] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[19:33:13] [PASSED] Clock 154000 BPP 30 DSC disabled
[19:33:13] [PASSED] Clock 234000 BPP 30 DSC disabled
[19:33:13] [PASSED] Clock 297000 BPP 24 DSC disabled
[19:33:13] [PASSED] Clock 332880 BPP 24 DSC enabled
[19:33:13] [PASSED] Clock 324540 BPP 24 DSC enabled
[19:33:13] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[19:33:13] ============== drm_test_dp_mst_calc_pbn_div  ===============
[19:33:13] [PASSED] Link rate 2000000 lane count 4
[19:33:13] [PASSED] Link rate 2000000 lane count 2
[19:33:13] [PASSED] Link rate 2000000 lane count 1
[19:33:13] [PASSED] Link rate 1350000 lane count 4
[19:33:13] [PASSED] Link rate 1350000 lane count 2
[19:33:13] [PASSED] Link rate 1350000 lane count 1
[19:33:13] [PASSED] Link rate 1000000 lane count 4
[19:33:13] [PASSED] Link rate 1000000 lane count 2
[19:33:13] [PASSED] Link rate 1000000 lane count 1
[19:33:13] [PASSED] Link rate 810000 lane count 4
[19:33:13] [PASSED] Link rate 810000 lane count 2
[19:33:13] [PASSED] Link rate 810000 lane count 1
[19:33:13] [PASSED] Link rate 540000 lane count 4
[19:33:13] [PASSED] Link rate 540000 lane count 2
[19:33:13] [PASSED] Link rate 540000 lane count 1
[19:33:13] [PASSED] Link rate 270000 lane count 4
[19:33:13] [PASSED] Link rate 270000 lane count 2
[19:33:13] [PASSED] Link rate 270000 lane count 1
[19:33:13] [PASSED] Link rate 162000 lane count 4
[19:33:13] [PASSED] Link rate 162000 lane count 2
[19:33:13] [PASSED] Link rate 162000 lane count 1
[19:33:13] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[19:33:13] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[19:33:13] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[19:33:13] [PASSED] DP_POWER_UP_PHY with port number
[19:33:13] [PASSED] DP_POWER_DOWN_PHY with port number
[19:33:13] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[19:33:13] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[19:33:13] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[19:33:13] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[19:33:13] [PASSED] DP_QUERY_PAYLOAD with port number
[19:33:13] [PASSED] DP_QUERY_PAYLOAD with VCPI
[19:33:13] [PASSED] DP_REMOTE_DPCD_READ with port number
[19:33:13] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[19:33:13] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[19:33:13] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[19:33:13] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[19:33:13] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[19:33:13] [PASSED] DP_REMOTE_I2C_READ with port number
[19:33:13] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[19:33:13] [PASSED] DP_REMOTE_I2C_READ with transactions array
[19:33:13] [PASSED] DP_REMOTE_I2C_WRITE with port number
[19:33:13] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[19:33:13] [PASSED] DP_REMOTE_I2C_WRITE with data array
[19:33:13] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[19:33:13] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[19:33:13] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[19:33:13] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[19:33:13] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[19:33:13] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[19:33:13] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[19:33:13] ================ [PASSED] drm_dp_mst_helper ================
[19:33:13] ================== drm_exec (7 subtests) ===================
[19:33:13] [PASSED] sanitycheck
[19:33:13] [PASSED] test_lock
[19:33:13] [PASSED] test_lock_unlock
[19:33:13] [PASSED] test_duplicates
[19:33:13] [PASSED] test_prepare
[19:33:13] [PASSED] test_prepare_array
[19:33:13] [PASSED] test_multiple_loops
[19:33:13] ==================== [PASSED] drm_exec =====================
[19:33:13] =========== drm_format_helper_test (17 subtests) ===========
[19:33:13] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[19:33:13] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[19:33:13] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[19:33:13] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[19:33:13] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[19:33:13] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[19:33:13] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[19:33:13] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[19:33:13] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[19:33:13] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[19:33:13] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[19:33:13] ============== drm_test_fb_xrgb8888_to_mono  ===============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[19:33:13] ==================== drm_test_fb_swab  =====================
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ================ [PASSED] drm_test_fb_swab =================
[19:33:13] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[19:33:13] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[19:33:13] [PASSED] single_pixel_source_buffer
[19:33:13] [PASSED] single_pixel_clip_rectangle
[19:33:13] [PASSED] well_known_colors
[19:33:13] [PASSED] destination_pitch
[19:33:13] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[19:33:13] ================= drm_test_fb_clip_offset  =================
[19:33:13] [PASSED] pass through
[19:33:13] [PASSED] horizontal offset
[19:33:13] [PASSED] vertical offset
[19:33:13] [PASSED] horizontal and vertical offset
[19:33:13] [PASSED] horizontal offset (custom pitch)
[19:33:13] [PASSED] vertical offset (custom pitch)
[19:33:13] [PASSED] horizontal and vertical offset (custom pitch)
[19:33:13] ============= [PASSED] drm_test_fb_clip_offset =============
[19:33:13] =================== drm_test_fb_memcpy  ====================
[19:33:13] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[19:33:13] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[19:33:13] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[19:33:13] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[19:33:13] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[19:33:13] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[19:33:13] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[19:33:13] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[19:33:13] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[19:33:13] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[19:33:13] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[19:33:13] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[19:33:13] =============== [PASSED] drm_test_fb_memcpy ================
[19:33:13] ============= [PASSED] drm_format_helper_test ==============
[19:33:13] ================= drm_format (18 subtests) =================
[19:33:13] [PASSED] drm_test_format_block_width_invalid
[19:33:13] [PASSED] drm_test_format_block_width_one_plane
[19:33:13] [PASSED] drm_test_format_block_width_two_plane
[19:33:13] [PASSED] drm_test_format_block_width_three_plane
[19:33:13] [PASSED] drm_test_format_block_width_tiled
[19:33:13] [PASSED] drm_test_format_block_height_invalid
[19:33:13] [PASSED] drm_test_format_block_height_one_plane
[19:33:13] [PASSED] drm_test_format_block_height_two_plane
[19:33:13] [PASSED] drm_test_format_block_height_three_plane
[19:33:13] [PASSED] drm_test_format_block_height_tiled
[19:33:13] [PASSED] drm_test_format_min_pitch_invalid
[19:33:13] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[19:33:13] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[19:33:13] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[19:33:13] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[19:33:13] [PASSED] drm_test_format_min_pitch_two_plane
[19:33:13] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[19:33:13] [PASSED] drm_test_format_min_pitch_tiled
[19:33:13] =================== [PASSED] drm_format ====================
[19:33:13] ============== drm_framebuffer (10 subtests) ===============
[19:33:13] ========== drm_test_framebuffer_check_src_coords  ==========
[19:33:13] [PASSED] Success: source fits into fb
[19:33:13] [PASSED] Fail: overflowing fb with x-axis coordinate
[19:33:13] [PASSED] Fail: overflowing fb with y-axis coordinate
[19:33:13] [PASSED] Fail: overflowing fb with source width
[19:33:13] [PASSED] Fail: overflowing fb with source height
[19:33:13] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[19:33:13] [PASSED] drm_test_framebuffer_cleanup
[19:33:13] =============== drm_test_framebuffer_create  ===============
[19:33:13] [PASSED] ABGR8888 normal sizes
[19:33:13] [PASSED] ABGR8888 max sizes
[19:33:13] [PASSED] ABGR8888 pitch greater than min required
[19:33:13] [PASSED] ABGR8888 pitch less than min required
[19:33:13] [PASSED] ABGR8888 Invalid width
[19:33:13] [PASSED] ABGR8888 Invalid buffer handle
[19:33:13] [PASSED] No pixel format
[19:33:13] [PASSED] ABGR8888 Width 0
[19:33:13] [PASSED] ABGR8888 Height 0
[19:33:13] [PASSED] ABGR8888 Out of bound height * pitch combination
[19:33:13] [PASSED] ABGR8888 Large buffer offset
[19:33:13] [PASSED] ABGR8888 Buffer offset for inexistent plane
[19:33:13] [PASSED] ABGR8888 Invalid flag
[19:33:13] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[19:33:13] [PASSED] ABGR8888 Valid buffer modifier
[19:33:13] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[19:33:13] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[19:33:13] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[19:33:13] [PASSED] NV12 Normal sizes
[19:33:13] [PASSED] NV12 Max sizes
[19:33:13] [PASSED] NV12 Invalid pitch
[19:33:13] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[19:33:13] [PASSED] NV12 different  modifier per-plane
[19:33:13] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[19:33:13] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[19:33:13] [PASSED] NV12 Modifier for inexistent plane
[19:33:13] [PASSED] NV12 Handle for inexistent plane
[19:33:13] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[19:33:13] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[19:33:13] [PASSED] YVU420 Normal sizes
[19:33:13] [PASSED] YVU420 Max sizes
[19:33:13] [PASSED] YVU420 Invalid pitch
[19:33:13] [PASSED] YVU420 Different pitches
[19:33:13] [PASSED] YVU420 Different buffer offsets/pitches
[19:33:13] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[19:33:13] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[19:33:13] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[19:33:13] [PASSED] YVU420 Valid modifier
[19:33:13] [PASSED] YVU420 Different modifiers per plane
[19:33:13] [PASSED] YVU420 Modifier for inexistent plane
[19:33:13] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[19:33:13] [PASSED] X0L2 Normal sizes
[19:33:13] [PASSED] X0L2 Max sizes
[19:33:13] [PASSED] X0L2 Invalid pitch
[19:33:13] [PASSED] X0L2 Pitch greater than minimum required
[19:33:13] [PASSED] X0L2 Handle for inexistent plane
[19:33:13] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[19:33:13] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[19:33:13] [PASSED] X0L2 Valid modifier
[19:33:13] [PASSED] X0L2 Modifier for inexistent plane
[19:33:13] =========== [PASSED] drm_test_framebuffer_create ===========
[19:33:13] [PASSED] drm_test_framebuffer_free
[19:33:13] [PASSED] drm_test_framebuffer_init
[19:33:13] [PASSED] drm_test_framebuffer_init_bad_format
[19:33:13] [PASSED] drm_test_framebuffer_init_dev_mismatch
[19:33:13] [PASSED] drm_test_framebuffer_lookup
[19:33:13] [PASSED] drm_test_framebuffer_lookup_inexistent
[19:33:13] [PASSED] drm_test_framebuffer_modifiers_not_supported
[19:33:13] ================= [PASSED] drm_framebuffer =================
[19:33:13] ================ drm_gem_shmem (8 subtests) ================
[19:33:13] [PASSED] drm_gem_shmem_test_obj_create
[19:33:13] [PASSED] drm_gem_shmem_test_obj_create_private
[19:33:13] [PASSED] drm_gem_shmem_test_pin_pages
[19:33:13] [PASSED] drm_gem_shmem_test_vmap
[19:33:13] [PASSED] drm_gem_shmem_test_get_sg_table
[19:33:13] [PASSED] drm_gem_shmem_test_get_pages_sgt
[19:33:13] [PASSED] drm_gem_shmem_test_madvise
[19:33:13] [PASSED] drm_gem_shmem_test_purge
[19:33:13] ================== [PASSED] drm_gem_shmem ==================
[19:33:13] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[19:33:13] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[19:33:13] [PASSED] Automatic
[19:33:13] [PASSED] Full
[19:33:13] [PASSED] Limited 16:235
[19:33:13] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[19:33:13] [PASSED] drm_test_check_disable_connector
[19:33:13] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[19:33:13] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[19:33:13] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[19:33:13] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[19:33:13] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[19:33:13] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[19:33:13] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[19:33:13] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[19:33:13] [PASSED] drm_test_check_output_bpc_dvi
[19:33:13] [PASSED] drm_test_check_output_bpc_format_vic_1
[19:33:13] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[19:33:13] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[19:33:13] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[19:33:13] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[19:33:13] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[19:33:13] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[19:33:13] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[19:33:13] ============ drm_test_check_hdmi_color_format  =============
[19:33:13] [PASSED] AUTO -> RGB
[19:33:13] [PASSED] YCBCR422 -> YUV422
[19:33:13] [PASSED] YCBCR420 -> YUV420
[19:33:13] [PASSED] YCBCR444 -> YUV444
[19:33:13] [PASSED] RGB -> RGB
[19:33:13] ======== [PASSED] drm_test_check_hdmi_color_format =========
[19:33:13] ======== drm_test_check_hdmi_color_format_420_only  ========
[19:33:13] [PASSED] RGB should fail
[19:33:13] [PASSED] YUV444 should fail
[19:33:13] [PASSED] YUV422 should fail
[19:33:13] [PASSED] YUV420 should work
[19:33:13] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[19:33:13] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[19:33:13] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[19:33:13] [PASSED] drm_test_check_broadcast_rgb_value
[19:33:13] [PASSED] drm_test_check_bpc_8_value
[19:33:13] [PASSED] drm_test_check_bpc_10_value
[19:33:13] [PASSED] drm_test_check_bpc_12_value
[19:33:13] [PASSED] drm_test_check_format_value
[19:33:13] [PASSED] drm_test_check_tmds_char_value
[19:33:13] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[19:33:13] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[19:33:13] [PASSED] drm_test_check_mode_valid
[19:33:13] [PASSED] drm_test_check_mode_valid_reject
[19:33:13] [PASSED] drm_test_check_mode_valid_reject_rate
[19:33:13] [PASSED] drm_test_check_mode_valid_reject_max_clock
[19:33:13] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[19:33:13] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[19:33:13] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[19:33:13] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[19:33:13] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[19:33:13] [PASSED] drm_test_check_infoframes
[19:33:13] [PASSED] drm_test_check_reject_avi_infoframe
[19:33:13] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[19:33:13] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[19:33:13] [PASSED] drm_test_check_reject_audio_infoframe
[19:33:13] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[19:33:13] ================= drm_managed (2 subtests) =================
[19:33:13] [PASSED] drm_test_managed_release_action
[19:33:13] [PASSED] drm_test_managed_run_action
[19:33:13] =================== [PASSED] drm_managed ===================
[19:33:13] =================== drm_mm (6 subtests) ====================
[19:33:13] [PASSED] drm_test_mm_init
[19:33:13] [PASSED] drm_test_mm_debug
[19:33:13] [PASSED] drm_test_mm_align32
[19:33:13] [PASSED] drm_test_mm_align64
[19:33:13] [PASSED] drm_test_mm_lowest
[19:33:13] [PASSED] drm_test_mm_highest
[19:33:13] ===================== [PASSED] drm_mm ======================
[19:33:13] ============= drm_modes_analog_tv (5 subtests) =============
[19:33:13] [PASSED] drm_test_modes_analog_tv_mono_576i
[19:33:13] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[19:33:13] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[19:33:13] [PASSED] drm_test_modes_analog_tv_pal_576i
[19:33:13] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[19:33:13] =============== [PASSED] drm_modes_analog_tv ===============
[19:33:13] ============== drm_plane_helper (2 subtests) ===============
[19:33:13] =============== drm_test_check_plane_state  ================
[19:33:13] [PASSED] clipping_simple
[19:33:13] [PASSED] clipping_rotate_reflect
[19:33:13] [PASSED] positioning_simple
[19:33:13] [PASSED] upscaling
[19:33:13] [PASSED] downscaling
[19:33:13] [PASSED] rounding1
[19:33:13] [PASSED] rounding2
[19:33:13] [PASSED] rounding3
[19:33:13] [PASSED] rounding4
[19:33:13] =========== [PASSED] drm_test_check_plane_state ============
[19:33:13] =========== drm_test_check_invalid_plane_state  ============
[19:33:13] [PASSED] positioning_invalid
[19:33:13] [PASSED] upscaling_invalid
[19:33:13] [PASSED] downscaling_invalid
[19:33:13] ======= [PASSED] drm_test_check_invalid_plane_state ========
[19:33:13] ================ [PASSED] drm_plane_helper =================
[19:33:13] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[19:33:13] ====== drm_test_connector_helper_tv_get_modes_check  =======
[19:33:13] [PASSED] None
[19:33:13] [PASSED] PAL
[19:33:13] [PASSED] NTSC
[19:33:13] [PASSED] Both, NTSC Default
[19:33:13] [PASSED] Both, PAL Default
[19:33:13] [PASSED] Both, NTSC Default, with PAL on command-line
[19:33:13] [PASSED] Both, PAL Default, with NTSC on command-line
[19:33:13] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[19:33:13] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[19:33:13] ================== drm_rect (9 subtests) ===================
[19:33:13] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[19:33:13] [PASSED] drm_test_rect_clip_scaled_not_clipped
[19:33:13] [PASSED] drm_test_rect_clip_scaled_clipped
[19:33:13] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[19:33:13] ================= drm_test_rect_intersect  =================
[19:33:13] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[19:33:13] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[19:33:13] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[19:33:13] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[19:33:13] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[19:33:13] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[19:33:13] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[19:33:13] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[19:33:13] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[19:33:13] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[19:33:13] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[19:33:13] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[19:33:13] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[19:33:13] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[19:33:13] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[19:33:13] ============= [PASSED] drm_test_rect_intersect =============
[19:33:13] ================ drm_test_rect_calc_hscale  ================
[19:33:13] [PASSED] normal use
[19:33:13] [PASSED] out of max range
[19:33:13] [PASSED] out of min range
[19:33:13] [PASSED] zero dst
[19:33:13] [PASSED] negative src
[19:33:13] [PASSED] negative dst
[19:33:13] ============ [PASSED] drm_test_rect_calc_hscale ============
[19:33:13] ================ drm_test_rect_calc_vscale  ================
[19:33:13] [PASSED] normal use
[19:33:13] [PASSED] out of max range
[19:33:13] [PASSED] out of min range
[19:33:13] [PASSED] zero dst
[19:33:13] [PASSED] negative src
[19:33:13] [PASSED] negative dst
[19:33:13] ============ [PASSED] drm_test_rect_calc_vscale ============
[19:33:13] ================== drm_test_rect_rotate  ===================
[19:33:13] [PASSED] reflect-x
[19:33:13] [PASSED] reflect-y
[19:33:13] [PASSED] rotate-0
[19:33:13] [PASSED] rotate-90
[19:33:13] [PASSED] rotate-180
[19:33:13] [PASSED] rotate-270
[19:33:13] ============== [PASSED] drm_test_rect_rotate ===============
[19:33:13] ================ drm_test_rect_rotate_inv  =================
[19:33:13] [PASSED] reflect-x
[19:33:13] [PASSED] reflect-y
[19:33:13] [PASSED] rotate-0
[19:33:13] [PASSED] rotate-90
[19:33:13] [PASSED] rotate-180
[19:33:13] [PASSED] rotate-270
[19:33:13] ============ [PASSED] drm_test_rect_rotate_inv =============
[19:33:13] ==================== [PASSED] drm_rect =====================
[19:33:13] ============ drm_sysfb_modeset_test (1 subtest) ============
[19:33:13] ============ drm_test_sysfb_build_fourcc_list  =============
[19:33:13] [PASSED] no native formats
[19:33:13] [PASSED] XRGB8888 as native format
[19:33:13] [PASSED] remove duplicates
[19:33:13] [PASSED] convert alpha formats
[19:33:13] [PASSED] random formats
[19:33:13] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[19:33:13] ============= [PASSED] drm_sysfb_modeset_test ==============
[19:33:13] ================== drm_fixp (2 subtests) ===================
[19:33:13] [PASSED] drm_test_int2fixp
[19:33:13] [PASSED] drm_test_sm2fixp
[19:33:13] ==================== [PASSED] drm_fixp =====================
[19:33:13] ============================================================
[19:33:13] Testing complete. Ran 639 tests: passed: 639
[19:33:13] Elapsed time: 26.192s total, 1.766s configuring, 24.210s building, 0.194s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[19:33:13] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[19:33:15] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[19:33:25] Starting KUnit Kernel (1/1)...
[19:33:25] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[19:33:25] ================= ttm_device (5 subtests) ==================
[19:33:25] [PASSED] ttm_device_init_basic
[19:33:25] [PASSED] ttm_device_init_multiple
[19:33:25] [PASSED] ttm_device_fini_basic
[19:33:25] [PASSED] ttm_device_init_no_vma_man
[19:33:25] ================== ttm_device_init_pools  ==================
[19:33:25] [PASSED] No DMA allocations, no DMA32 required
[19:33:25] [PASSED] DMA allocations, DMA32 required
[19:33:25] [PASSED] No DMA allocations, DMA32 required
[19:33:25] [PASSED] DMA allocations, no DMA32 required
[19:33:25] ============== [PASSED] ttm_device_init_pools ==============
[19:33:25] =================== [PASSED] ttm_device ====================
[19:33:25] ================== ttm_pool (8 subtests) ===================
[19:33:25] ================== ttm_pool_alloc_basic  ===================
[19:33:25] [PASSED] One page
[19:33:25] [PASSED] More than one page
[19:33:25] [PASSED] Above the allocation limit
[19:33:25] [PASSED] One page, with coherent DMA mappings enabled
[19:33:25] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[19:33:25] ============== [PASSED] ttm_pool_alloc_basic ===============
[19:33:25] ============== ttm_pool_alloc_basic_dma_addr  ==============
[19:33:25] [PASSED] One page
[19:33:25] [PASSED] More than one page
[19:33:25] [PASSED] Above the allocation limit
[19:33:25] [PASSED] One page, with coherent DMA mappings enabled
[19:33:25] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[19:33:25] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[19:33:25] [PASSED] ttm_pool_alloc_order_caching_match
[19:33:25] [PASSED] ttm_pool_alloc_caching_mismatch
[19:33:25] [PASSED] ttm_pool_alloc_order_mismatch
[19:33:25] [PASSED] ttm_pool_free_dma_alloc
[19:33:25] [PASSED] ttm_pool_free_no_dma_alloc
[19:33:25] [PASSED] ttm_pool_fini_basic
[19:33:25] ==================== [PASSED] ttm_pool =====================
[19:33:25] ================ ttm_resource (8 subtests) =================
[19:33:25] ================= ttm_resource_init_basic  =================
[19:33:25] [PASSED] Init resource in TTM_PL_SYSTEM
[19:33:25] [PASSED] Init resource in TTM_PL_VRAM
[19:33:25] [PASSED] Init resource in a private placement
[19:33:25] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[19:33:25] ============= [PASSED] ttm_resource_init_basic =============
[19:33:25] [PASSED] ttm_resource_init_pinned
[19:33:25] [PASSED] ttm_resource_fini_basic
[19:33:25] [PASSED] ttm_resource_manager_init_basic
[19:33:25] [PASSED] ttm_resource_manager_usage_basic
[19:33:25] [PASSED] ttm_resource_manager_set_used_basic
[19:33:25] [PASSED] ttm_sys_man_alloc_basic
[19:33:25] [PASSED] ttm_sys_man_free_basic
[19:33:25] ================== [PASSED] ttm_resource ===================
[19:33:25] =================== ttm_tt (15 subtests) ===================
[19:33:25] ==================== ttm_tt_init_basic  ====================
[19:33:25] [PASSED] Page-aligned size
[19:33:25] [PASSED] Extra pages requested
[19:33:25] ================ [PASSED] ttm_tt_init_basic ================
[19:33:25] [PASSED] ttm_tt_init_misaligned
[19:33:25] [PASSED] ttm_tt_fini_basic
[19:33:25] [PASSED] ttm_tt_fini_sg
[19:33:25] [PASSED] ttm_tt_fini_shmem
[19:33:25] [PASSED] ttm_tt_create_basic
[19:33:25] [PASSED] ttm_tt_create_invalid_bo_type
[19:33:25] [PASSED] ttm_tt_create_ttm_exists
[19:33:25] [PASSED] ttm_tt_create_failed
[19:33:25] [PASSED] ttm_tt_destroy_basic
[19:33:25] [PASSED] ttm_tt_populate_null_ttm
[19:33:25] [PASSED] ttm_tt_populate_populated_ttm
[19:33:25] [PASSED] ttm_tt_unpopulate_basic
[19:33:25] [PASSED] ttm_tt_unpopulate_empty_ttm
[19:33:25] [PASSED] ttm_tt_swapin_basic
[19:33:25] ===================== [PASSED] ttm_tt ======================
[19:33:25] =================== ttm_bo (14 subtests) ===================
[19:33:25] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[19:33:25] [PASSED] Cannot be interrupted and sleeps
[19:33:25] [PASSED] Cannot be interrupted, locks straight away
[19:33:25] [PASSED] Can be interrupted, sleeps
[19:33:25] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[19:33:25] [PASSED] ttm_bo_reserve_locked_no_sleep
[19:33:25] [PASSED] ttm_bo_reserve_no_wait_ticket
[19:33:25] [PASSED] ttm_bo_reserve_double_resv
[19:33:25] [PASSED] ttm_bo_reserve_interrupted
[19:33:25] [PASSED] ttm_bo_reserve_deadlock
[19:33:25] [PASSED] ttm_bo_unreserve_basic
[19:33:25] [PASSED] ttm_bo_unreserve_pinned
[19:33:25] [PASSED] ttm_bo_unreserve_bulk
[19:33:25] [PASSED] ttm_bo_fini_basic
[19:33:25] [PASSED] ttm_bo_fini_shared_resv
[19:33:25] [PASSED] ttm_bo_pin_basic
[19:33:25] [PASSED] ttm_bo_pin_unpin_resource
[19:33:25] [PASSED] ttm_bo_multiple_pin_one_unpin
[19:33:25] ===================== [PASSED] ttm_bo ======================
[19:33:25] ============== ttm_bo_validate (22 subtests) ===============
[19:33:25] ============== ttm_bo_init_reserved_sys_man  ===============
[19:33:25] [PASSED] Buffer object for userspace
[19:33:25] [PASSED] Kernel buffer object
[19:33:25] [PASSED] Shared buffer object
[19:33:25] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[19:33:25] ============== ttm_bo_init_reserved_mock_man  ==============
[19:33:25] [PASSED] Buffer object for userspace
[19:33:25] [PASSED] Kernel buffer object
[19:33:25] [PASSED] Shared buffer object
[19:33:25] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[19:33:25] [PASSED] ttm_bo_init_reserved_resv
[19:33:25] ================== ttm_bo_validate_basic  ==================
[19:33:25] [PASSED] Buffer object for userspace
[19:33:25] [PASSED] Kernel buffer object
[19:33:25] [PASSED] Shared buffer object
[19:33:25] ============== [PASSED] ttm_bo_validate_basic ==============
[19:33:25] [PASSED] ttm_bo_validate_invalid_placement
[19:33:25] ============= ttm_bo_validate_same_placement  ==============
[19:33:25] [PASSED] System manager
[19:33:25] [PASSED] VRAM manager
[19:33:25] ========= [PASSED] ttm_bo_validate_same_placement ==========
[19:33:25] [PASSED] ttm_bo_validate_failed_alloc
[19:33:25] [PASSED] ttm_bo_validate_pinned
[19:33:25] [PASSED] ttm_bo_validate_busy_placement
[19:33:25] ================ ttm_bo_validate_multihop  =================
[19:33:25] [PASSED] Buffer object for userspace
[19:33:25] [PASSED] Kernel buffer object
[19:33:25] [PASSED] Shared buffer object
[19:33:25] ============ [PASSED] ttm_bo_validate_multihop =============
[19:33:25] ========== ttm_bo_validate_no_placement_signaled  ==========
[19:33:25] [PASSED] Buffer object in system domain, no page vector
[19:33:25] [PASSED] Buffer object in system domain with an existing page vector
[19:33:25] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[19:33:25] ======== ttm_bo_validate_no_placement_not_signaled  ========
[19:33:25] [PASSED] Buffer object for userspace
[19:33:25] [PASSED] Kernel buffer object
[19:33:25] [PASSED] Shared buffer object
[19:33:25] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[19:33:25] [PASSED] ttm_bo_validate_move_fence_signaled
[19:33:25] ========= ttm_bo_validate_move_fence_not_signaled  =========
[19:33:25] [PASSED] Waits for GPU
[19:33:25] [PASSED] Tries to lock straight away
[19:33:25] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[19:33:25] [PASSED] ttm_bo_validate_swapout
[19:33:25] [PASSED] ttm_bo_validate_happy_evict
[19:33:25] [PASSED] ttm_bo_validate_all_pinned_evict
[19:33:25] [PASSED] ttm_bo_validate_allowed_only_evict
[19:33:25] [PASSED] ttm_bo_validate_deleted_evict
[19:33:25] [PASSED] ttm_bo_validate_busy_domain_evict
[19:33:25] [PASSED] ttm_bo_validate_evict_gutting
[19:33:25] [PASSED] ttm_bo_validate_recrusive_evict
[19:33:25] ================= [PASSED] ttm_bo_validate =================
[19:33:25] ============================================================
[19:33:25] Testing complete. Ran 102 tests: passed: 102
[19:33:25] Elapsed time: 11.663s total, 1.778s configuring, 9.619s building, 0.216s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



^ permalink raw reply	[flat|nested] 11+ messages in thread

* ✗ Xe.CI.BAT: failure for Move RTP tables for engine init off the stack (rev2)
  2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
                   ` (6 preceding siblings ...)
  2026-06-17 19:33 ` ✓ CI.KUnit: success " Patchwork
@ 2026-06-17 20:11 ` Patchwork
  2026-06-17 21:09   ` Matt Roper
  7 siblings, 1 reply; 11+ messages in thread
From: Patchwork @ 2026-06-17 20:11 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 382 bytes --]

== Series Details ==

Series: Move RTP tables for engine init off the stack (rev2)
URL   : https://patchwork.freedesktop.org/series/168630/
State : failure

== Summary ==

ERROR: The runconfig 'xe-5274-f7cb2873b7430d84afd4ad4e4771d3f8ad03fbf9_BAT' does not exist in the database

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-168630v2/index.html

[-- Attachment #2: Type: text/html, Size: 947 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 5/5] drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action
  2026-06-17 19:24 ` [PATCH v2 5/5] drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action Matt Roper
@ 2026-06-17 20:13   ` Gustavo Sousa
  0 siblings, 0 replies; 11+ messages in thread
From: Gustavo Sousa @ 2026-06-17 20:13 UTC (permalink / raw)
  To: Matt Roper, intel-xe; +Cc: Violet Monti, Matt Roper

Matt Roper <matthew.d.roper@intel.com> writes:

> Add a couple additional tests to the RTP kunit suite that ensure
> FIELD_SET_FUNC() actions are evaluated properly and the values properly
> consolidate/conflict with values coming from other literal SET/FIELD_SET
> rules.
>
> Suggested-by: Gustavo Sousa <gustavo.sousa@intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>

Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>

> ---
>  drivers/gpu/drm/xe/tests/xe_rtp_test.c | 52 ++++++++++++++++++++++++++++++++++
>  1 file changed, 52 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> index 3d0688d058d9..367811621880 100644
> --- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> +++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> @@ -280,6 +280,11 @@ static void xe_rtp_rules_tests(struct kunit *test)
>  	KUNIT_EXPECT_EQ(test, err, param->expected_err);
>  }
>  
> +static u32 bits_2_3_set(struct xe_gt *gt, struct xe_hw_engine *hwe)
> +{
> +	return REG_BIT(2) | REG_BIT(3);
> +}
> +
>  static const struct rtp_to_sr_test_case rtp_to_sr_cases[] = {
>  	{
>  		.name = "coalesce-same-reg",
> @@ -300,6 +305,29 @@ static const struct rtp_to_sr_test_case rtp_to_sr_cases[] = {
>  			},
>  		),
>  	},
> +	{
> +		.name = "coalesce-same-reg-literal-and-func",
> +		.expected_reg = REGULAR_REG1,
> +		.expected_set_bits = REG_BIT(0) | REG_BIT(1) | REG_BIT(2) | REG_BIT(3),
> +		.expected_clr_bits = REG_BIT(0) | REG_BIT(1) | REG_BIT(2) | REG_BIT(3),
> +		.expected_active = BIT(0) | BIT(1),
> +		.expected_count_sr_entries = 1,
> +		/* Different bits on the same register: create a single entry */
> +		.table = XE_RTP_TABLE_SR(
> +			{ XE_RTP_NAME("basic-1"),
> +			  XE_RTP_RULES(FUNC(match_yes)),
> +			  XE_RTP_ACTIONS(FIELD_SET(REGULAR_REG1,
> +						   REG_BIT(0) | REG_BIT(1),
> +						   REG_BIT(0) | REG_BIT(1)))
> +			},
> +			{ XE_RTP_NAME("basic-2"),
> +			  XE_RTP_RULES(FUNC(match_yes)),
> +			  XE_RTP_ACTIONS(FIELD_SET_FUNC(REGULAR_REG1,
> +							REG_BIT(2) | REG_BIT(3),
> +							bits_2_3_set))
> +			},
> +		),
> +	},
>  	{
>  		.name = "no-match-no-add",
>  		.expected_reg = REGULAR_REG1,
> @@ -417,6 +445,30 @@ static const struct rtp_to_sr_test_case rtp_to_sr_cases[] = {
>  			},
>  		),
>  	},
> +	{
> +		.name = "conflict-not-disjoint-literal-and-func",
> +		.expected_reg = REGULAR_REG1,
> +		.expected_set_bits = REG_BIT(1) | REG_BIT(2),
> +		.expected_clr_bits = REG_BIT(1) | REG_BIT(2),
> +		.expected_active = BIT(0) | BIT(1),
> +		.expected_count_sr_entries = 1,
> +		.expected_sr_errors = 1,
> +		.table = XE_RTP_TABLE_SR(
> +			{ XE_RTP_NAME("basic-1"),
> +			  XE_RTP_RULES(FUNC(match_yes)),
> +			  XE_RTP_ACTIONS(FIELD_SET(REGULAR_REG1,
> +						   REG_BIT(1) | REG_BIT(2),
> +						   REG_BIT(1) | REG_BIT(2)))
> +			},
> +			/* drop: bits are not disjoint with previous entries */
> +			{ XE_RTP_NAME("basic-2"),
> +			  XE_RTP_RULES(FUNC(match_yes)),
> +			  XE_RTP_ACTIONS(FIELD_SET_FUNC(REGULAR_REG1,
> +							REG_BIT(2) | REG_BIT(3),
> +							bits_2_3_set))
> +			},
> +		),
> +	},
>  	{
>  		.name = "conflict-reg-type",
>  		.expected_reg = REGULAR_REG1,
>
> -- 
> 2.54.0

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: ✗ Xe.CI.BAT: failure for Move RTP tables for engine init off the stack (rev2)
  2026-06-17 20:11 ` ✗ Xe.CI.BAT: failure " Patchwork
@ 2026-06-17 21:09   ` Matt Roper
  0 siblings, 0 replies; 11+ messages in thread
From: Matt Roper @ 2026-06-17 21:09 UTC (permalink / raw)
  To: intel-xe

On Wed, Jun 17, 2026 at 08:11:48PM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: Move RTP tables for engine init off the stack (rev2)
> URL   : https://patchwork.freedesktop.org/series/168630/
> State : failure
> 
> == Summary ==
> 
> ERROR: The runconfig 'xe-5274-f7cb2873b7430d84afd4ad4e4771d3f8ad03fbf9_BAT' does not exist in the database

Seems that the CI system lost its "good" results and can't do
comparisons now to detect possible regressions.

Since v1 of the series passed CI [1], I think we can rely on those
results to justify merging this.  The changes in v2 were:

 - Updating kerneldoc (no functional change)
 - Adding 'static' to some arrays (compile-time change, no runtime
   impact)
 - Adding an extra patch at the end with a new kunit test.  CI *did* run
   kunit successfully on v2 with passing results [2].

So no changes in v2 that could impact the runtime BAT and FULL results.
Merging this should also trigger creation of a new baseline build, which
might be what we need to fix pre-merge CI for other series.

Applied to drm-xe-next.  Thanks Gustavo for the reviews.


Matt


[1] https://lore.kernel.org/all/178165630296.86642.11835579407959899578@6beec6c84f66/
[2] https://lore.kernel.org/all/178172480884.91018.6877579933780575711@6beec6c84f66/

> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-168630v2/index.html

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-06-17 21:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-17 19:24 [PATCH v2 0/5] Move RTP tables for engine init off the stack Matt Roper
2026-06-17 19:24 ` [PATCH v2 1/5] drm/xe: Reformat xe_rtp_types.h Matt Roper
2026-06-17 19:24 ` [PATCH v2 2/5] drm/xe/rtp: Add FIELD_SET_FUNC RTP action Matt Roper
2026-06-17 19:24 ` [PATCH v2 3/5] drm/xe: Move engines' LRC programming RTP table off the stack Matt Roper
2026-06-17 19:24 ` [PATCH v2 4/5] drm/xe: Move engines' non-LRC " Matt Roper
2026-06-17 19:24 ` [PATCH v2 5/5] drm/xe/rtp: Add kunit tests to exercise FIELD_SET_FUNC action Matt Roper
2026-06-17 20:13   ` Gustavo Sousa
2026-06-17 19:32 ` ✗ CI.checkpatch: warning for Move RTP tables for engine init off the stack (rev2) Patchwork
2026-06-17 19:33 ` ✓ CI.KUnit: success " Patchwork
2026-06-17 20:11 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-06-17 21:09   ` Matt Roper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.