public inbox for intel-xe@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening
@ 2026-04-14 21:14 Xin Wang
  2026-04-14 21:14 ` [PATCH v3 1/3] drm/xe: Standardize pat_index to u16 type Xin Wang
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Xin Wang @ 2026-04-14 21:14 UTC (permalink / raw)
  To: intel-xe; +Cc: Xin Wang, Matthew Auld

Small follow-up series to harden the PAT subsystem:

Patch 1 fixes two remaining spots where pat_index was typed as u32/int
instead of u16, aligning with the rest of the driver.

Patch 2 defaults XE_CACHE_NONE_COMPRESSION to XE_PAT_INVALID_IDX (like
WB_COMPRESSION already does).

Patch 3 introduces xe_cache_pat_idx(), an inline helper that validates
cache_mode bounds and checks for XE_PAT_INVALID_IDX before returning the
PAT index.  All 20 pat.idx[] read sites across the driver are converted.

Suggested-by: Matthew Auld <matthew.auld@intel.com>

v3:
- Rebased on latest drm-tip

v2:
- Dropped xe_assert() guards from xe_migrate that were added in v1 patch 2;
  the new helper in patch 3 now provides the same coverage uniformly across
  all call sites (Matthew Auld)
- New patch 3: xe_cache_pat_idx() helper with xe_assert() for every
  pat.idx[] read access, including bounds check on cache_mode

Xin Wang (3):
  drm/xe: Standardize pat_index to u16 type
  drm/xe/pat: Default XE_CACHE_NONE_COMPRESSION to invalid
  drm/xe/pat: Introduce xe_cache_pat_idx() helper

 drivers/gpu/drm/xe/display/xe_fb_pin.c | 11 ++++++-----
 drivers/gpu/drm/xe/tests/xe_migrate.c  |  3 ++-
 drivers/gpu/drm/xe/xe_device_types.h   |  2 +-
 drivers/gpu/drm/xe/xe_ggtt.c           |  7 ++++---
 drivers/gpu/drm/xe/xe_migrate.c        | 15 ++++++++-------
 drivers/gpu/drm/xe/xe_pat.c            |  1 +
 drivers/gpu/drm/xe/xe_pat.h            | 24 +++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_pt.c             |  3 ++-
 drivers/gpu/drm/xe/xe_vm.c             |  8 ++++----
 9 files changed, 51 insertions(+), 23 deletions(-)

-- 
2.43.0

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

* [PATCH v3 1/3] drm/xe: Standardize pat_index to u16 type
  2026-04-14 21:14 [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening Xin Wang
@ 2026-04-14 21:14 ` Xin Wang
  2026-04-14 21:14 ` [PATCH v3 2/3] drm/xe/pat: Default XE_CACHE_NONE_COMPRESSION to invalid Xin Wang
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Xin Wang @ 2026-04-14 21:14 UTC (permalink / raw)
  To: intel-xe; +Cc: Xin Wang, Matthew Auld

Ensure all pat_index definitions consistently use u16 type across
the XE driver. This addresses two remaining instances where pat_index
was incorrectly typed:

- xe_vm_snapshot structure used int for pat_index field
- xe_device pat.idx array used u32 instead of u16

This cleanup improves type consistency and ensures proper alignment
with the PAT subsystem design.

Signed-off-by: Xin Wang <x.wang@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
---
 drivers/gpu/drm/xe/xe_device_types.h | 2 +-
 drivers/gpu/drm/xe/xe_vm.c           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 150c76b2acaf..51af55020ae0 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -403,7 +403,7 @@ struct xe_device {
 		const struct xe_pat_table_entry *pat_primary_pta;
 		/** @pat.pat_media_pta: media GT PAT entry for page table accesses */
 		const struct xe_pat_table_entry *pat_media_pta;
-		u32 idx[__XE_CACHE_LEVEL_COUNT];
+		u16 idx[__XE_CACHE_LEVEL_COUNT];
 	} pat;
 
 	/** @d3cold: Encapsulate d3cold related stuff */
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 2408b547ca3d..f97c7af2f17c 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -4407,7 +4407,7 @@ struct xe_vm_snapshot {
 #define XE_VM_SNAP_FLAG_IS_NULL		BIT(2)
 		unsigned long flags;
 		int uapi_mem_region;
-		int pat_index;
+		u16 pat_index;
 		int cpu_caching;
 		struct xe_bo *bo;
 		void *data;
-- 
2.43.0


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

* [PATCH v3 2/3] drm/xe/pat: Default XE_CACHE_NONE_COMPRESSION to invalid
  2026-04-14 21:14 [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening Xin Wang
  2026-04-14 21:14 ` [PATCH v3 1/3] drm/xe: Standardize pat_index to u16 type Xin Wang
@ 2026-04-14 21:14 ` Xin Wang
  2026-04-14 21:14 ` [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper Xin Wang
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Xin Wang @ 2026-04-14 21:14 UTC (permalink / raw)
  To: intel-xe; +Cc: Xin Wang, Matthew Auld, Matt Roper

Initialize XE_CACHE_NONE_COMPRESSION PAT index to XE_PAT_INVALID_IDX by
default, same as XE_CACHE_WB_COMPRESSION. Platforms that support this
cache mode will override it in xe_pat_init_early(). This ensures that
accidental use on unsupported platforms can be detected.

A subsequent patch introduces a helper to assert on invalid PAT index
access at all call sites.

Suggested-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Xin Wang <x.wang@intel.com>
---
 drivers/gpu/drm/xe/xe_pat.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/xe/xe_pat.c b/drivers/gpu/drm/xe/xe_pat.c
index 75aaae7b003d..fad5b5a5ed4a 100644
--- a/drivers/gpu/drm/xe/xe_pat.c
+++ b/drivers/gpu/drm/xe/xe_pat.c
@@ -559,6 +559,7 @@ static const struct xe_pat_ops xe3p_xpc_pat_ops = {
 void xe_pat_init_early(struct xe_device *xe)
 {
 	xe->pat.idx[XE_CACHE_WB_COMPRESSION] = XE_PAT_INVALID_IDX;
+	xe->pat.idx[XE_CACHE_NONE_COMPRESSION] = XE_PAT_INVALID_IDX;
 	if (GRAPHICS_VERx100(xe) == 3511) {
 		xe->pat.ops = &xe3p_xpc_pat_ops;
 		xe->pat.table = xe3p_xpc_pat_table;
-- 
2.43.0


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

* [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper
  2026-04-14 21:14 [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening Xin Wang
  2026-04-14 21:14 ` [PATCH v3 1/3] drm/xe: Standardize pat_index to u16 type Xin Wang
  2026-04-14 21:14 ` [PATCH v3 2/3] drm/xe/pat: Default XE_CACHE_NONE_COMPRESSION to invalid Xin Wang
@ 2026-04-14 21:14 ` Xin Wang
  2026-04-15  8:54   ` Matthew Auld
  2026-04-15  9:12   ` Matthew Auld
  2026-04-14 21:39 ` ✓ CI.KUnit: success for drm/xe/pat: Type cleanup and invalid index hardening Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 10+ messages in thread
From: Xin Wang @ 2026-04-14 21:14 UTC (permalink / raw)
  To: intel-xe; +Cc: Xin Wang, Matthew Auld

Add an inline helper xe_cache_pat_idx() that wraps pat.idx[] read
accesses with xe_assert() validation, catching any attempt to use
an invalid PAT index at runtime.

Suggested-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Xin Wang <x.wang@intel.com>
---
 drivers/gpu/drm/xe/display/xe_fb_pin.c | 11 ++++++-----
 drivers/gpu/drm/xe/tests/xe_migrate.c  |  3 ++-
 drivers/gpu/drm/xe/xe_ggtt.c           |  7 ++++---
 drivers/gpu/drm/xe/xe_migrate.c        | 15 ++++++++-------
 drivers/gpu/drm/xe/xe_pat.h            | 24 +++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_pt.c             |  3 ++-
 drivers/gpu/drm/xe/xe_vm.c             |  6 +++---
 7 files changed, 48 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index e45a1e7a4670..d670a3cf1b84 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -14,6 +14,7 @@
 #include "xe_device.h"
 #include "xe_display_vma.h"
 #include "xe_ggtt.h"
+#include "xe_pat.h"
 #include "xe_pm.h"
 #include "xe_vram_types.h"
 
@@ -24,7 +25,7 @@ write_dpt_rotated(struct xe_bo *bo, struct iosys_map *map, u32 *dpt_ofs, u32 bo_
 	struct xe_device *xe = xe_bo_device(bo);
 	struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
 	u32 column, row;
-	u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
+	u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe_cache_pat_idx(xe, XE_CACHE_NONE));
 
 	/* TODO: Maybe rewrite so we can traverse the bo addresses sequentially,
 	 * by writing dpt/ggtt in a different order?
@@ -64,7 +65,7 @@ write_dpt_remapped_linear(struct xe_bo *bo, struct iosys_map *map,
 	struct xe_device *xe = xe_bo_device(bo);
 	struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
 	const u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo,
-						 xe->pat.idx[XE_CACHE_NONE]);
+						 xe_cache_pat_idx(xe, XE_CACHE_NONE));
 	unsigned int offset = plane->offset * XE_PAGE_SIZE;
 	unsigned int size = plane->size;
 
@@ -87,7 +88,7 @@ write_dpt_remapped_tiled(struct xe_bo *bo, struct iosys_map *map,
 	struct xe_device *xe = xe_bo_device(bo);
 	struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
 	const u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo,
-						 xe->pat.idx[XE_CACHE_NONE]);
+						 xe_cache_pat_idx(xe, XE_CACHE_NONE));
 	unsigned int offset, column, row;
 
 	for (row = 0; row < plane->height; row++) {
@@ -190,7 +191,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
 		return PTR_ERR(dpt);
 
 	if (view->type == I915_GTT_VIEW_NORMAL) {
-		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
+		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe_cache_pat_idx(xe, XE_CACHE_NONE));
 		u32 x;
 
 		for (x = 0; x < size / XE_PAGE_SIZE; x++) {
@@ -306,7 +307,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
 		/* display uses tiles instead of bytes here, so convert it back.. */
 		size = intel_rotation_info_size(&view->rotated) * XE_PAGE_SIZE;
 
-	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
+	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe_cache_pat_idx(xe, XE_CACHE_NONE));
 	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte,
 						  ALIGN(size, align), align,
 						  view->type == I915_GTT_VIEW_NORMAL ?
diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c b/drivers/gpu/drm/xe/tests/xe_migrate.c
index 34e2f0f4631f..50a97705e0ac 100644
--- a/drivers/gpu/drm/xe/tests/xe_migrate.c
+++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
@@ -9,6 +9,7 @@
 #include "tests/xe_kunit_helpers.h"
 #include "tests/xe_pci_test.h"
 
+#include "xe_pat.h"
 #include "xe_pci.h"
 #include "xe_pm.h"
 
@@ -246,7 +247,7 @@ static void xe_migrate_sanity_test(struct xe_migrate *m, struct kunit *test,
 	/* First part of the test, are we updating our pagetable bo with a new entry? */
 	xe_map_wr(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1), u64,
 		  0xdeaddeadbeefbeef);
-	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, xe->pat.idx[XE_CACHE_WB], 0);
+	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, xe_cache_pat_idx(xe, XE_CACHE_WB), 0);
 	if (m->q->vm->flags & XE_VM_FLAG_64K)
 		expected |= XE_PTE_PS64;
 	if (xe_bo_is_vram(pt))
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 3552fa3cac4b..a351c578b170 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -24,6 +24,7 @@
 #include "xe_gt_types.h"
 #include "xe_map.h"
 #include "xe_mmio.h"
+#include "xe_pat.h"
 #include "xe_pm.h"
 #include "xe_res_cursor.h"
 #include "xe_sriov.h"
@@ -258,7 +259,7 @@ static u64 xe_ggtt_get_pte(struct xe_ggtt *ggtt, u64 addr)
 
 static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
 {
-	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
+	u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), XE_CACHE_WB);
 	u64 end = start + size - 1;
 	u64 scratch_pte;
 
@@ -723,7 +724,7 @@ static void xe_ggtt_map_bo(struct xe_ggtt *ggtt, struct xe_ggtt_node *node,
 void xe_ggtt_map_bo_unlocked(struct xe_ggtt *ggtt, struct xe_bo *bo)
 {
 	u16 cache_mode = bo->flags & XE_BO_FLAG_NEEDS_UC ? XE_CACHE_NONE : XE_CACHE_WB;
-	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode];
+	u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), cache_mode);
 	u64 pte;
 
 	mutex_lock(&ggtt->lock);
@@ -840,7 +841,7 @@ static int __xe_ggtt_insert_bo_at(struct xe_ggtt *ggtt, struct xe_bo *bo,
 		bo->ggtt_node[tile_id] = NULL;
 	} else {
 		u16 cache_mode = bo->flags & XE_BO_FLAG_NEEDS_UC ? XE_CACHE_NONE : XE_CACHE_WB;
-		u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode];
+		u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), cache_mode);
 		u64 pte = ggtt->pt_ops->pte_encode_flags(bo, pat_index);
 
 		xe_ggtt_map_bo(ggtt, bo->ggtt_node[tile_id], bo, pte);
diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index 5fdc89ed5256..a87fbc1e9fb1 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -31,6 +31,7 @@
 #include "xe_map.h"
 #include "xe_mem_pool.h"
 #include "xe_mocs.h"
+#include "xe_pat.h"
 #include "xe_printk.h"
 #include "xe_pt.h"
 #include "xe_res_cursor.h"
@@ -217,7 +218,7 @@ static void xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 				  struct xe_vm *vm, u32 *ofs)
 {
 	struct xe_device *xe = tile_to_xe(tile);
-	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
+	u16 pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
 	u8 id = tile->id;
 	u32 num_entries = NUM_PT_SLOTS, num_level = vm->pt_root[id]->level;
 #define VRAM_IDENTITY_MAP_COUNT	2
@@ -337,7 +338,7 @@ static void xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
 		 * if flat ccs is enabled.
 		 */
 		if (GRAPHICS_VER(xe) >= 20 && xe_device_has_flat_ccs(xe)) {
-			u16 comp_pat_index = xe->pat.idx[XE_CACHE_NONE_COMPRESSION];
+			u16 comp_pat_index = xe_cache_pat_idx(xe, XE_CACHE_NONE_COMPRESSION);
 			u64 vram_offset = IDENTITY_OFFSET +
 				DIV_ROUND_UP_ULL(actual_phy_size, SZ_1G);
 			u64 pt31_ofs = xe_bo_size(bo) - XE_PAGE_SIZE;
@@ -637,10 +638,10 @@ static void emit_pte(struct xe_migrate *m,
 
 	/* Indirect access needs compression enabled uncached PAT index */
 	if (GRAPHICS_VERx100(xe) >= 2000)
-		pat_index = is_comp_pte ? xe->pat.idx[XE_CACHE_NONE_COMPRESSION] :
-					  xe->pat.idx[XE_CACHE_WB];
+		pat_index = is_comp_pte ? xe_cache_pat_idx(xe, XE_CACHE_NONE_COMPRESSION) :
+					  xe_cache_pat_idx(xe, XE_CACHE_WB);
 	else
-		pat_index = xe->pat.idx[XE_CACHE_WB];
+		pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
 
 	ptes = DIV_ROUND_UP(size, XE_PAGE_SIZE);
 
@@ -1876,7 +1877,7 @@ __xe_migrate_update_pgtables(struct xe_migrate *m,
 
 	/* For sysmem PTE's, need to map them in our hole.. */
 	if (!IS_DGFX(xe)) {
-		u16 pat_index = xe->pat.idx[XE_CACHE_WB];
+		u16 pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
 		u32 ptes, ofs;
 
 		ppgtt_ofs = NUM_KERNEL_PDE - 1;
@@ -2098,7 +2099,7 @@ static void build_pt_update_batch_sram(struct xe_migrate *m,
 				       struct drm_pagemap_addr *sram_addr,
 				       u32 size, int level)
 {
-	u16 pat_index = tile_to_xe(m->tile)->pat.idx[XE_CACHE_WB];
+	u16 pat_index = xe_cache_pat_idx(tile_to_xe(m->tile), XE_CACHE_WB);
 	u64 gpu_page_size = 0x1ull << xe_pt_shift(level);
 	u32 ptes;
 	int i = 0;
diff --git a/drivers/gpu/drm/xe/xe_pat.h b/drivers/gpu/drm/xe/xe_pat.h
index a1e287c08f57..338fda95e63f 100644
--- a/drivers/gpu/drm/xe/xe_pat.h
+++ b/drivers/gpu/drm/xe/xe_pat.h
@@ -8,8 +8,11 @@
 
 #include <linux/types.h>
 
+#include "xe_assert.h"
+#include "xe_device_types.h"
+#include "xe_pt_types.h"
+
 struct drm_printer;
-struct xe_device;
 struct xe_gt;
 
 #define XE_PAT_INVALID_IDX	U16_MAX
@@ -82,4 +85,23 @@ bool xe_pat_index_get_comp_en(struct xe_device *xe, u16 pat_index);
  */
 u16 xe_pat_index_get_l3_policy(struct xe_device *xe, u16 pat_index);
 
+/**
+ * xe_cache_pat_idx - Get the PAT index for a given cache level
+ * @xe: xe device
+ * @cache_mode: cache level to look up
+ *
+ * Assert that @cache_mode is within bounds and that the PAT index has
+ * been configured for the requested cache level, then return it.
+ *
+ * Return: PAT index corresponding to @cache_mode
+ */
+static inline u16 xe_cache_pat_idx(struct xe_device *xe,
+				   enum xe_cache_level cache_mode)
+{
+	xe_assert(xe, cache_mode < __XE_CACHE_LEVEL_COUNT);
+	xe_assert(xe, xe->pat.idx[cache_mode] != XE_PAT_INVALID_IDX);
+
+	return xe->pat.idx[cache_mode];
+}
+
 #endif
diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
index 8e5f4f0dea3f..7a1095c89acb 100644
--- a/drivers/gpu/drm/xe/xe_pt.c
+++ b/drivers/gpu/drm/xe/xe_pt.c
@@ -4,6 +4,7 @@
  */
 
 #include "xe_pt.h"
+#include "xe_pat.h"
 
 #include "regs/xe_gtt_defs.h"
 #include "xe_bo.h"
@@ -62,7 +63,7 @@ static u64 __xe_pt_empty_pte(struct xe_tile *tile, struct xe_vm *vm,
 			     unsigned int level)
 {
 	struct xe_device *xe = tile_to_xe(tile);
-	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
+	u16 pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
 	u8 id = tile->id;
 
 	if (!xe_vm_has_scratch(vm))
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index f97c7af2f17c..5f4220125c76 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1399,9 +1399,9 @@ static u16 pde_pat_index(struct xe_bo *bo)
 	 * something which is always safe).
 	 */
 	if (!xe_bo_is_vram(bo) && bo->ttm.ttm->caching == ttm_cached)
-		pat_index = xe->pat.idx[XE_CACHE_WB];
+		pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
 	else
-		pat_index = xe->pat.idx[XE_CACHE_NONE];
+		pat_index = xe_cache_pat_idx(xe, XE_CACHE_NONE);
 
 	xe_assert(xe, pat_index <= 3);
 
@@ -4204,7 +4204,7 @@ struct dma_fence *xe_vm_bind_kernel_bo(struct xe_vm *vm, struct xe_bo *bo,
 
 	ops = vm_bind_ioctl_ops_create(vm, &vops, bo, 0, addr, xe_bo_size(bo),
 				       DRM_XE_VM_BIND_OP_MAP, 0, 0,
-				       vm->xe->pat.idx[cache_lvl]);
+				       xe_cache_pat_idx(vm->xe, cache_lvl));
 	if (IS_ERR(ops)) {
 		err = PTR_ERR(ops);
 		goto release_vm_lock;
-- 
2.43.0


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

* ✓ CI.KUnit: success for drm/xe/pat: Type cleanup and invalid index hardening
  2026-04-14 21:14 [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening Xin Wang
                   ` (2 preceding siblings ...)
  2026-04-14 21:14 ` [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper Xin Wang
@ 2026-04-14 21:39 ` Patchwork
  2026-04-14 22:37 ` ✓ Xe.CI.BAT: " Patchwork
  2026-04-14 23:26 ` ✓ Xe.CI.FULL: " Patchwork
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2026-04-14 21:39 UTC (permalink / raw)
  To: Xin Wang; +Cc: intel-xe

== Series Details ==

Series: drm/xe/pat: Type cleanup and invalid index hardening
URL   : https://patchwork.freedesktop.org/series/164886/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[21:38:01] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[21:38:06] 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
[21:38:37] Starting KUnit Kernel (1/1)...
[21:38:37] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[21:38:37] ================== guc_buf (11 subtests) ===================
[21:38:37] [PASSED] test_smallest
[21:38:37] [PASSED] test_largest
[21:38:37] [PASSED] test_granular
[21:38:37] [PASSED] test_unique
[21:38:37] [PASSED] test_overlap
[21:38:37] [PASSED] test_reusable
[21:38:37] [PASSED] test_too_big
[21:38:37] [PASSED] test_flush
[21:38:37] [PASSED] test_lookup
[21:38:37] [PASSED] test_data
[21:38:37] [PASSED] test_class
[21:38:37] ===================== [PASSED] guc_buf =====================
[21:38:37] =================== guc_dbm (7 subtests) ===================
[21:38:37] [PASSED] test_empty
[21:38:37] [PASSED] test_default
[21:38:37] ======================== test_size  ========================
[21:38:37] [PASSED] 4
[21:38:37] [PASSED] 8
[21:38:37] [PASSED] 32
[21:38:37] [PASSED] 256
[21:38:37] ==================== [PASSED] test_size ====================
[21:38:37] ======================= test_reuse  ========================
[21:38:37] [PASSED] 4
[21:38:37] [PASSED] 8
[21:38:37] [PASSED] 32
[21:38:37] [PASSED] 256
[21:38:37] =================== [PASSED] test_reuse ====================
[21:38:37] =================== test_range_overlap  ====================
[21:38:37] [PASSED] 4
[21:38:37] [PASSED] 8
[21:38:37] [PASSED] 32
[21:38:37] [PASSED] 256
[21:38:37] =============== [PASSED] test_range_overlap ================
[21:38:37] =================== test_range_compact  ====================
[21:38:37] [PASSED] 4
[21:38:37] [PASSED] 8
[21:38:37] [PASSED] 32
[21:38:37] [PASSED] 256
[21:38:37] =============== [PASSED] test_range_compact ================
[21:38:37] ==================== test_range_spare  =====================
[21:38:37] [PASSED] 4
[21:38:37] [PASSED] 8
[21:38:37] [PASSED] 32
[21:38:37] [PASSED] 256
[21:38:37] ================ [PASSED] test_range_spare =================
[21:38:37] ===================== [PASSED] guc_dbm =====================
[21:38:37] =================== guc_idm (6 subtests) ===================
[21:38:37] [PASSED] bad_init
[21:38:37] [PASSED] no_init
[21:38:37] [PASSED] init_fini
[21:38:37] [PASSED] check_used
[21:38:37] [PASSED] check_quota
[21:38:37] [PASSED] check_all
[21:38:37] ===================== [PASSED] guc_idm =====================
[21:38:37] ================== no_relay (3 subtests) ===================
[21:38:37] [PASSED] xe_drops_guc2pf_if_not_ready
[21:38:37] [PASSED] xe_drops_guc2vf_if_not_ready
[21:38:37] [PASSED] xe_rejects_send_if_not_ready
[21:38:37] ==================== [PASSED] no_relay =====================
[21:38:37] ================== pf_relay (14 subtests) ==================
[21:38:37] [PASSED] pf_rejects_guc2pf_too_short
[21:38:37] [PASSED] pf_rejects_guc2pf_too_long
[21:38:37] [PASSED] pf_rejects_guc2pf_no_payload
[21:38:37] [PASSED] pf_fails_no_payload
[21:38:37] [PASSED] pf_fails_bad_origin
[21:38:37] [PASSED] pf_fails_bad_type
[21:38:37] [PASSED] pf_txn_reports_error
[21:38:37] [PASSED] pf_txn_sends_pf2guc
[21:38:37] [PASSED] pf_sends_pf2guc
[21:38:37] [SKIPPED] pf_loopback_nop
[21:38:37] [SKIPPED] pf_loopback_echo
[21:38:37] [SKIPPED] pf_loopback_fail
[21:38:37] [SKIPPED] pf_loopback_busy
[21:38:37] [SKIPPED] pf_loopback_retry
[21:38:37] ==================== [PASSED] pf_relay =====================
[21:38:37] ================== vf_relay (3 subtests) ===================
[21:38:37] [PASSED] vf_rejects_guc2vf_too_short
[21:38:37] [PASSED] vf_rejects_guc2vf_too_long
[21:38:37] [PASSED] vf_rejects_guc2vf_no_payload
[21:38:37] ==================== [PASSED] vf_relay =====================
[21:38:37] ================ pf_gt_config (9 subtests) =================
[21:38:37] [PASSED] fair_contexts_1vf
[21:38:37] [PASSED] fair_doorbells_1vf
[21:38:37] [PASSED] fair_ggtt_1vf
[21:38:37] ====================== fair_vram_1vf  ======================
[21:38:37] [PASSED] 3.50 GiB
[21:38:37] [PASSED] 11.5 GiB
[21:38:37] [PASSED] 15.5 GiB
[21:38:37] [PASSED] 31.5 GiB
[21:38:37] [PASSED] 63.5 GiB
[21:38:37] [PASSED] 1.91 GiB
[21:38:37] ================== [PASSED] fair_vram_1vf ==================
[21:38:37] ================ fair_vram_1vf_admin_only  =================
[21:38:37] [PASSED] 3.50 GiB
[21:38:37] [PASSED] 11.5 GiB
[21:38:37] [PASSED] 15.5 GiB
[21:38:37] [PASSED] 31.5 GiB
[21:38:37] [PASSED] 63.5 GiB
[21:38:37] [PASSED] 1.91 GiB
[21:38:37] ============ [PASSED] fair_vram_1vf_admin_only =============
[21:38:37] ====================== fair_contexts  ======================
[21:38:37] [PASSED] 1 VF
[21:38:37] [PASSED] 2 VFs
[21:38:37] [PASSED] 3 VFs
[21:38:37] [PASSED] 4 VFs
[21:38:37] [PASSED] 5 VFs
[21:38:37] [PASSED] 6 VFs
[21:38:37] [PASSED] 7 VFs
[21:38:37] [PASSED] 8 VFs
[21:38:37] [PASSED] 9 VFs
[21:38:37] [PASSED] 10 VFs
[21:38:37] [PASSED] 11 VFs
[21:38:37] [PASSED] 12 VFs
[21:38:37] [PASSED] 13 VFs
[21:38:37] [PASSED] 14 VFs
[21:38:37] [PASSED] 15 VFs
[21:38:37] [PASSED] 16 VFs
[21:38:37] [PASSED] 17 VFs
[21:38:37] [PASSED] 18 VFs
[21:38:37] [PASSED] 19 VFs
[21:38:37] [PASSED] 20 VFs
[21:38:37] [PASSED] 21 VFs
[21:38:37] [PASSED] 22 VFs
[21:38:37] [PASSED] 23 VFs
[21:38:37] [PASSED] 24 VFs
[21:38:37] [PASSED] 25 VFs
[21:38:37] [PASSED] 26 VFs
[21:38:37] [PASSED] 27 VFs
[21:38:37] [PASSED] 28 VFs
[21:38:37] [PASSED] 29 VFs
[21:38:37] [PASSED] 30 VFs
[21:38:37] [PASSED] 31 VFs
[21:38:37] [PASSED] 32 VFs
[21:38:37] [PASSED] 33 VFs
[21:38:37] [PASSED] 34 VFs
[21:38:37] [PASSED] 35 VFs
[21:38:37] [PASSED] 36 VFs
[21:38:37] [PASSED] 37 VFs
[21:38:37] [PASSED] 38 VFs
[21:38:37] [PASSED] 39 VFs
[21:38:37] [PASSED] 40 VFs
[21:38:37] [PASSED] 41 VFs
[21:38:37] [PASSED] 42 VFs
[21:38:37] [PASSED] 43 VFs
[21:38:37] [PASSED] 44 VFs
[21:38:37] [PASSED] 45 VFs
[21:38:37] [PASSED] 46 VFs
[21:38:37] [PASSED] 47 VFs
[21:38:37] [PASSED] 48 VFs
[21:38:37] [PASSED] 49 VFs
[21:38:37] [PASSED] 50 VFs
[21:38:37] [PASSED] 51 VFs
[21:38:37] [PASSED] 52 VFs
[21:38:37] [PASSED] 53 VFs
[21:38:37] [PASSED] 54 VFs
[21:38:37] [PASSED] 55 VFs
[21:38:37] [PASSED] 56 VFs
[21:38:37] [PASSED] 57 VFs
[21:38:37] [PASSED] 58 VFs
[21:38:37] [PASSED] 59 VFs
[21:38:37] [PASSED] 60 VFs
[21:38:37] [PASSED] 61 VFs
[21:38:37] [PASSED] 62 VFs
[21:38:37] [PASSED] 63 VFs
[21:38:37] ================== [PASSED] fair_contexts ==================
[21:38:37] ===================== fair_doorbells  ======================
[21:38:37] [PASSED] 1 VF
[21:38:37] [PASSED] 2 VFs
[21:38:37] [PASSED] 3 VFs
[21:38:37] [PASSED] 4 VFs
[21:38:37] [PASSED] 5 VFs
[21:38:37] [PASSED] 6 VFs
[21:38:37] [PASSED] 7 VFs
[21:38:37] [PASSED] 8 VFs
[21:38:37] [PASSED] 9 VFs
[21:38:37] [PASSED] 10 VFs
[21:38:37] [PASSED] 11 VFs
[21:38:37] [PASSED] 12 VFs
[21:38:37] [PASSED] 13 VFs
[21:38:37] [PASSED] 14 VFs
[21:38:37] [PASSED] 15 VFs
[21:38:37] [PASSED] 16 VFs
[21:38:37] [PASSED] 17 VFs
[21:38:37] [PASSED] 18 VFs
[21:38:37] [PASSED] 19 VFs
[21:38:37] [PASSED] 20 VFs
[21:38:37] [PASSED] 21 VFs
[21:38:37] [PASSED] 22 VFs
[21:38:37] [PASSED] 23 VFs
[21:38:37] [PASSED] 24 VFs
[21:38:37] [PASSED] 25 VFs
[21:38:37] [PASSED] 26 VFs
[21:38:37] [PASSED] 27 VFs
[21:38:37] [PASSED] 28 VFs
[21:38:37] [PASSED] 29 VFs
[21:38:37] [PASSED] 30 VFs
[21:38:37] [PASSED] 31 VFs
[21:38:37] [PASSED] 32 VFs
[21:38:37] [PASSED] 33 VFs
[21:38:37] [PASSED] 34 VFs
[21:38:37] [PASSED] 35 VFs
[21:38:37] [PASSED] 36 VFs
[21:38:37] [PASSED] 37 VFs
[21:38:37] [PASSED] 38 VFs
[21:38:37] [PASSED] 39 VFs
[21:38:37] [PASSED] 40 VFs
[21:38:37] [PASSED] 41 VFs
[21:38:37] [PASSED] 42 VFs
[21:38:37] [PASSED] 43 VFs
[21:38:37] [PASSED] 44 VFs
[21:38:37] [PASSED] 45 VFs
[21:38:37] [PASSED] 46 VFs
[21:38:37] [PASSED] 47 VFs
[21:38:37] [PASSED] 48 VFs
[21:38:37] [PASSED] 49 VFs
[21:38:37] [PASSED] 50 VFs
[21:38:37] [PASSED] 51 VFs
[21:38:37] [PASSED] 52 VFs
[21:38:37] [PASSED] 53 VFs
[21:38:37] [PASSED] 54 VFs
[21:38:37] [PASSED] 55 VFs
[21:38:37] [PASSED] 56 VFs
[21:38:37] [PASSED] 57 VFs
[21:38:37] [PASSED] 58 VFs
[21:38:37] [PASSED] 59 VFs
[21:38:37] [PASSED] 60 VFs
[21:38:37] [PASSED] 61 VFs
[21:38:37] [PASSED] 62 VFs
[21:38:37] [PASSED] 63 VFs
[21:38:37] ================= [PASSED] fair_doorbells ==================
[21:38:37] ======================== fair_ggtt  ========================
[21:38:37] [PASSED] 1 VF
[21:38:37] [PASSED] 2 VFs
[21:38:37] [PASSED] 3 VFs
[21:38:37] [PASSED] 4 VFs
[21:38:37] [PASSED] 5 VFs
[21:38:37] [PASSED] 6 VFs
[21:38:37] [PASSED] 7 VFs
[21:38:37] [PASSED] 8 VFs
[21:38:37] [PASSED] 9 VFs
[21:38:37] [PASSED] 10 VFs
[21:38:37] [PASSED] 11 VFs
[21:38:37] [PASSED] 12 VFs
[21:38:37] [PASSED] 13 VFs
[21:38:37] [PASSED] 14 VFs
[21:38:37] [PASSED] 15 VFs
[21:38:37] [PASSED] 16 VFs
[21:38:37] [PASSED] 17 VFs
[21:38:37] [PASSED] 18 VFs
[21:38:37] [PASSED] 19 VFs
[21:38:37] [PASSED] 20 VFs
[21:38:37] [PASSED] 21 VFs
[21:38:37] [PASSED] 22 VFs
[21:38:37] [PASSED] 23 VFs
[21:38:37] [PASSED] 24 VFs
[21:38:37] [PASSED] 25 VFs
[21:38:37] [PASSED] 26 VFs
[21:38:37] [PASSED] 27 VFs
[21:38:37] [PASSED] 28 VFs
[21:38:37] [PASSED] 29 VFs
[21:38:37] [PASSED] 30 VFs
[21:38:37] [PASSED] 31 VFs
[21:38:37] [PASSED] 32 VFs
[21:38:37] [PASSED] 33 VFs
[21:38:37] [PASSED] 34 VFs
[21:38:37] [PASSED] 35 VFs
[21:38:37] [PASSED] 36 VFs
[21:38:37] [PASSED] 37 VFs
[21:38:37] [PASSED] 38 VFs
[21:38:37] [PASSED] 39 VFs
[21:38:37] [PASSED] 40 VFs
[21:38:37] [PASSED] 41 VFs
[21:38:37] [PASSED] 42 VFs
[21:38:37] [PASSED] 43 VFs
[21:38:37] [PASSED] 44 VFs
[21:38:37] [PASSED] 45 VFs
[21:38:37] [PASSED] 46 VFs
[21:38:37] [PASSED] 47 VFs
[21:38:37] [PASSED] 48 VFs
[21:38:37] [PASSED] 49 VFs
[21:38:37] [PASSED] 50 VFs
[21:38:37] [PASSED] 51 VFs
[21:38:37] [PASSED] 52 VFs
[21:38:37] [PASSED] 53 VFs
[21:38:37] [PASSED] 54 VFs
[21:38:37] [PASSED] 55 VFs
[21:38:37] [PASSED] 56 VFs
[21:38:37] [PASSED] 57 VFs
[21:38:37] [PASSED] 58 VFs
[21:38:37] [PASSED] 59 VFs
[21:38:37] [PASSED] 60 VFs
[21:38:37] [PASSED] 61 VFs
[21:38:37] [PASSED] 62 VFs
[21:38:37] [PASSED] 63 VFs
[21:38:37] ==================== [PASSED] fair_ggtt ====================
[21:38:37] ======================== fair_vram  ========================
[21:38:37] [PASSED] 1 VF
[21:38:37] [PASSED] 2 VFs
[21:38:37] [PASSED] 3 VFs
[21:38:37] [PASSED] 4 VFs
[21:38:37] [PASSED] 5 VFs
[21:38:37] [PASSED] 6 VFs
[21:38:37] [PASSED] 7 VFs
[21:38:37] [PASSED] 8 VFs
[21:38:37] [PASSED] 9 VFs
[21:38:37] [PASSED] 10 VFs
[21:38:37] [PASSED] 11 VFs
[21:38:37] [PASSED] 12 VFs
[21:38:37] [PASSED] 13 VFs
[21:38:37] [PASSED] 14 VFs
[21:38:37] [PASSED] 15 VFs
[21:38:37] [PASSED] 16 VFs
[21:38:37] [PASSED] 17 VFs
[21:38:37] [PASSED] 18 VFs
[21:38:37] [PASSED] 19 VFs
[21:38:37] [PASSED] 20 VFs
[21:38:37] [PASSED] 21 VFs
[21:38:37] [PASSED] 22 VFs
[21:38:37] [PASSED] 23 VFs
[21:38:37] [PASSED] 24 VFs
[21:38:37] [PASSED] 25 VFs
[21:38:37] [PASSED] 26 VFs
[21:38:37] [PASSED] 27 VFs
[21:38:37] [PASSED] 28 VFs
[21:38:37] [PASSED] 29 VFs
[21:38:37] [PASSED] 30 VFs
[21:38:37] [PASSED] 31 VFs
[21:38:37] [PASSED] 32 VFs
[21:38:37] [PASSED] 33 VFs
[21:38:37] [PASSED] 34 VFs
[21:38:37] [PASSED] 35 VFs
[21:38:37] [PASSED] 36 VFs
[21:38:37] [PASSED] 37 VFs
[21:38:37] [PASSED] 38 VFs
[21:38:37] [PASSED] 39 VFs
[21:38:37] [PASSED] 40 VFs
[21:38:37] [PASSED] 41 VFs
[21:38:37] [PASSED] 42 VFs
[21:38:37] [PASSED] 43 VFs
[21:38:37] [PASSED] 44 VFs
[21:38:37] [PASSED] 45 VFs
[21:38:37] [PASSED] 46 VFs
[21:38:37] [PASSED] 47 VFs
[21:38:37] [PASSED] 48 VFs
[21:38:37] [PASSED] 49 VFs
[21:38:37] [PASSED] 50 VFs
[21:38:37] [PASSED] 51 VFs
[21:38:37] [PASSED] 52 VFs
[21:38:37] [PASSED] 53 VFs
[21:38:37] [PASSED] 54 VFs
[21:38:37] [PASSED] 55 VFs
[21:38:37] [PASSED] 56 VFs
[21:38:37] [PASSED] 57 VFs
[21:38:37] [PASSED] 58 VFs
[21:38:37] [PASSED] 59 VFs
[21:38:37] [PASSED] 60 VFs
[21:38:37] [PASSED] 61 VFs
[21:38:37] [PASSED] 62 VFs
[21:38:37] [PASSED] 63 VFs
[21:38:37] ==================== [PASSED] fair_vram ====================
[21:38:37] ================== [PASSED] pf_gt_config ===================
[21:38:37] ===================== lmtt (1 subtest) =====================
[21:38:37] ======================== test_ops  =========================
[21:38:37] [PASSED] 2-level
[21:38:37] [PASSED] multi-level
[21:38:37] ==================== [PASSED] test_ops =====================
[21:38:37] ====================== [PASSED] lmtt =======================
[21:38:37] ================= pf_service (11 subtests) =================
[21:38:37] [PASSED] pf_negotiate_any
[21:38:37] [PASSED] pf_negotiate_base_match
[21:38:37] [PASSED] pf_negotiate_base_newer
[21:38:37] [PASSED] pf_negotiate_base_next
[21:38:37] [SKIPPED] pf_negotiate_base_older
[21:38:37] [PASSED] pf_negotiate_base_prev
[21:38:37] [PASSED] pf_negotiate_latest_match
[21:38:37] [PASSED] pf_negotiate_latest_newer
[21:38:37] [PASSED] pf_negotiate_latest_next
[21:38:37] [SKIPPED] pf_negotiate_latest_older
[21:38:37] [SKIPPED] pf_negotiate_latest_prev
[21:38:37] =================== [PASSED] pf_service ====================
[21:38:37] ================= xe_guc_g2g (2 subtests) ==================
[21:38:37] ============== xe_live_guc_g2g_kunit_default  ==============
[21:38:37] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[21:38:37] ============== xe_live_guc_g2g_kunit_allmem  ===============
[21:38:37] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[21:38:37] =================== [SKIPPED] xe_guc_g2g ===================
[21:38:37] =================== xe_mocs (2 subtests) ===================
[21:38:37] ================ xe_live_mocs_kernel_kunit  ================
[21:38:37] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[21:38:37] ================ xe_live_mocs_reset_kunit  =================
[21:38:37] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[21:38:37] ==================== [SKIPPED] xe_mocs =====================
[21:38:37] ================= xe_migrate (2 subtests) ==================
[21:38:37] ================= xe_migrate_sanity_kunit  =================
[21:38:37] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[21:38:37] ================== xe_validate_ccs_kunit  ==================
[21:38:37] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[21:38:37] =================== [SKIPPED] xe_migrate ===================
[21:38:37] ================== xe_dma_buf (1 subtest) ==================
[21:38:37] ==================== xe_dma_buf_kunit  =====================
[21:38:37] ================ [SKIPPED] xe_dma_buf_kunit ================
[21:38:37] =================== [SKIPPED] xe_dma_buf ===================
[21:38:37] ================= xe_bo_shrink (1 subtest) =================
[21:38:37] =================== xe_bo_shrink_kunit  ====================
[21:38:37] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[21:38:37] ================== [SKIPPED] xe_bo_shrink ==================
[21:38:37] ==================== xe_bo (2 subtests) ====================
[21:38:37] ================== xe_ccs_migrate_kunit  ===================
[21:38:37] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[21:38:37] ==================== xe_bo_evict_kunit  ====================
[21:38:37] =============== [SKIPPED] xe_bo_evict_kunit ================
[21:38:37] ===================== [SKIPPED] xe_bo ======================
[21:38:37] ==================== args (13 subtests) ====================
[21:38:37] [PASSED] count_args_test
[21:38:37] [PASSED] call_args_example
[21:38:37] [PASSED] call_args_test
[21:38:37] [PASSED] drop_first_arg_example
[21:38:37] [PASSED] drop_first_arg_test
[21:38:37] [PASSED] first_arg_example
[21:38:37] [PASSED] first_arg_test
[21:38:37] [PASSED] last_arg_example
[21:38:37] [PASSED] last_arg_test
[21:38:37] [PASSED] pick_arg_example
[21:38:37] [PASSED] if_args_example
[21:38:37] [PASSED] if_args_test
[21:38:37] [PASSED] sep_comma_example
[21:38:37] ====================== [PASSED] args =======================
[21:38:37] =================== xe_pci (3 subtests) ====================
[21:38:37] ==================== check_graphics_ip  ====================
[21:38:37] [PASSED] 12.00 Xe_LP
[21:38:37] [PASSED] 12.10 Xe_LP+
[21:38:37] [PASSED] 12.55 Xe_HPG
[21:38:37] [PASSED] 12.60 Xe_HPC
[21:38:37] [PASSED] 12.70 Xe_LPG
[21:38:37] [PASSED] 12.71 Xe_LPG
[21:38:37] [PASSED] 12.74 Xe_LPG+
[21:38:37] [PASSED] 20.01 Xe2_HPG
[21:38:37] [PASSED] 20.02 Xe2_HPG
[21:38:37] [PASSED] 20.04 Xe2_LPG
[21:38:37] [PASSED] 30.00 Xe3_LPG
[21:38:37] [PASSED] 30.01 Xe3_LPG
[21:38:37] [PASSED] 30.03 Xe3_LPG
[21:38:37] [PASSED] 30.04 Xe3_LPG
[21:38:37] [PASSED] 30.05 Xe3_LPG
[21:38:37] [PASSED] 35.10 Xe3p_LPG
[21:38:37] [PASSED] 35.11 Xe3p_XPC
[21:38:37] ================ [PASSED] check_graphics_ip ================
[21:38:37] ===================== check_media_ip  ======================
[21:38:37] [PASSED] 12.00 Xe_M
[21:38:37] [PASSED] 12.55 Xe_HPM
[21:38:37] [PASSED] 13.00 Xe_LPM+
[21:38:37] [PASSED] 13.01 Xe2_HPM
[21:38:37] [PASSED] 20.00 Xe2_LPM
[21:38:37] [PASSED] 30.00 Xe3_LPM
[21:38:37] [PASSED] 30.02 Xe3_LPM
[21:38:37] [PASSED] 35.00 Xe3p_LPM
[21:38:37] [PASSED] 35.03 Xe3p_HPM
[21:38:37] ================= [PASSED] check_media_ip ==================
[21:38:37] =================== check_platform_desc  ===================
[21:38:37] [PASSED] 0x9A60 (TIGERLAKE)
[21:38:37] [PASSED] 0x9A68 (TIGERLAKE)
[21:38:37] [PASSED] 0x9A70 (TIGERLAKE)
[21:38:37] [PASSED] 0x9A40 (TIGERLAKE)
[21:38:37] [PASSED] 0x9A49 (TIGERLAKE)
[21:38:37] [PASSED] 0x9A59 (TIGERLAKE)
[21:38:37] [PASSED] 0x9A78 (TIGERLAKE)
[21:38:37] [PASSED] 0x9AC0 (TIGERLAKE)
[21:38:37] [PASSED] 0x9AC9 (TIGERLAKE)
[21:38:37] [PASSED] 0x9AD9 (TIGERLAKE)
[21:38:37] [PASSED] 0x9AF8 (TIGERLAKE)
[21:38:37] [PASSED] 0x4C80 (ROCKETLAKE)
[21:38:37] [PASSED] 0x4C8A (ROCKETLAKE)
[21:38:37] [PASSED] 0x4C8B (ROCKETLAKE)
[21:38:37] [PASSED] 0x4C8C (ROCKETLAKE)
[21:38:37] [PASSED] 0x4C90 (ROCKETLAKE)
[21:38:37] [PASSED] 0x4C9A (ROCKETLAKE)
[21:38:37] [PASSED] 0x4680 (ALDERLAKE_S)
[21:38:37] [PASSED] 0x4682 (ALDERLAKE_S)
[21:38:37] [PASSED] 0x4688 (ALDERLAKE_S)
[21:38:37] [PASSED] 0x468A (ALDERLAKE_S)
[21:38:37] [PASSED] 0x468B (ALDERLAKE_S)
[21:38:37] [PASSED] 0x4690 (ALDERLAKE_S)
[21:38:37] [PASSED] 0x4692 (ALDERLAKE_S)
[21:38:37] [PASSED] 0x4693 (ALDERLAKE_S)
[21:38:37] [PASSED] 0x46A0 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46A1 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46A2 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46A3 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46A6 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46A8 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46AA (ALDERLAKE_P)
[21:38:37] [PASSED] 0x462A (ALDERLAKE_P)
[21:38:37] [PASSED] 0x4626 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x4628 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46B0 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46B1 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46B2 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46B3 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46C0 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46C1 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46C2 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46C3 (ALDERLAKE_P)
[21:38:37] [PASSED] 0x46D0 (ALDERLAKE_N)
[21:38:37] [PASSED] 0x46D1 (ALDERLAKE_N)
[21:38:37] [PASSED] 0x46D2 (ALDERLAKE_N)
[21:38:37] [PASSED] 0x46D3 (ALDERLAKE_N)
[21:38:37] [PASSED] 0x46D4 (ALDERLAKE_N)
[21:38:37] [PASSED] 0xA721 (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7A1 (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7A9 (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7AC (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7AD (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA720 (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7A0 (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7A8 (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7AA (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA7AB (ALDERLAKE_P)
[21:38:37] [PASSED] 0xA780 (ALDERLAKE_S)
[21:38:37] [PASSED] 0xA781 (ALDERLAKE_S)
[21:38:37] [PASSED] 0xA782 (ALDERLAKE_S)
[21:38:37] [PASSED] 0xA783 (ALDERLAKE_S)
[21:38:37] [PASSED] 0xA788 (ALDERLAKE_S)
[21:38:37] [PASSED] 0xA789 (ALDERLAKE_S)
[21:38:37] [PASSED] 0xA78A (ALDERLAKE_S)
[21:38:37] [PASSED] 0xA78B (ALDERLAKE_S)
[21:38:37] [PASSED] 0x4905 (DG1)
[21:38:37] [PASSED] 0x4906 (DG1)
[21:38:37] [PASSED] 0x4907 (DG1)
[21:38:37] [PASSED] 0x4908 (DG1)
[21:38:37] [PASSED] 0x4909 (DG1)
[21:38:37] [PASSED] 0x56C0 (DG2)
[21:38:37] [PASSED] 0x56C2 (DG2)
[21:38:37] [PASSED] 0x56C1 (DG2)
[21:38:37] [PASSED] 0x7D51 (METEORLAKE)
[21:38:37] [PASSED] 0x7DD1 (METEORLAKE)
[21:38:37] [PASSED] 0x7D41 (METEORLAKE)
[21:38:37] [PASSED] 0x7D67 (METEORLAKE)
[21:38:37] [PASSED] 0xB640 (METEORLAKE)
[21:38:37] [PASSED] 0x56A0 (DG2)
[21:38:37] [PASSED] 0x56A1 (DG2)
[21:38:37] [PASSED] 0x56A2 (DG2)
[21:38:37] [PASSED] 0x56BE (DG2)
[21:38:37] [PASSED] 0x56BF (DG2)
[21:38:37] [PASSED] 0x5690 (DG2)
[21:38:37] [PASSED] 0x5691 (DG2)
[21:38:37] [PASSED] 0x5692 (DG2)
[21:38:37] [PASSED] 0x56A5 (DG2)
[21:38:37] [PASSED] 0x56A6 (DG2)
[21:38:37] [PASSED] 0x56B0 (DG2)
[21:38:37] [PASSED] 0x56B1 (DG2)
[21:38:37] [PASSED] 0x56BA (DG2)
[21:38:37] [PASSED] 0x56BB (DG2)
[21:38:37] [PASSED] 0x56BC (DG2)
[21:38:37] [PASSED] 0x56BD (DG2)
[21:38:37] [PASSED] 0x5693 (DG2)
[21:38:37] [PASSED] 0x5694 (DG2)
[21:38:37] [PASSED] 0x5695 (DG2)
[21:38:37] [PASSED] 0x56A3 (DG2)
[21:38:37] [PASSED] 0x56A4 (DG2)
[21:38:37] [PASSED] 0x56B2 (DG2)
[21:38:37] [PASSED] 0x56B3 (DG2)
[21:38:37] [PASSED] 0x5696 (DG2)
[21:38:37] [PASSED] 0x5697 (DG2)
[21:38:37] [PASSED] 0xB69 (PVC)
[21:38:37] [PASSED] 0xB6E (PVC)
[21:38:37] [PASSED] 0xBD4 (PVC)
[21:38:37] [PASSED] 0xBD5 (PVC)
[21:38:37] [PASSED] 0xBD6 (PVC)
[21:38:37] [PASSED] 0xBD7 (PVC)
[21:38:37] [PASSED] 0xBD8 (PVC)
[21:38:37] [PASSED] 0xBD9 (PVC)
[21:38:37] [PASSED] 0xBDA (PVC)
[21:38:37] [PASSED] 0xBDB (PVC)
[21:38:37] [PASSED] 0xBE0 (PVC)
[21:38:37] [PASSED] 0xBE1 (PVC)
[21:38:37] [PASSED] 0xBE5 (PVC)
[21:38:37] [PASSED] 0x7D40 (METEORLAKE)
[21:38:37] [PASSED] 0x7D45 (METEORLAKE)
[21:38:37] [PASSED] 0x7D55 (METEORLAKE)
[21:38:37] [PASSED] 0x7D60 (METEORLAKE)
[21:38:37] [PASSED] 0x7DD5 (METEORLAKE)
[21:38:37] [PASSED] 0x6420 (LUNARLAKE)
[21:38:37] [PASSED] 0x64A0 (LUNARLAKE)
[21:38:37] [PASSED] 0x64B0 (LUNARLAKE)
[21:38:37] [PASSED] 0xE202 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE209 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE20B (BATTLEMAGE)
[21:38:37] [PASSED] 0xE20C (BATTLEMAGE)
[21:38:37] [PASSED] 0xE20D (BATTLEMAGE)
[21:38:37] [PASSED] 0xE210 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE211 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE212 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE216 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE220 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE221 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE222 (BATTLEMAGE)
[21:38:37] [PASSED] 0xE223 (BATTLEMAGE)
[21:38:37] [PASSED] 0xB080 (PANTHERLAKE)
[21:38:37] [PASSED] 0xB081 (PANTHERLAKE)
[21:38:37] [PASSED] 0xB082 (PANTHERLAKE)
[21:38:37] [PASSED] 0xB083 (PANTHERLAKE)
[21:38:37] [PASSED] 0xB084 (PANTHERLAKE)
[21:38:37] [PASSED] 0xB085 (PANTHERLAKE)
[21:38:37] [PASSED] 0xB086 (PANTHERLAKE)
[21:38:38] [PASSED] 0xB087 (PANTHERLAKE)
[21:38:38] [PASSED] 0xB08F (PANTHERLAKE)
[21:38:38] [PASSED] 0xB090 (PANTHERLAKE)
[21:38:38] [PASSED] 0xB0A0 (PANTHERLAKE)
[21:38:38] [PASSED] 0xB0B0 (PANTHERLAKE)
[21:38:38] [PASSED] 0xFD80 (PANTHERLAKE)
[21:38:38] [PASSED] 0xFD81 (PANTHERLAKE)
[21:38:38] [PASSED] 0xD740 (NOVALAKE_S)
[21:38:38] [PASSED] 0xD741 (NOVALAKE_S)
[21:38:38] [PASSED] 0xD742 (NOVALAKE_S)
[21:38:38] [PASSED] 0xD743 (NOVALAKE_S)
[21:38:38] [PASSED] 0xD744 (NOVALAKE_S)
[21:38:38] [PASSED] 0xD745 (NOVALAKE_S)
[21:38:38] [PASSED] 0x674C (CRESCENTISLAND)
[21:38:38] [PASSED] 0xD750 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD751 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD752 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD753 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD754 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD755 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD756 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD757 (NOVALAKE_P)
[21:38:38] [PASSED] 0xD75F (NOVALAKE_P)
[21:38:38] =============== [PASSED] check_platform_desc ===============
[21:38:38] ===================== [PASSED] xe_pci ======================
[21:38:38] =================== xe_rtp (2 subtests) ====================
[21:38:38] =============== xe_rtp_process_to_sr_tests  ================
[21:38:38] [PASSED] coalesce-same-reg
[21:38:38] [PASSED] no-match-no-add
[21:38:38] [PASSED] match-or
[21:38:38] [PASSED] match-or-xfail
[21:38:38] [PASSED] no-match-no-add-multiple-rules
[21:38:38] [PASSED] two-regs-two-entries
[21:38:38] [PASSED] clr-one-set-other
[21:38:38] [PASSED] set-field
[21:38:38] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[21:38:38] [PASSED] conflict-not-disjoint
[21:38:38] [PASSED] conflict-reg-type
[21:38:38] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[21:38:38] ================== xe_rtp_process_tests  ===================
[21:38:38] [PASSED] active1
[21:38:38] [PASSED] active2
[21:38:38] [PASSED] active-inactive
[21:38:38] [PASSED] inactive-active
[21:38:38] [PASSED] inactive-1st_or_active-inactive
[21:38:38] [PASSED] inactive-2nd_or_active-inactive
[21:38:38] [PASSED] inactive-last_or_active-inactive
[21:38:38] [PASSED] inactive-no_or_active-inactive
[21:38:38] ============== [PASSED] xe_rtp_process_tests ===============
[21:38:38] ===================== [PASSED] xe_rtp ======================
[21:38:38] ==================== xe_wa (1 subtest) =====================
[21:38:38] ======================== xe_wa_gt  =========================
[21:38:38] [PASSED] TIGERLAKE B0
[21:38:38] [PASSED] DG1 A0
[21:38:38] [PASSED] DG1 B0
[21:38:38] [PASSED] ALDERLAKE_S A0
[21:38:38] [PASSED] ALDERLAKE_S B0
[21:38:38] [PASSED] ALDERLAKE_S C0
[21:38:38] [PASSED] ALDERLAKE_S D0
[21:38:38] [PASSED] ALDERLAKE_P A0
[21:38:38] [PASSED] ALDERLAKE_P B0
[21:38:38] [PASSED] ALDERLAKE_P C0
[21:38:38] [PASSED] ALDERLAKE_S RPLS D0
[21:38:38] [PASSED] ALDERLAKE_P RPLU E0
[21:38:38] [PASSED] DG2 G10 C0
[21:38:38] [PASSED] DG2 G11 B1
[21:38:38] [PASSED] DG2 G12 A1
[21:38:38] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[21:38:38] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[21:38:38] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[21:38:38] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[21:38:38] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[21:38:38] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[21:38:38] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[21:38:38] ==================== [PASSED] xe_wa_gt =====================
[21:38:38] ====================== [PASSED] xe_wa ======================
[21:38:38] ============================================================
[21:38:38] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[21:38:38] Elapsed time: 36.277s total, 4.271s configuring, 31.389s building, 0.595s running

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

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

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



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

* ✓ Xe.CI.BAT: success for drm/xe/pat: Type cleanup and invalid index hardening
  2026-04-14 21:14 [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening Xin Wang
                   ` (3 preceding siblings ...)
  2026-04-14 21:39 ` ✓ CI.KUnit: success for drm/xe/pat: Type cleanup and invalid index hardening Patchwork
@ 2026-04-14 22:37 ` Patchwork
  2026-04-14 23:26 ` ✓ Xe.CI.FULL: " Patchwork
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2026-04-14 22:37 UTC (permalink / raw)
  To: Xin Wang; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/pat: Type cleanup and invalid index hardening
URL   : https://patchwork.freedesktop.org/series/164886/
State : success

== Summary ==

CI Bug Log - changes from xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a_BAT -> xe-pw-164886v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (13 -> 13)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in xe-pw-164886v1_BAT that come from known issues:

### IGT changes ###

#### Possible fixes ####

  * igt@kms_force_connector_basic@prune-stale-modes:
    - bat-ptl-2:          [SKIP][1] -> [PASS][2] +3 other tests pass
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/bat-ptl-2/igt@kms_force_connector_basic@prune-stale-modes.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/bat-ptl-2/igt@kms_force_connector_basic@prune-stale-modes.html

  


Build changes
-------------

  * IGT: IGT_8857 -> IGT_8858
  * Linux: xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a -> xe-pw-164886v1

  IGT_8857: 7ed262f8dd72a12c8fbbb3d6a18c0753a2a2d57a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8858: f2486f2ab02d1163d864529f54a92066a3b9fe4b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a: 19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a
  xe-pw-164886v1: 164886v1

== Logs ==

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

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

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

* ✓ Xe.CI.FULL: success for drm/xe/pat: Type cleanup and invalid index hardening
  2026-04-14 21:14 [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening Xin Wang
                   ` (4 preceding siblings ...)
  2026-04-14 22:37 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-04-14 23:26 ` Patchwork
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2026-04-14 23:26 UTC (permalink / raw)
  To: Xin Wang; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/pat: Type cleanup and invalid index hardening
URL   : https://patchwork.freedesktop.org/series/164886/
State : success

== Summary ==

CI Bug Log - changes from xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a_FULL -> xe-pw-164886v1_FULL
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (2 -> 2)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in xe-pw-164886v1_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-bmg:          NOTRUN -> [FAIL][1] ([Intel XE#3718] / [Intel XE#6078])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][2] ([Intel XE#6078])
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_async_flips@alternate-sync-async-flip@pipe-c-dp-2.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-bmg:          NOTRUN -> [SKIP][3] ([Intel XE#2370]) +1 other test skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][4] ([Intel XE#2327]) +7 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#1124]) +16 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_bw@connected-linear-tiling-1-displays-3840x2160p:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#7621])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@kms_bw@connected-linear-tiling-1-displays-3840x2160p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#7679]) +2 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-3840x2160p:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#367] / [Intel XE#7354]) +4 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_bw@linear-tiling-4-displays-3840x2160p.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#2652]) +8 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs@pipe-c-dp-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#3432]) +1 other test skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#2887]) +17 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#2724] / [Intel XE#7449])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_chamelium_color@degamma:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#2325] / [Intel XE#7358]) +2 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_chamelium_color@degamma.html

  * igt@kms_chamelium_frames@hdmi-aspect-ratio:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2252]) +11 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@kms_chamelium_frames@hdmi-aspect-ratio.html

  * igt@kms_content_protection@dp-mst-type-0-hdcp14:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#6974]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@kms_content_protection@dp-mst-type-0-hdcp14.html

  * igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][16] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_content_protection@lic-type-0-hdcp14@pipe-a-dp-2.html

  * igt@kms_content_protection@mei-interface:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#7642])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@uevent-hdcp14:
    - shard-bmg:          NOTRUN -> [FAIL][18] ([Intel XE#6707] / [Intel XE#7439]) +1 other test fail
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_content_protection@uevent-hdcp14.html

  * igt@kms_cursor_crc@cursor-random-32x32:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2320]) +8 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@kms_cursor_crc@cursor-random-32x32.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x512:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#2321] / [Intel XE#7355])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-3/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#1508])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-3/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#1340] / [Intel XE#7435])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#4354] / [Intel XE#5870])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#2244])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#6126] / [Intel XE#776])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#2372] / [Intel XE#7359])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#2375])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#7178] / [Intel XE#7349])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#7178] / [Intel XE#7351]) +6 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2311]) +40 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#4141]) +24 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#2313]) +39 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#7061] / [Intel XE#7356]) +8 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-argb161616f-draw-mmap-wc.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#7308])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#3544])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [PASS][36] -> [SKIP][37] ([Intel XE#1503])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-5/igt@kms_hdr@invalid-hdr.html
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_hdr@invalid-hdr.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#6911] / [Intel XE#7378])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-3/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#6911] / [Intel XE#7466])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#4090] / [Intel XE#7443])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_pipe_stress@stress-xrgb8888-ytiled:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#4329] / [Intel XE#6912] / [Intel XE#7375])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_pipe_stress@stress-xrgb8888-ytiled.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#7283]) +7 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#2393])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-bmg:          NOTRUN -> [SKIP][44] ([Intel XE#5020] / [Intel XE#7348])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-b:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75@pipe-b.html

  * igt@kms_pm_backlight@fade:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#7376] / [Intel XE#870]) +2 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-lnl:          [PASS][47] -> [FAIL][48] ([Intel XE#7340])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-lnl-7/igt@kms_pm_dc@dc6-dpms.html
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-lnl-4/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@deep-pkgc:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#2505] / [Intel XE#7447])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_pm_dc@deep-pkgc.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_pm_rpm@package-g7:
    - shard-bmg:          NOTRUN -> [SKIP][51] ([Intel XE#6814] / [Intel XE#7428])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_pm_rpm@package-g7.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#1489]) +8 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#2387] / [Intel XE#7429]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr@psr2-primary-page-flip:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#2234] / [Intel XE#2850]) +14 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_psr@psr2-primary-page-flip.html

  * igt@kms_psr@psr2-primary-render:
    - shard-bmg:          NOTRUN -> [SKIP][55] ([Intel XE#2234])
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@kms_psr@psr2-primary-render.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-lnl:          [PASS][56] -> [SKIP][57] ([Intel XE#4692] / [Intel XE#7508])
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-lnl-1/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-lnl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-0:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#2330] / [Intel XE#5813])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-6/igt@kms_rotation_crc@primary-y-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-bmg:          NOTRUN -> [SKIP][59] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_scaling_modes@scaling-mode-full-aspect:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#2413])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-7/igt@kms_scaling_modes@scaling-mode-full-aspect.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-bmg:          NOTRUN -> [SKIP][61] ([Intel XE#1435])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_sharpness_filter@filter-formats:
    - shard-bmg:          NOTRUN -> [SKIP][62] ([Intel XE#6503]) +2 other tests skip
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@kms_sharpness_filter@filter-formats.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#2426] / [Intel XE#5848])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@max-min:
    - shard-bmg:          NOTRUN -> [SKIP][64] ([Intel XE#1499])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_vrr@max-min.html

  * igt@xe_compute@ccs-mode-basic:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#6599]) +1 other test skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@xe_compute@ccs-mode-basic.html

  * igt@xe_eudebug@basic-vm-bind-metadata-discovery:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#7636]) +13 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@xe_eudebug@basic-vm-bind-metadata-discovery.html

  * igt@xe_eudebug_sriov@deny-sriov:
    - shard-bmg:          NOTRUN -> [SKIP][67] ([Intel XE#5793] / [Intel XE#7320] / [Intel XE#7464])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@xe_eudebug_sriov@deny-sriov.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][68] ([Intel XE#6321])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  * igt@xe_evict@evict-small-multi-queue-cm:
    - shard-bmg:          NOTRUN -> [SKIP][69] ([Intel XE#7140]) +1 other test skip
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@xe_evict@evict-small-multi-queue-cm.html

  * igt@xe_exec_basic@multigpu-once-null-defer-mmap:
    - shard-bmg:          NOTRUN -> [SKIP][70] ([Intel XE#2322] / [Intel XE#7372]) +12 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-3/igt@xe_exec_basic@multigpu-once-null-defer-mmap.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr:
    - shard-bmg:          NOTRUN -> [SKIP][71] ([Intel XE#7136]) +17 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr.html

  * igt@xe_exec_multi_queue@two-queues-priority:
    - shard-bmg:          NOTRUN -> [SKIP][72] ([Intel XE#6874]) +39 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@xe_exec_multi_queue@two-queues-priority.html

  * igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#7138]) +11 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-rebind.html

  * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
    - shard-bmg:          NOTRUN -> [SKIP][74] ([Intel XE#2229])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html

  * igt@xe_multigpu_svm@mgpu-concurrent-access-basic:
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#6964]) +3 other tests skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@xe_multigpu_svm@mgpu-concurrent-access-basic.html

  * igt@xe_pat@pat-index-xelpg:
    - shard-bmg:          NOTRUN -> [SKIP][76] ([Intel XE#2236] / [Intel XE#7590])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@xe_pat@pat-index-xelpg.html

  * igt@xe_pat@pat-sw-hw-compare:
    - shard-bmg:          NOTRUN -> [FAIL][77] ([Intel XE#7695])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-7/igt@xe_pat@pat-sw-hw-compare.html

  * igt@xe_pat@xa-app-transient-media-off:
    - shard-bmg:          NOTRUN -> [SKIP][78] ([Intel XE#7590])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@xe_pat@xa-app-transient-media-off.html

  * igt@xe_pm@s2idle-d3cold-basic-exec:
    - shard-bmg:          NOTRUN -> [SKIP][79] ([Intel XE#2284] / [Intel XE#7370]) +1 other test skip
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@xe_pm@s2idle-d3cold-basic-exec.html

  * igt@xe_pxp@pxp-stale-bo-exec-post-rpm:
    - shard-bmg:          NOTRUN -> [SKIP][80] ([Intel XE#4733] / [Intel XE#7417]) +4 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-7/igt@xe_pxp@pxp-stale-bo-exec-post-rpm.html

  * igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz:
    - shard-bmg:          NOTRUN -> [SKIP][81] ([Intel XE#944]) +1 other test skip
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz.html

  * igt@xe_sriov_flr@flr-vf1-clear:
    - shard-bmg:          [PASS][82] -> [FAIL][83] ([Intel XE#6569])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-4/igt@xe_sriov_flr@flr-vf1-clear.html
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@xe_sriov_flr@flr-vf1-clear.html

  
#### Possible fixes ####

  * igt@core_hotunplug@hotunbind-rebind:
    - shard-bmg:          [SKIP][84] ([Intel XE#6779]) -> [PASS][85]
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@core_hotunplug@hotunbind-rebind.html
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@core_hotunplug@hotunbind-rebind.html

  * igt@core_setmaster@master-drop-set-root:
    - shard-bmg:          [FAIL][86] -> [PASS][87]
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@core_setmaster@master-drop-set-root.html
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@core_setmaster@master-drop-set-root.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-bmg:          [DMESG-FAIL][88] ([Intel XE#5545]) -> [PASS][89] +1 other test pass
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_vrr@cmrr@pipe-a-edp-1:
    - shard-lnl:          [FAIL][90] ([Intel XE#4459]) -> [PASS][91] +1 other test pass
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-lnl-8/igt@kms_vrr@cmrr@pipe-a-edp-1.html
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-lnl-5/igt@kms_vrr@cmrr@pipe-a-edp-1.html

  * igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
    - shard-lnl:          [FAIL][92] ([Intel XE#2142]) -> [PASS][93] +1 other test pass
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-lnl-5/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-lnl-6/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html

  * igt@xe_evict@evict-mixed-many-threads-small:
    - shard-bmg:          [INCOMPLETE][94] ([Intel XE#6321]) -> [PASS][95]
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-10/igt@xe_evict@evict-mixed-many-threads-small.html
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@xe_evict@evict-mixed-many-threads-small.html

  * igt@xe_exec_system_allocator@once-mmap-race-nomemset:
    - shard-bmg:          [SKIP][96] ([Intel XE#6557] / [Intel XE#6703]) -> [PASS][97] +2 other tests pass
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_exec_system_allocator@once-mmap-race-nomemset.html
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@xe_exec_system_allocator@once-mmap-race-nomemset.html

  * igt@xe_exec_system_allocator@threads-many-execqueues-mmap:
    - shard-bmg:          [SKIP][98] ([Intel XE#6703]) -> [PASS][99] +115 other tests pass
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_exec_system_allocator@threads-many-execqueues-mmap.html
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@xe_exec_system_allocator@threads-many-execqueues-mmap.html

  
#### Warnings ####

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-bmg:          [SKIP][100] ([Intel XE#6703]) -> [SKIP][101] ([Intel XE#1124]) +2 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p:
    - shard-bmg:          [SKIP][102] ([Intel XE#6703]) -> [SKIP][103] ([Intel XE#7679])
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@kms_bw@connected-linear-tiling-4-displays-2160x1440p.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs:
    - shard-bmg:          [SKIP][104] ([Intel XE#6703]) -> [SKIP][105] ([Intel XE#2887]) +3 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs.html
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
    - shard-bmg:          [SKIP][106] ([Intel XE#6703]) -> [SKIP][107] ([Intel XE#3432])
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html

  * igt@kms_chamelium_hpd@dp-hpd-storm:
    - shard-bmg:          [SKIP][108] ([Intel XE#6703]) -> [SKIP][109] ([Intel XE#2252]) +1 other test skip
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_chamelium_hpd@dp-hpd-storm.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@kms_chamelium_hpd@dp-hpd-storm.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-bmg:          [SKIP][110] ([Intel XE#6703]) -> [SKIP][111] ([Intel XE#2390] / [Intel XE#6974])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_content_protection@dp-mst-type-1.html
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-5/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-bmg:          [SKIP][112] ([Intel XE#6703]) -> [SKIP][113] ([Intel XE#2321] / [Intel XE#7355])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_cursor_crc@cursor-offscreen-512x512.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-random-128x42:
    - shard-bmg:          [SKIP][114] ([Intel XE#6703]) -> [SKIP][115] ([Intel XE#2320])
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_cursor_crc@cursor-random-128x42.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_cursor_crc@cursor-random-128x42.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-bmg:          [SKIP][116] ([Intel XE#6703]) -> [SKIP][117] ([Intel XE#2244])
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-7/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
    - shard-bmg:          [SKIP][118] ([Intel XE#6703]) -> [SKIP][119] ([Intel XE#7178] / [Intel XE#7351])
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-7/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt:
    - shard-bmg:          [SKIP][120] ([Intel XE#6703]) -> [SKIP][121] ([Intel XE#2311]) +5 other tests skip
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-9/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-linear:
    - shard-bmg:          [SKIP][122] ([Intel XE#6703]) -> [SKIP][123] ([Intel XE#4141]) +1 other test skip
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-mmap-wc:
    - shard-bmg:          [SKIP][124] ([Intel XE#6703]) -> [SKIP][125] ([Intel XE#7061] / [Intel XE#7356])
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-mmap-wc.html
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt:
    - shard-bmg:          [SKIP][126] ([Intel XE#2312]) -> [SKIP][127] ([Intel XE#2313])
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt.html
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt:
    - shard-bmg:          [SKIP][128] ([Intel XE#6703]) -> [SKIP][129] ([Intel XE#2313]) +2 other tests skip
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping:
    - shard-bmg:          [SKIP][130] ([Intel XE#6703]) -> [SKIP][131] ([Intel XE#7283])
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping.html
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb:
    - shard-bmg:          [SKIP][132] ([Intel XE#6703]) -> [SKIP][133] ([Intel XE#1489]) +1 other test skip
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr@psr-sprite-plane-move:
    - shard-bmg:          [SKIP][134] ([Intel XE#6703]) -> [SKIP][135] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@kms_psr@psr-sprite-plane-move.html
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-6/igt@kms_psr@psr-sprite-plane-move.html

  * igt@xe_eudebug@basic-vm-bind-ufence-sigint-client:
    - shard-bmg:          [SKIP][136] ([Intel XE#6703]) -> [SKIP][137] ([Intel XE#7636]) +3 other tests skip
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_eudebug@basic-vm-bind-ufence-sigint-client.html
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-7/igt@xe_eudebug@basic-vm-bind-ufence-sigint-client.html

  * igt@xe_exec_basic@multigpu-no-exec-userptr-rebind:
    - shard-bmg:          [SKIP][138] ([Intel XE#6703]) -> [SKIP][139] ([Intel XE#2322] / [Intel XE#7372])
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_exec_basic@multigpu-no-exec-userptr-rebind.html
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@xe_exec_basic@multigpu-no-exec-userptr-rebind.html

  * igt@xe_exec_fault_mode@twice-multi-queue-invalid-userptr-fault:
    - shard-bmg:          [SKIP][140] ([Intel XE#6703]) -> [SKIP][141] ([Intel XE#7136]) +2 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_exec_fault_mode@twice-multi-queue-invalid-userptr-fault.html
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-2/igt@xe_exec_fault_mode@twice-multi-queue-invalid-userptr-fault.html

  * igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-userptr:
    - shard-bmg:          [SKIP][142] ([Intel XE#6703]) -> [SKIP][143] ([Intel XE#6874]) +4 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-userptr.html
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-1/igt@xe_exec_multi_queue@few-execs-preempt-mode-fault-userptr.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-rebind:
    - shard-bmg:          [SKIP][144] ([Intel XE#6703]) -> [SKIP][145] ([Intel XE#7138]) +2 other tests skip
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-rebind.html
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-10/igt@xe_exec_threads@threads-multi-queue-mixed-shared-vm-userptr-rebind.html

  * igt@xe_pm@d3hot-i2c:
    - shard-bmg:          [SKIP][146] ([Intel XE#6703]) -> [SKIP][147] ([Intel XE#5742] / [Intel XE#7328] / [Intel XE#7400])
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_pm@d3hot-i2c.html
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@xe_pm@d3hot-i2c.html

  * igt@xe_query@multigpu-query-invalid-cs-cycles:
    - shard-bmg:          [SKIP][148] ([Intel XE#6703]) -> [SKIP][149] ([Intel XE#944]) +1 other test skip
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a/shard-bmg-2/igt@xe_query@multigpu-query-invalid-cs-cycles.html
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164886v1/shard-bmg-4/igt@xe_query@multigpu-query-invalid-cs-cycles.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
  [Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2236]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2236
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
  [Intel XE#2372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2372
  [Intel XE#2375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2375
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4329]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4329
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
  [Intel XE#4692]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4692
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
  [Intel XE#5742]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5742
  [Intel XE#5793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5793
  [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#5870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5870
  [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
  [Intel XE#6126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6126
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6557]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6557
  [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
  [Intel XE#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599
  [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703
  [Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707
  [Intel XE#6779]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6779
  [Intel XE#6814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6814
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911
  [Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
  [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308
  [Intel XE#7320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7320
  [Intel XE#7328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7328
  [Intel XE#7340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7340
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [Intel XE#7348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7348
  [Intel XE#7349]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7349
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7354
  [Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
  [Intel XE#7359]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7359
  [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
  [Intel XE#7375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7375
  [Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
  [Intel XE#7378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7378
  [Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
  [Intel XE#7400]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7400
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7428
  [Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
  [Intel XE#7435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7435
  [Intel XE#7439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7439
  [Intel XE#7443]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7443
  [Intel XE#7447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7447
  [Intel XE#7449]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7449
  [Intel XE#7464]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7464
  [Intel XE#7466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7466
  [Intel XE#7508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7508
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#7621]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7621
  [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
  [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7695
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


Build changes
-------------

  * IGT: IGT_8857 -> IGT_8858
  * Linux: xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a -> xe-pw-164886v1

  IGT_8857: 7ed262f8dd72a12c8fbbb3d6a18c0753a2a2d57a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8858: f2486f2ab02d1163d864529f54a92066a3b9fe4b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4902-19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a: 19fc8405447f8b93c3fb0a341c00c2ffc6b05c4a
  xe-pw-164886v1: 164886v1

== Logs ==

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

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

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

* Re: [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper
  2026-04-14 21:14 ` [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper Xin Wang
@ 2026-04-15  8:54   ` Matthew Auld
  2026-04-15  9:12   ` Matthew Auld
  1 sibling, 0 replies; 10+ messages in thread
From: Matthew Auld @ 2026-04-15  8:54 UTC (permalink / raw)
  To: Xin Wang, intel-xe

On 14/04/2026 22:14, Xin Wang wrote:
> Add an inline helper xe_cache_pat_idx() that wraps pat.idx[] read
> accesses with xe_assert() validation, catching any attempt to use
> an invalid PAT index at runtime.
> 
> Suggested-by: Matthew Auld <matthew.auld@intel.com>
> Signed-off-by: Xin Wang <x.wang@intel.com>

Reviewed-by: Matthew Auld <matthew.auld@intel.com>

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

* Re: [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper
  2026-04-14 21:14 ` [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper Xin Wang
  2026-04-15  8:54   ` Matthew Auld
@ 2026-04-15  9:12   ` Matthew Auld
  2026-04-15 16:46     ` Wang, X
  1 sibling, 1 reply; 10+ messages in thread
From: Matthew Auld @ 2026-04-15  9:12 UTC (permalink / raw)
  To: Xin Wang, intel-xe

On 14/04/2026 22:14, Xin Wang wrote:
> Add an inline helper xe_cache_pat_idx() that wraps pat.idx[] read
> accesses with xe_assert() validation, catching any attempt to use
> an invalid PAT index at runtime.
> 
> Suggested-by: Matthew Auld <matthew.auld@intel.com>
> Signed-off-by: Xin Wang <x.wang@intel.com>
> ---
>   drivers/gpu/drm/xe/display/xe_fb_pin.c | 11 ++++++-----
>   drivers/gpu/drm/xe/tests/xe_migrate.c  |  3 ++-
>   drivers/gpu/drm/xe/xe_ggtt.c           |  7 ++++---
>   drivers/gpu/drm/xe/xe_migrate.c        | 15 ++++++++-------
>   drivers/gpu/drm/xe/xe_pat.h            | 24 +++++++++++++++++++++++-
>   drivers/gpu/drm/xe/xe_pt.c             |  3 ++-
>   drivers/gpu/drm/xe/xe_vm.c             |  6 +++---
>   7 files changed, 48 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index e45a1e7a4670..d670a3cf1b84 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -14,6 +14,7 @@
>   #include "xe_device.h"
>   #include "xe_display_vma.h"
>   #include "xe_ggtt.h"
> +#include "xe_pat.h"
>   #include "xe_pm.h"
>   #include "xe_vram_types.h"
>   
> @@ -24,7 +25,7 @@ write_dpt_rotated(struct xe_bo *bo, struct iosys_map *map, u32 *dpt_ofs, u32 bo_
>   	struct xe_device *xe = xe_bo_device(bo);
>   	struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
>   	u32 column, row;
> -	u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
> +	u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe_cache_pat_idx(xe, XE_CACHE_NONE));
>   
>   	/* TODO: Maybe rewrite so we can traverse the bo addresses sequentially,
>   	 * by writing dpt/ggtt in a different order?
> @@ -64,7 +65,7 @@ write_dpt_remapped_linear(struct xe_bo *bo, struct iosys_map *map,
>   	struct xe_device *xe = xe_bo_device(bo);
>   	struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
>   	const u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo,
> -						 xe->pat.idx[XE_CACHE_NONE]);
> +						 xe_cache_pat_idx(xe, XE_CACHE_NONE));
>   	unsigned int offset = plane->offset * XE_PAGE_SIZE;
>   	unsigned int size = plane->size;
>   
> @@ -87,7 +88,7 @@ write_dpt_remapped_tiled(struct xe_bo *bo, struct iosys_map *map,
>   	struct xe_device *xe = xe_bo_device(bo);
>   	struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
>   	const u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo,
> -						 xe->pat.idx[XE_CACHE_NONE]);
> +						 xe_cache_pat_idx(xe, XE_CACHE_NONE));
>   	unsigned int offset, column, row;
>   
>   	for (row = 0; row < plane->height; row++) {
> @@ -190,7 +191,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
>   		return PTR_ERR(dpt);
>   
>   	if (view->type == I915_GTT_VIEW_NORMAL) {
> -		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
> +		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe_cache_pat_idx(xe, XE_CACHE_NONE));
>   		u32 x;
>   
>   		for (x = 0; x < size / XE_PAGE_SIZE; x++) {
> @@ -306,7 +307,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
>   		/* display uses tiles instead of bytes here, so convert it back.. */
>   		size = intel_rotation_info_size(&view->rotated) * XE_PAGE_SIZE;
>   
> -	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
> +	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe_cache_pat_idx(xe, XE_CACHE_NONE));
>   	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte,
>   						  ALIGN(size, align), align,
>   						  view->type == I915_GTT_VIEW_NORMAL ?
> diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c b/drivers/gpu/drm/xe/tests/xe_migrate.c
> index 34e2f0f4631f..50a97705e0ac 100644
> --- a/drivers/gpu/drm/xe/tests/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
> @@ -9,6 +9,7 @@
>   #include "tests/xe_kunit_helpers.h"
>   #include "tests/xe_pci_test.h"
>   
> +#include "xe_pat.h"
>   #include "xe_pci.h"
>   #include "xe_pm.h"
>   
> @@ -246,7 +247,7 @@ static void xe_migrate_sanity_test(struct xe_migrate *m, struct kunit *test,
>   	/* First part of the test, are we updating our pagetable bo with a new entry? */
>   	xe_map_wr(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1), u64,
>   		  0xdeaddeadbeefbeef);
> -	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, xe->pat.idx[XE_CACHE_WB], 0);
> +	expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, xe_cache_pat_idx(xe, XE_CACHE_WB), 0);
>   	if (m->q->vm->flags & XE_VM_FLAG_64K)
>   		expected |= XE_PTE_PS64;
>   	if (xe_bo_is_vram(pt))
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 3552fa3cac4b..a351c578b170 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -24,6 +24,7 @@
>   #include "xe_gt_types.h"
>   #include "xe_map.h"
>   #include "xe_mmio.h"
> +#include "xe_pat.h"
>   #include "xe_pm.h"
>   #include "xe_res_cursor.h"
>   #include "xe_sriov.h"
> @@ -258,7 +259,7 @@ static u64 xe_ggtt_get_pte(struct xe_ggtt *ggtt, u64 addr)
>   
>   static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
>   {
> -	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
> +	u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), XE_CACHE_WB);
>   	u64 end = start + size - 1;
>   	u64 scratch_pte;
>   
> @@ -723,7 +724,7 @@ static void xe_ggtt_map_bo(struct xe_ggtt *ggtt, struct xe_ggtt_node *node,
>   void xe_ggtt_map_bo_unlocked(struct xe_ggtt *ggtt, struct xe_bo *bo)
>   {
>   	u16 cache_mode = bo->flags & XE_BO_FLAG_NEEDS_UC ? XE_CACHE_NONE : XE_CACHE_WB;
> -	u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode];
> +	u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), cache_mode);
>   	u64 pte;
>   
>   	mutex_lock(&ggtt->lock);
> @@ -840,7 +841,7 @@ static int __xe_ggtt_insert_bo_at(struct xe_ggtt *ggtt, struct xe_bo *bo,
>   		bo->ggtt_node[tile_id] = NULL;
>   	} else {
>   		u16 cache_mode = bo->flags & XE_BO_FLAG_NEEDS_UC ? XE_CACHE_NONE : XE_CACHE_WB;
> -		u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode];
> +		u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), cache_mode);
>   		u64 pte = ggtt->pt_ops->pte_encode_flags(bo, pat_index);
>   
>   		xe_ggtt_map_bo(ggtt, bo->ggtt_node[tile_id], bo, pte);
> diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
> index 5fdc89ed5256..a87fbc1e9fb1 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/xe_migrate.c
> @@ -31,6 +31,7 @@
>   #include "xe_map.h"
>   #include "xe_mem_pool.h"
>   #include "xe_mocs.h"
> +#include "xe_pat.h"
>   #include "xe_printk.h"
>   #include "xe_pt.h"
>   #include "xe_res_cursor.h"
> @@ -217,7 +218,7 @@ static void xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>   				  struct xe_vm *vm, u32 *ofs)
>   {
>   	struct xe_device *xe = tile_to_xe(tile);
> -	u16 pat_index = xe->pat.idx[XE_CACHE_WB];
> +	u16 pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
>   	u8 id = tile->id;
>   	u32 num_entries = NUM_PT_SLOTS, num_level = vm->pt_root[id]->level;
>   #define VRAM_IDENTITY_MAP_COUNT	2
> @@ -337,7 +338,7 @@ static void xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
>   		 * if flat ccs is enabled.
>   		 */
>   		if (GRAPHICS_VER(xe) >= 20 && xe_device_has_flat_ccs(xe)) {
> -			u16 comp_pat_index = xe->pat.idx[XE_CACHE_NONE_COMPRESSION];
> +			u16 comp_pat_index = xe_cache_pat_idx(xe, XE_CACHE_NONE_COMPRESSION);
>   			u64 vram_offset = IDENTITY_OFFSET +
>   				DIV_ROUND_UP_ULL(actual_phy_size, SZ_1G);
>   			u64 pt31_ofs = xe_bo_size(bo) - XE_PAGE_SIZE;
> @@ -637,10 +638,10 @@ static void emit_pte(struct xe_migrate *m,
>   
>   	/* Indirect access needs compression enabled uncached PAT index */
>   	if (GRAPHICS_VERx100(xe) >= 2000)
> -		pat_index = is_comp_pte ? xe->pat.idx[XE_CACHE_NONE_COMPRESSION] :
> -					  xe->pat.idx[XE_CACHE_WB];
> +		pat_index = is_comp_pte ? xe_cache_pat_idx(xe, XE_CACHE_NONE_COMPRESSION) :
> +					  xe_cache_pat_idx(xe, XE_CACHE_WB);
>   	else
> -		pat_index = xe->pat.idx[XE_CACHE_WB];
> +		pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
>   
>   	ptes = DIV_ROUND_UP(size, XE_PAGE_SIZE);
>   
> @@ -1876,7 +1877,7 @@ __xe_migrate_update_pgtables(struct xe_migrate *m,
>   
>   	/* For sysmem PTE's, need to map them in our hole.. */
>   	if (!IS_DGFX(xe)) {
> -		u16 pat_index = xe->pat.idx[XE_CACHE_WB];
> +		u16 pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
>   		u32 ptes, ofs;
>   
>   		ppgtt_ofs = NUM_KERNEL_PDE - 1;
> @@ -2098,7 +2099,7 @@ static void build_pt_update_batch_sram(struct xe_migrate *m,
>   				       struct drm_pagemap_addr *sram_addr,
>   				       u32 size, int level)
>   {
> -	u16 pat_index = tile_to_xe(m->tile)->pat.idx[XE_CACHE_WB];
> +	u16 pat_index = xe_cache_pat_idx(tile_to_xe(m->tile), XE_CACHE_WB);
>   	u64 gpu_page_size = 0x1ull << xe_pt_shift(level);
>   	u32 ptes;
>   	int i = 0;
> diff --git a/drivers/gpu/drm/xe/xe_pat.h b/drivers/gpu/drm/xe/xe_pat.h
> index a1e287c08f57..338fda95e63f 100644
> --- a/drivers/gpu/drm/xe/xe_pat.h
> +++ b/drivers/gpu/drm/xe/xe_pat.h
> @@ -8,8 +8,11 @@
>   
>   #include <linux/types.h>
>   
> +#include "xe_assert.h"
> +#include "xe_device_types.h"
> +#include "xe_pt_types.h"
> +
>   struct drm_printer;
> -struct xe_device;
>   struct xe_gt;
>   
>   #define XE_PAT_INVALID_IDX	U16_MAX
> @@ -82,4 +85,23 @@ bool xe_pat_index_get_comp_en(struct xe_device *xe, u16 pat_index);
>    */
>   u16 xe_pat_index_get_l3_policy(struct xe_device *xe, u16 pat_index);
>   
> +/**
> + * xe_cache_pat_idx - Get the PAT index for a given cache level
> + * @xe: xe device
> + * @cache_mode: cache level to look up
> + *
> + * Assert that @cache_mode is within bounds and that the PAT index has
> + * been configured for the requested cache level, then return it.
> + *
> + * Return: PAT index corresponding to @cache_mode
> + */
> +static inline u16 xe_cache_pat_idx(struct xe_device *xe,
> +				   enum xe_cache_level cache_mode)
> +{
> +	xe_assert(xe, cache_mode < __XE_CACHE_LEVEL_COUNT);
> +	xe_assert(xe, xe->pat.idx[cache_mode] != XE_PAT_INVALID_IDX);
> +
> +	return xe->pat.idx[cache_mode];
> +}

Oh, actually maybe better to move this to the .c file, unless there is a 
strong reason not to? Especially if we have to add a bunch of extra 
includes in the .h.


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

* Re: [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper
  2026-04-15  9:12   ` Matthew Auld
@ 2026-04-15 16:46     ` Wang, X
  0 siblings, 0 replies; 10+ messages in thread
From: Wang, X @ 2026-04-15 16:46 UTC (permalink / raw)
  To: Matthew Auld, intel-xe



On 4/15/2026 02:12, Matthew Auld wrote:
> On 14/04/2026 22:14, Xin Wang wrote:
>> Add an inline helper xe_cache_pat_idx() that wraps pat.idx[] read
>> accesses with xe_assert() validation, catching any attempt to use
>> an invalid PAT index at runtime.
>>
>> Suggested-by: Matthew Auld <matthew.auld@intel.com>
>> Signed-off-by: Xin Wang <x.wang@intel.com>
>> ---
>>   drivers/gpu/drm/xe/display/xe_fb_pin.c | 11 ++++++-----
>>   drivers/gpu/drm/xe/tests/xe_migrate.c  |  3 ++-
>>   drivers/gpu/drm/xe/xe_ggtt.c           |  7 ++++---
>>   drivers/gpu/drm/xe/xe_migrate.c        | 15 ++++++++-------
>>   drivers/gpu/drm/xe/xe_pat.h            | 24 +++++++++++++++++++++++-
>>   drivers/gpu/drm/xe/xe_pt.c             |  3 ++-
>>   drivers/gpu/drm/xe/xe_vm.c             |  6 +++---
>>   7 files changed, 48 insertions(+), 21 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c 
>> b/drivers/gpu/drm/xe/display/xe_fb_pin.c
>> index e45a1e7a4670..d670a3cf1b84 100644
>> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
>> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
>> @@ -14,6 +14,7 @@
>>   #include "xe_device.h"
>>   #include "xe_display_vma.h"
>>   #include "xe_ggtt.h"
>> +#include "xe_pat.h"
>>   #include "xe_pm.h"
>>   #include "xe_vram_types.h"
>>   @@ -24,7 +25,7 @@ write_dpt_rotated(struct xe_bo *bo, struct 
>> iosys_map *map, u32 *dpt_ofs, u32 bo_
>>       struct xe_device *xe = xe_bo_device(bo);
>>       struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
>>       u32 column, row;
>> -    u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, 
>> xe->pat.idx[XE_CACHE_NONE]);
>> +    u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, 
>> xe_cache_pat_idx(xe, XE_CACHE_NONE));
>>         /* TODO: Maybe rewrite so we can traverse the bo addresses 
>> sequentially,
>>        * by writing dpt/ggtt in a different order?
>> @@ -64,7 +65,7 @@ write_dpt_remapped_linear(struct xe_bo *bo, struct 
>> iosys_map *map,
>>       struct xe_device *xe = xe_bo_device(bo);
>>       struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
>>       const u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo,
>> -                         xe->pat.idx[XE_CACHE_NONE]);
>> +                         xe_cache_pat_idx(xe, XE_CACHE_NONE));
>>       unsigned int offset = plane->offset * XE_PAGE_SIZE;
>>       unsigned int size = plane->size;
>>   @@ -87,7 +88,7 @@ write_dpt_remapped_tiled(struct xe_bo *bo, struct 
>> iosys_map *map,
>>       struct xe_device *xe = xe_bo_device(bo);
>>       struct xe_ggtt *ggtt = xe_device_get_root_tile(xe)->mem.ggtt;
>>       const u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo,
>> -                         xe->pat.idx[XE_CACHE_NONE]);
>> +                         xe_cache_pat_idx(xe, XE_CACHE_NONE));
>>       unsigned int offset, column, row;
>>         for (row = 0; row < plane->height; row++) {
>> @@ -190,7 +191,7 @@ static int __xe_pin_fb_vma_dpt(const struct 
>> intel_framebuffer *fb,
>>           return PTR_ERR(dpt);
>>         if (view->type == I915_GTT_VIEW_NORMAL) {
>> -        u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, 
>> xe->pat.idx[XE_CACHE_NONE]);
>> +        u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, 
>> xe_cache_pat_idx(xe, XE_CACHE_NONE));
>>           u32 x;
>>             for (x = 0; x < size / XE_PAGE_SIZE; x++) {
>> @@ -306,7 +307,7 @@ static int __xe_pin_fb_vma_ggtt(const struct 
>> intel_framebuffer *fb,
>>           /* display uses tiles instead of bytes here, so convert it 
>> back.. */
>>           size = intel_rotation_info_size(&view->rotated) * 
>> XE_PAGE_SIZE;
>>   -    pte = xe_ggtt_encode_pte_flags(ggtt, bo, 
>> xe->pat.idx[XE_CACHE_NONE]);
>> +    pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe_cache_pat_idx(xe, 
>> XE_CACHE_NONE));
>>       vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte,
>>                             ALIGN(size, align), align,
>>                             view->type == I915_GTT_VIEW_NORMAL ?
>> diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c 
>> b/drivers/gpu/drm/xe/tests/xe_migrate.c
>> index 34e2f0f4631f..50a97705e0ac 100644
>> --- a/drivers/gpu/drm/xe/tests/xe_migrate.c
>> +++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
>> @@ -9,6 +9,7 @@
>>   #include "tests/xe_kunit_helpers.h"
>>   #include "tests/xe_pci_test.h"
>>   +#include "xe_pat.h"
>>   #include "xe_pci.h"
>>   #include "xe_pm.h"
>>   @@ -246,7 +247,7 @@ static void xe_migrate_sanity_test(struct 
>> xe_migrate *m, struct kunit *test,
>>       /* First part of the test, are we updating our pagetable bo 
>> with a new entry? */
>>       xe_map_wr(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1), u64,
>>             0xdeaddeadbeefbeef);
>> -    expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, 
>> xe->pat.idx[XE_CACHE_WB], 0);
>> +    expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, 
>> xe_cache_pat_idx(xe, XE_CACHE_WB), 0);
>>       if (m->q->vm->flags & XE_VM_FLAG_64K)
>>           expected |= XE_PTE_PS64;
>>       if (xe_bo_is_vram(pt))
>> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
>> index 3552fa3cac4b..a351c578b170 100644
>> --- a/drivers/gpu/drm/xe/xe_ggtt.c
>> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
>> @@ -24,6 +24,7 @@
>>   #include "xe_gt_types.h"
>>   #include "xe_map.h"
>>   #include "xe_mmio.h"
>> +#include "xe_pat.h"
>>   #include "xe_pm.h"
>>   #include "xe_res_cursor.h"
>>   #include "xe_sriov.h"
>> @@ -258,7 +259,7 @@ static u64 xe_ggtt_get_pte(struct xe_ggtt *ggtt, 
>> u64 addr)
>>     static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
>>   {
>> -    u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[XE_CACHE_WB];
>> +    u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), 
>> XE_CACHE_WB);
>>       u64 end = start + size - 1;
>>       u64 scratch_pte;
>>   @@ -723,7 +724,7 @@ static void xe_ggtt_map_bo(struct xe_ggtt 
>> *ggtt, struct xe_ggtt_node *node,
>>   void xe_ggtt_map_bo_unlocked(struct xe_ggtt *ggtt, struct xe_bo *bo)
>>   {
>>       u16 cache_mode = bo->flags & XE_BO_FLAG_NEEDS_UC ? 
>> XE_CACHE_NONE : XE_CACHE_WB;
>> -    u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode];
>> +    u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), 
>> cache_mode);
>>       u64 pte;
>>         mutex_lock(&ggtt->lock);
>> @@ -840,7 +841,7 @@ static int __xe_ggtt_insert_bo_at(struct xe_ggtt 
>> *ggtt, struct xe_bo *bo,
>>           bo->ggtt_node[tile_id] = NULL;
>>       } else {
>>           u16 cache_mode = bo->flags & XE_BO_FLAG_NEEDS_UC ? 
>> XE_CACHE_NONE : XE_CACHE_WB;
>> -        u16 pat_index = tile_to_xe(ggtt->tile)->pat.idx[cache_mode];
>> +        u16 pat_index = xe_cache_pat_idx(tile_to_xe(ggtt->tile), 
>> cache_mode);
>>           u64 pte = ggtt->pt_ops->pte_encode_flags(bo, pat_index);
>>             xe_ggtt_map_bo(ggtt, bo->ggtt_node[tile_id], bo, pte);
>> diff --git a/drivers/gpu/drm/xe/xe_migrate.c 
>> b/drivers/gpu/drm/xe/xe_migrate.c
>> index 5fdc89ed5256..a87fbc1e9fb1 100644
>> --- a/drivers/gpu/drm/xe/xe_migrate.c
>> +++ b/drivers/gpu/drm/xe/xe_migrate.c
>> @@ -31,6 +31,7 @@
>>   #include "xe_map.h"
>>   #include "xe_mem_pool.h"
>>   #include "xe_mocs.h"
>> +#include "xe_pat.h"
>>   #include "xe_printk.h"
>>   #include "xe_pt.h"
>>   #include "xe_res_cursor.h"
>> @@ -217,7 +218,7 @@ static void xe_migrate_prepare_vm(struct xe_tile 
>> *tile, struct xe_migrate *m,
>>                     struct xe_vm *vm, u32 *ofs)
>>   {
>>       struct xe_device *xe = tile_to_xe(tile);
>> -    u16 pat_index = xe->pat.idx[XE_CACHE_WB];
>> +    u16 pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
>>       u8 id = tile->id;
>>       u32 num_entries = NUM_PT_SLOTS, num_level = 
>> vm->pt_root[id]->level;
>>   #define VRAM_IDENTITY_MAP_COUNT    2
>> @@ -337,7 +338,7 @@ static void xe_migrate_prepare_vm(struct xe_tile 
>> *tile, struct xe_migrate *m,
>>            * if flat ccs is enabled.
>>            */
>>           if (GRAPHICS_VER(xe) >= 20 && xe_device_has_flat_ccs(xe)) {
>> -            u16 comp_pat_index = 
>> xe->pat.idx[XE_CACHE_NONE_COMPRESSION];
>> +            u16 comp_pat_index = xe_cache_pat_idx(xe, 
>> XE_CACHE_NONE_COMPRESSION);
>>               u64 vram_offset = IDENTITY_OFFSET +
>>                   DIV_ROUND_UP_ULL(actual_phy_size, SZ_1G);
>>               u64 pt31_ofs = xe_bo_size(bo) - XE_PAGE_SIZE;
>> @@ -637,10 +638,10 @@ static void emit_pte(struct xe_migrate *m,
>>         /* Indirect access needs compression enabled uncached PAT 
>> index */
>>       if (GRAPHICS_VERx100(xe) >= 2000)
>> -        pat_index = is_comp_pte ? 
>> xe->pat.idx[XE_CACHE_NONE_COMPRESSION] :
>> -                      xe->pat.idx[XE_CACHE_WB];
>> +        pat_index = is_comp_pte ? xe_cache_pat_idx(xe, 
>> XE_CACHE_NONE_COMPRESSION) :
>> +                      xe_cache_pat_idx(xe, XE_CACHE_WB);
>>       else
>> -        pat_index = xe->pat.idx[XE_CACHE_WB];
>> +        pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
>>         ptes = DIV_ROUND_UP(size, XE_PAGE_SIZE);
>>   @@ -1876,7 +1877,7 @@ __xe_migrate_update_pgtables(struct 
>> xe_migrate *m,
>>         /* For sysmem PTE's, need to map them in our hole.. */
>>       if (!IS_DGFX(xe)) {
>> -        u16 pat_index = xe->pat.idx[XE_CACHE_WB];
>> +        u16 pat_index = xe_cache_pat_idx(xe, XE_CACHE_WB);
>>           u32 ptes, ofs;
>>             ppgtt_ofs = NUM_KERNEL_PDE - 1;
>> @@ -2098,7 +2099,7 @@ static void build_pt_update_batch_sram(struct 
>> xe_migrate *m,
>>                          struct drm_pagemap_addr *sram_addr,
>>                          u32 size, int level)
>>   {
>> -    u16 pat_index = tile_to_xe(m->tile)->pat.idx[XE_CACHE_WB];
>> +    u16 pat_index = xe_cache_pat_idx(tile_to_xe(m->tile), XE_CACHE_WB);
>>       u64 gpu_page_size = 0x1ull << xe_pt_shift(level);
>>       u32 ptes;
>>       int i = 0;
>> diff --git a/drivers/gpu/drm/xe/xe_pat.h b/drivers/gpu/drm/xe/xe_pat.h
>> index a1e287c08f57..338fda95e63f 100644
>> --- a/drivers/gpu/drm/xe/xe_pat.h
>> +++ b/drivers/gpu/drm/xe/xe_pat.h
>> @@ -8,8 +8,11 @@
>>     #include <linux/types.h>
>>   +#include "xe_assert.h"
>> +#include "xe_device_types.h"
>> +#include "xe_pt_types.h"
>> +
>>   struct drm_printer;
>> -struct xe_device;
>>   struct xe_gt;
>>     #define XE_PAT_INVALID_IDX    U16_MAX
>> @@ -82,4 +85,23 @@ bool xe_pat_index_get_comp_en(struct xe_device 
>> *xe, u16 pat_index);
>>    */
>>   u16 xe_pat_index_get_l3_policy(struct xe_device *xe, u16 pat_index);
>>   +/**
>> + * xe_cache_pat_idx - Get the PAT index for a given cache level
>> + * @xe: xe device
>> + * @cache_mode: cache level to look up
>> + *
>> + * Assert that @cache_mode is within bounds and that the PAT index has
>> + * been configured for the requested cache level, then return it.
>> + *
>> + * Return: PAT index corresponding to @cache_mode
>> + */
>> +static inline u16 xe_cache_pat_idx(struct xe_device *xe,
>> +                   enum xe_cache_level cache_mode)
>> +{
>> +    xe_assert(xe, cache_mode < __XE_CACHE_LEVEL_COUNT);
>> +    xe_assert(xe, xe->pat.idx[cache_mode] != XE_PAT_INVALID_IDX);
>> +
>> +    return xe->pat.idx[cache_mode];
>> +}
>
> Oh, actually maybe better to move this to the .c file, unless there is 
> a strong reason not to? Especially if we have to add a bunch of extra 
> includes in the .h.
>
My initial idea was to use an inline function to display the line number
and filename at the location of the call when the assert occurs, but it
seems that this doesn't achieve the desired result. I plan to use a
macro to implement this helper, which should be more reasonable.

Xin



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

end of thread, other threads:[~2026-04-15 16:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-14 21:14 [PATCH v3 0/3] drm/xe/pat: Type cleanup and invalid index hardening Xin Wang
2026-04-14 21:14 ` [PATCH v3 1/3] drm/xe: Standardize pat_index to u16 type Xin Wang
2026-04-14 21:14 ` [PATCH v3 2/3] drm/xe/pat: Default XE_CACHE_NONE_COMPRESSION to invalid Xin Wang
2026-04-14 21:14 ` [PATCH v3 3/3] drm/xe/pat: Introduce xe_cache_pat_idx() helper Xin Wang
2026-04-15  8:54   ` Matthew Auld
2026-04-15  9:12   ` Matthew Auld
2026-04-15 16:46     ` Wang, X
2026-04-14 21:39 ` ✓ CI.KUnit: success for drm/xe/pat: Type cleanup and invalid index hardening Patchwork
2026-04-14 22:37 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-14 23:26 ` ✓ Xe.CI.FULL: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox