public inbox for intel-xe@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support
@ 2026-04-07 15:50 Ville Syrjala
  2026-04-07 15:50 ` [PATCH 01/12] drm/i915/fb: Nuke intel_tile_row_size() Ville Syrjala
                   ` (16 more replies)
  0 siblings, 17 replies; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

I had a quick look at implementing tile64/Ys support.
https://github.com/vsyrjala/linux.git remap_tile_ys_64
is the result.

I think I want the whole generic remap thing from there
even if we don't end up adding the actual tile64/Ys support.
So here is an extract of some prep work from that branch,
though I didn't include the generic remap thing itself yet.

Ville Syrjälä (12):
  drm/i915/fb: Nuke intel_tile_row_size()
  drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static
  drm/i915/fb: Reject per-plane remapping with DPT
  drm/xe/fb: Use the correct gtt view for remapped FBs
  drm/xe/fb: Remove weird VMA end alignemnt
  drm/xe/fb: Extract xe_dpt_size()
  drm/i915/vma: Add helpers to check GTT view type
  drm/xe/fb: Use i915_gtt_view_is_*()
  drm/i915/fb: Use i915_gtt_view_is_*()
  drm/i915/selftests: Eliminate duplicate vma size check
  drm/i915/selftests:  Use i915_gtt_view_is_*()
  drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in
    intel_fb_view_init()

 drivers/gpu/drm/i915/display/intel_fb.c    | 42 ++++++++++-----------
 drivers/gpu/drm/i915/display/intel_fb.h    |  2 -
 drivers/gpu/drm/i915/i915_gtt_view_types.h | 15 ++++++++
 drivers/gpu/drm/i915/selftests/i915_vma.c  | 33 ++++++-----------
 drivers/gpu/drm/xe/display/xe_fb_pin.c     | 43 ++++++++++++----------
 5 files changed, 72 insertions(+), 63 deletions(-)

-- 
2.52.0


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

* [PATCH 01/12] drm/i915/fb: Nuke intel_tile_row_size()
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:42   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 02/12] drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static Ville Syrjala
                   ` (15 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

intel_tile_row_size() is unused. Nuke it.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 9 ---------
 drivers/gpu/drm/i915/display/intel_fb.h | 1 -
 2 files changed, 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 5768619f840f..83392c1a1ebe 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -876,15 +876,6 @@ static void intel_tile_block_dims(const struct drm_framebuffer *fb, int color_pl
 		*tile_height = 1;
 }
 
-unsigned int intel_tile_row_size(const struct drm_framebuffer *fb, int color_plane)
-{
-	unsigned int tile_width, tile_height;
-
-	intel_tile_dims(fb, color_plane, &tile_width, &tile_height);
-
-	return fb->pitches[color_plane] * tile_height;
-}
-
 unsigned int
 intel_fb_align_height(const struct drm_framebuffer *fb,
 		      int color_plane, unsigned int height)
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 22514d5f2bb6..fb1ec2a1e905 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -62,7 +62,6 @@ int skl_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane);
 unsigned int intel_tile_size(struct intel_display *display);
 unsigned int intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane);
 unsigned int intel_tile_height(const struct drm_framebuffer *fb, int color_plane);
-unsigned int intel_tile_row_size(const struct drm_framebuffer *fb, int color_plane);
 unsigned int intel_fb_align_height(const struct drm_framebuffer *fb,
 				   int color_plane, unsigned int height);
 
-- 
2.52.0


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

* [PATCH 02/12] drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
  2026-04-07 15:50 ` [PATCH 01/12] drm/i915/fb: Nuke intel_tile_row_size() Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:43   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 03/12] drm/i915/fb: Reject per-plane remapping with DPT Ville Syrjala
                   ` (14 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

intel_fb_needs_pot_stride_remap() isn't needed outside intel_fb.c.
Make it static.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
 drivers/gpu/drm/i915/display/intel_fb.h | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 83392c1a1ebe..4b0afea1c456 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -1265,7 +1265,7 @@ static bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
 	return true;
 }
 
-bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb)
+static bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb)
 {
 	struct intel_display *display = to_intel_display(fb->base.dev);
 
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index fb1ec2a1e905..fc2c4d59bf06 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -77,7 +77,6 @@ u32 intel_plane_compute_aligned_offset(int *x, int *y,
 				       const struct intel_plane_state *plane_state,
 				       int color_plane);
 
-bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb);
 bool intel_plane_uses_fence(const struct intel_plane_state *plane_state);
 bool intel_fb_supports_90_270_rotation(const struct intel_framebuffer *fb);
 
-- 
2.52.0


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

* [PATCH 03/12] drm/i915/fb: Reject per-plane remapping with DPT
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
  2026-04-07 15:50 ` [PATCH 01/12] drm/i915/fb: Nuke intel_tile_row_size() Ville Syrjala
  2026-04-07 15:50 ` [PATCH 02/12] drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:43   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 04/12] drm/xe/fb: Use the correct gtt view for remapped FBs Ville Syrjala
                   ` (13 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

We currently create a single DPT for the entire FB, so we can't
actually do the per-plane remap. Reject it for now.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 4b0afea1c456..52a619088e8e 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -1252,6 +1252,10 @@ static bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
 	if (intel_fb_is_ccs_modifier(fb->modifier))
 		return false;
 
+	/* TODO implement remapping with DPT */
+	if (intel_fb_uses_dpt(fb))
+		return false;
+
 	/* Linear needs a page aligned stride for remapping */
 	if (fb->modifier == DRM_FORMAT_MOD_LINEAR) {
 		unsigned int alignment = intel_tile_size(display) - 1;
-- 
2.52.0


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

* [PATCH 04/12] drm/xe/fb: Use the correct gtt view for remapped FBs
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (2 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 03/12] drm/i915/fb: Reject per-plane remapping with DPT Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:44   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 05/12] drm/xe/fb: Remove weird VMA end alignemnt Ville Syrjala
                   ` (12 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

Use the proper gtt view from the plane state rather than always
assuming that it came directly from the FB. This is in the DPT
codepath so the view should currently always come from the FB,
but in the future we may also want per-plane remapping with DPT.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/xe_fb_pin.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index e45a1e7a4670..35e5c322f8b0 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -154,7 +154,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
 	if (view->type == I915_GTT_VIEW_NORMAL)
 		dpt_size = ALIGN(size / XE_PAGE_SIZE * 8, XE_PAGE_SIZE);
 	else if (view->type == I915_GTT_VIEW_REMAPPED)
-		dpt_size = ALIGN(intel_remapped_info_size(&fb->remapped_view.gtt.remapped) * 8,
+		dpt_size = ALIGN(intel_remapped_info_size(&view->remapped) * 8,
 				 XE_PAGE_SIZE);
 	else
 		/* display uses 4K tiles instead of bytes here, convert to entries.. */
-- 
2.52.0


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

* [PATCH 05/12] drm/xe/fb: Remove weird VMA end alignemnt
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (3 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 04/12] drm/xe/fb: Use the correct gtt view for remapped FBs Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:45   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 06/12] drm/xe/fb: Extract xe_dpt_size() Ville Syrjala
                   ` (11 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

For some reason xe is also alining the end of the vma. That
should not be necessary, so don't.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/xe_fb_pin.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 35e5c322f8b0..72efafb189f7 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -307,8 +307,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
 		size = intel_rotation_info_size(&view->rotated) * XE_PAGE_SIZE;
 
 	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
-	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte,
-						  ALIGN(size, align), align,
+	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte, size, align,
 						  view->type == I915_GTT_VIEW_NORMAL ?
 						  NULL : write_ggtt_rotated_node,
 						  &(struct fb_rotate_args){view, bo});
-- 
2.52.0


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

* [PATCH 06/12] drm/xe/fb: Extract xe_dpt_size()
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (4 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 05/12] drm/xe/fb: Remove weird VMA end alignemnt Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:47   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 07/12] drm/i915/vma: Add helpers to check GTT view type Ville Syrjala
                   ` (10 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

Declutter the xe fb pinning code by extracting the DPT size
calculation into its own function.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/xe_fb_pin.c | 30 +++++++++++++++-----------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 72efafb189f7..9873904a950d 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -139,6 +139,22 @@ write_dpt_remapped(struct xe_bo *bo,
 	}
 }
 
+static unsigned int xe_dpt_size(struct drm_gem_object *obj,
+				const struct i915_gtt_view *view)
+{
+	unsigned int pages;
+	int pte_size = 8;
+
+	if (view->type == I915_GTT_VIEW_NORMAL)
+		pages = obj->size / XE_PAGE_SIZE;
+	else if (view->type == I915_GTT_VIEW_REMAPPED)
+		pages = intel_remapped_info_size(&view->remapped);
+	else
+		pages = intel_rotation_info_size(&view->rotated);
+
+	return ALIGN(pages * pte_size, XE_PAGE_SIZE);
+}
+
 static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
 			       const struct i915_gtt_view *view,
 			       struct i915_vma *vma,
@@ -149,17 +165,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
 	struct xe_ggtt *ggtt = tile0->mem.ggtt;
 	struct drm_gem_object *obj = intel_fb_bo(&fb->base);
 	struct xe_bo *bo = gem_to_xe_bo(obj), *dpt;
-	u32 dpt_size, size = bo->ttm.base.size;
-
-	if (view->type == I915_GTT_VIEW_NORMAL)
-		dpt_size = ALIGN(size / XE_PAGE_SIZE * 8, XE_PAGE_SIZE);
-	else if (view->type == I915_GTT_VIEW_REMAPPED)
-		dpt_size = ALIGN(intel_remapped_info_size(&view->remapped) * 8,
-				 XE_PAGE_SIZE);
-	else
-		/* display uses 4K tiles instead of bytes here, convert to entries.. */
-		dpt_size = ALIGN(intel_rotation_info_size(&view->rotated) * 8,
-				 XE_PAGE_SIZE);
+	u32 dpt_size = xe_dpt_size(obj, view);
 
 	if (IS_DGFX(xe))
 		dpt = xe_bo_create_pin_map_at_novm(xe, tile0,
@@ -193,7 +199,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
 		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
 		u32 x;
 
-		for (x = 0; x < size / XE_PAGE_SIZE; x++) {
+		for (x = 0; x < obj->size / XE_PAGE_SIZE; x++) {
 			u64 addr = xe_bo_addr(bo, x * XE_PAGE_SIZE, XE_PAGE_SIZE);
 
 			iosys_map_wr(&dpt->vmap, x * 8, u64, pte | addr);
-- 
2.52.0


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

* [PATCH 07/12] drm/i915/vma: Add helpers to check GTT view type
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (5 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 06/12] drm/xe/fb: Extract xe_dpt_size() Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:50   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 08/12] drm/xe/fb: Use i915_gtt_view_is_*() Ville Syrjala
                   ` (9 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

I915_GTT_VIEW_ROTATED is going away and being replaced by just
I915_GTT_VIEW_REMAPPED, so we're going to need another way to
determine if the view is rotated or not (since width/height
will need to be swapped when operating on the destination
coordinate space). Provide small helper functions to hide
such implementation details from most of the code using GTT views.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/i915_gtt_view_types.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gtt_view_types.h b/drivers/gpu/drm/i915/i915_gtt_view_types.h
index c084f67bc880..9c4f38db32ff 100644
--- a/drivers/gpu/drm/i915/i915_gtt_view_types.h
+++ b/drivers/gpu/drm/i915/i915_gtt_view_types.h
@@ -56,4 +56,19 @@ struct i915_gtt_view {
 	};
 };
 
+static inline bool i915_gtt_view_is_normal(const struct i915_gtt_view *view)
+{
+	return view->type == I915_GTT_VIEW_NORMAL;
+}
+
+static inline bool i915_gtt_view_is_remapped(const struct i915_gtt_view *view)
+{
+	return view->type == I915_GTT_VIEW_REMAPPED;
+}
+
+static inline bool i915_gtt_view_is_rotated(const struct i915_gtt_view *view)
+{
+	return view->type == I915_GTT_VIEW_ROTATED;
+}
+
 #endif /* __I915_GTT_VIEW_TYPES_H__ */
-- 
2.52.0


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

* [PATCH 08/12] drm/xe/fb: Use i915_gtt_view_is_*()
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (6 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 07/12] drm/i915/vma: Add helpers to check GTT view type Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:52   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 09/12] drm/i915/fb: " Ville Syrjala
                   ` (8 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

Replace the naked GTT view type checks with the new
i915_gtt_view_is_*() helpers. This isolates the code
from GTT view implementation details.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/xe_fb_pin.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 9873904a950d..5cda276af534 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -145,9 +145,9 @@ static unsigned int xe_dpt_size(struct drm_gem_object *obj,
 	unsigned int pages;
 	int pte_size = 8;
 
-	if (view->type == I915_GTT_VIEW_NORMAL)
+	if (i915_gtt_view_is_normal(view))
 		pages = obj->size / XE_PAGE_SIZE;
-	else if (view->type == I915_GTT_VIEW_REMAPPED)
+	else if (i915_gtt_view_is_remapped(view))
 		pages = intel_remapped_info_size(&view->remapped);
 	else
 		pages = intel_rotation_info_size(&view->rotated);
@@ -195,7 +195,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
 	if (IS_ERR(dpt))
 		return PTR_ERR(dpt);
 
-	if (view->type == I915_GTT_VIEW_NORMAL) {
+	if (i915_gtt_view_is_normal(view)) {
 		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
 		u32 x;
 
@@ -204,7 +204,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
 
 			iosys_map_wr(&dpt->vmap, x * 8, u64, pte | addr);
 		}
-	} else if (view->type == I915_GTT_VIEW_REMAPPED) {
+	} else if (i915_gtt_view_is_remapped(view)) {
 		write_dpt_remapped(bo, &view->remapped, &dpt->vmap);
 	} else {
 		const struct intel_rotation_info *rot_info = &view->rotated;
@@ -298,7 +298,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
 		align = max(align, SZ_64K);
 
 	/* Fast case, preallocated GGTT view? */
-	if (bo->ggtt_node[tile0->id] && view->type == I915_GTT_VIEW_NORMAL) {
+	if (bo->ggtt_node[tile0->id] && i915_gtt_view_is_normal(view)) {
 		vma->node = bo->ggtt_node[tile0->id];
 		return 0;
 	}
@@ -306,7 +306,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
 	/* TODO: Consider sharing framebuffer mapping?
 	 * embed i915_vma inside intel_framebuffer
 	 */
-	if (view->type == I915_GTT_VIEW_NORMAL)
+	if (i915_gtt_view_is_normal(view))
 		size = xe_bo_size(bo);
 	else
 		/* display uses tiles instead of bytes here, so convert it back.. */
@@ -314,7 +314,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
 
 	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
 	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte, size, align,
-						  view->type == I915_GTT_VIEW_NORMAL ?
+						  i915_gtt_view_is_normal(view) ?
 						  NULL : write_ggtt_rotated_node,
 						  &(struct fb_rotate_args){view, bo});
 	if (IS_ERR(vma->node))
-- 
2.52.0


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

* [PATCH 09/12] drm/i915/fb: Use i915_gtt_view_is_*()
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (7 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 08/12] drm/xe/fb: Use i915_gtt_view_is_*() Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  8:53   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 10/12] drm/i915/selftests: Eliminate duplicate vma size check Ville Syrjala
                   ` (7 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

Replace the naked GTT view type checks with the new
i915_gtt_view_is_*() helpers. This isolates some of
the code from GTT view implementation details.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 52a619088e8e..ceed695d3ad4 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -1284,7 +1284,7 @@ bool intel_plane_uses_fence(const struct intel_plane_state *plane_state)
 
 	return DISPLAY_VER(display) < 4 ||
 		(plane->fbc && !plane_state->no_fbc_reason &&
-		 plane_state->view.gtt.type == I915_GTT_VIEW_NORMAL);
+		 i915_gtt_view_is_normal(&plane_state->view.gtt));
 }
 
 static int intel_fb_pitch(const struct intel_framebuffer *fb, int color_plane, unsigned int rotation)
@@ -1506,7 +1506,7 @@ static u32 calc_plane_remap_info(const struct intel_framebuffer *fb, int color_p
 			       plane_view_height_tiles(fb, color_plane, dims, y));
 	}
 
-	if (view->gtt.type == I915_GTT_VIEW_ROTATED) {
+	if (i915_gtt_view_is_rotated(&view->gtt)) {
 		drm_WARN_ON(display->drm, remap_info->linear);
 		check_array_bounds(display, view->gtt.rotated.plane, color_plane);
 
@@ -1531,7 +1531,7 @@ static u32 calc_plane_remap_info(const struct intel_framebuffer *fb, int color_p
 		/* rotate the tile dimensions to match the GTT view */
 		swap(tile_width, tile_height);
 	} else {
-		drm_WARN_ON(display->drm, view->gtt.type != I915_GTT_VIEW_REMAPPED);
+		drm_WARN_ON(display->drm, !i915_gtt_view_is_remapped(&view->gtt));
 
 		check_array_bounds(display, view->gtt.remapped.plane, color_plane);
 
@@ -1632,7 +1632,7 @@ static void intel_fb_view_init(struct intel_display *display,
 	memset(view, 0, sizeof(*view));
 	view->gtt.type = view_type;
 
-	if (view_type == I915_GTT_VIEW_REMAPPED &&
+	if (i915_gtt_view_is_remapped(&view->gtt) &&
 	    (display->platform.alderlake_p || DISPLAY_VER(display) >= 14))
 		view->gtt.remapped.plane_alignment = SZ_2M / PAGE_SIZE;
 }
-- 
2.52.0


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

* [PATCH 10/12] drm/i915/selftests: Eliminate duplicate vma size check
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (8 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 09/12] drm/i915/fb: " Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  9:01   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 11/12] drm/i915/selftests: Use i915_gtt_view_is_*() Ville Syrjala
                   ` (6 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

Both remapped and rotated views need the exact same size check.
Currently that is being done separately for each type. Share
the code by just checking for !NORMAL view. This test doesn't
use I915_GTT_VIEW_PARTIAL so the inverse check is fine here.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/selftests/i915_vma.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/i915_vma.c b/drivers/gpu/drm/i915/selftests/i915_vma.c
index 7c4111e60f2e..258557388a2d 100644
--- a/drivers/gpu/drm/i915/selftests/i915_vma.c
+++ b/drivers/gpu/drm/i915/selftests/i915_vma.c
@@ -634,7 +634,7 @@ static int igt_vma_rotate_remap(void *arg)
 
 					expected_pages = remapped_size(view.type, &plane_info[0], &plane_info[1]);
 
-					if (view.type == I915_GTT_VIEW_ROTATED &&
+					if (view.type != I915_GTT_VIEW_NORMAL &&
 					    vma->size != expected_pages * PAGE_SIZE) {
 						pr_err("VMA is wrong size, expected %lu, found %llu\n",
 						       PAGE_SIZE * expected_pages, vma->size);
@@ -642,14 +642,6 @@ static int igt_vma_rotate_remap(void *arg)
 						goto out_object;
 					}
 
-					if (view.type == I915_GTT_VIEW_REMAPPED &&
-					    vma->size > expected_pages * PAGE_SIZE) {
-						pr_err("VMA is wrong size, expected %lu, found %llu\n",
-						       PAGE_SIZE * expected_pages, vma->size);
-						err = -EINVAL;
-						goto out_object;
-					}
-
 					if (vma->pages->nents > expected_pages) {
 						pr_err("sg table is wrong sizeo, expected %u, found %u nents\n",
 						       expected_pages, vma->pages->nents);
-- 
2.52.0


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

* [PATCH 11/12] drm/i915/selftests:  Use i915_gtt_view_is_*()
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (9 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 10/12] drm/i915/selftests: Eliminate duplicate vma size check Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  9:03   ` Jani Nikula
  2026-04-07 15:50 ` [PATCH 12/12] drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init() Ville Syrjala
                   ` (5 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

Replace the naked GTT view type checks with the new
i915_gtt_view_is_*() helpers. This isolates some of
the code from GTT view implementation details.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/selftests/i915_vma.c | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/i915_vma.c b/drivers/gpu/drm/i915/selftests/i915_vma.c
index 258557388a2d..60dbc6e04f43 100644
--- a/drivers/gpu/drm/i915/selftests/i915_vma.c
+++ b/drivers/gpu/drm/i915/selftests/i915_vma.c
@@ -533,12 +533,11 @@ assert_remapped(struct drm_i915_gem_object *obj,
 	return sg;
 }
 
-static unsigned int remapped_size(enum i915_gtt_view_type view_type,
+static unsigned int remapped_size(const struct i915_gtt_view *view,
 				  const struct intel_remapped_plane_info *a,
 				  const struct intel_remapped_plane_info *b)
 {
-
-	if (view_type == I915_GTT_VIEW_ROTATED)
+	if (i915_gtt_view_is_rotated(view))
 		return a->dst_stride * a->width + b->dst_stride * b->width;
 	else
 		return a->dst_stride * a->height + b->dst_stride * b->height;
@@ -606,11 +605,11 @@ static int igt_vma_rotate_remap(void *arg)
 			max_offset = max_pages - max_offset;
 
 			if (!plane_info[0].dst_stride)
-				plane_info[0].dst_stride = view.type == I915_GTT_VIEW_ROTATED ?
+				plane_info[0].dst_stride = i915_gtt_view_is_rotated(&view) ?
 									plane_info[0].height :
 									plane_info[0].width;
 			if (!plane_info[1].dst_stride)
-				plane_info[1].dst_stride = view.type == I915_GTT_VIEW_ROTATED ?
+				plane_info[1].dst_stride = i915_gtt_view_is_rotated(&view) ?
 									plane_info[1].height :
 									plane_info[1].width;
 
@@ -632,7 +631,7 @@ static int igt_vma_rotate_remap(void *arg)
 						goto out_object;
 					}
 
-					expected_pages = remapped_size(view.type, &plane_info[0], &plane_info[1]);
+					expected_pages = remapped_size(&view, &plane_info[0], &plane_info[1]);
 
 					if (view.type != I915_GTT_VIEW_NORMAL &&
 					    vma->size != expected_pages * PAGE_SIZE) {
@@ -664,13 +663,13 @@ static int igt_vma_rotate_remap(void *arg)
 
 					sg = vma->pages->sgl;
 					for (n = 0; n < ARRAY_SIZE(view.rotated.plane); n++) {
-						if (view.type == I915_GTT_VIEW_ROTATED)
+						if (i915_gtt_view_is_rotated(&view))
 							sg = assert_rotated(obj, &view.rotated, n, sg);
 						else
 							sg = assert_remapped(obj, &view.remapped, n, sg);
 						if (IS_ERR(sg)) {
 							pr_err("Inconsistent %s VMA pages for plane %d: [(%d, %d, %d, %d, %d), (%d, %d, %d, %d, %d)]\n",
-							       view.type == I915_GTT_VIEW_ROTATED ?
+							       i915_gtt_view_is_rotated(&view) ?
 							       "rotated" : "remapped", n,
 							       plane_info[0].width,
 							       plane_info[0].height,
@@ -1009,7 +1008,7 @@ static int igt_vma_remapped_gtt(void *arg)
 				goto out;
 
 			if (!plane_info[0].dst_stride)
-				plane_info[0].dst_stride = *t == I915_GTT_VIEW_ROTATED ?
+				plane_info[0].dst_stride = i915_gtt_view_is_rotated(&view) ?
 								 p->height : p->width;
 
 			vma = i915_gem_object_ggtt_pin(obj, &view, 0, 0, PIN_MAPPABLE);
@@ -1032,7 +1031,7 @@ static int igt_vma_remapped_gtt(void *arg)
 					unsigned int offset;
 					u32 val = y << 16 | x;
 
-					if (*t == I915_GTT_VIEW_ROTATED)
+					if (i915_gtt_view_is_rotated(&view))
 						offset = (x * plane_info[0].dst_stride + y) * PAGE_SIZE;
 					else
 						offset = (y * plane_info[0].dst_stride + x) * PAGE_SIZE;
@@ -1064,7 +1063,7 @@ static int igt_vma_remapped_gtt(void *arg)
 					u32 exp = y << 16 | x;
 					u32 val;
 
-					if (*t == I915_GTT_VIEW_ROTATED)
+					if (i915_gtt_view_is_rotated(&view))
 						src_idx = rotated_index(&view.rotated, 0, x, y);
 					else
 						src_idx = remapped_index(&view.remapped, 0, x, y);
@@ -1073,7 +1072,7 @@ static int igt_vma_remapped_gtt(void *arg)
 					val = ioread32(&map[offset / sizeof(*map)]);
 					if (val != exp) {
 						pr_err("%s VMA write test failed, expected 0x%x, found 0x%x\n",
-						       *t == I915_GTT_VIEW_ROTATED ? "Rotated" : "Remapped",
+						       i915_gtt_view_is_rotated(&view) ? "Rotated" : "Remapped",
 						       exp, val);
 						i915_vma_unpin_iomap(vma);
 						err = -EINVAL;
-- 
2.52.0


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

* [PATCH 12/12] drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init()
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (10 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 11/12] drm/i915/selftests: Use i915_gtt_view_is_*() Ville Syrjala
@ 2026-04-07 15:50 ` Ville Syrjala
  2026-04-08  9:09   ` Jani Nikula
  2026-04-07 15:57 ` ✗ CI.checkpatch: warning for drm/i915/fb: Prep work for more generic remapping support Patchwork
                   ` (4 subsequent siblings)
  16 siblings, 1 reply; 33+ messages in thread
From: Ville Syrjala @ 2026-04-07 15:50 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

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

Replace the open coded intel_fb_needs_pot_stride_remap() check
inside intel_fb_view_init() with the real thing.

The current check doesn't have the intel_fb_uses_dpt() in there, but
that is the only situation when we use the remapped view, and thus
was always implied.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index ceed695d3ad4..c4af368deffd 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -1627,13 +1627,14 @@ calc_plane_normal_size(const struct intel_framebuffer *fb, int color_plane,
 
 static void intel_fb_view_init(struct intel_display *display,
 			       struct intel_fb_view *view,
-			       enum i915_gtt_view_type view_type)
+			       enum i915_gtt_view_type view_type,
+			       const struct intel_framebuffer *fb)
 {
 	memset(view, 0, sizeof(*view));
 	view->gtt.type = view_type;
 
 	if (i915_gtt_view_is_remapped(&view->gtt) &&
-	    (display->platform.alderlake_p || DISPLAY_VER(display) >= 14))
+	    intel_fb_needs_pot_stride_remap(fb))
 		view->gtt.remapped.plane_alignment = SZ_2M / PAGE_SIZE;
 }
 
@@ -1699,16 +1700,19 @@ int intel_fill_fb_info(struct intel_display *display, struct intel_framebuffer *
 	int i, num_planes = fb->base.format->num_planes;
 	unsigned int tile_size = intel_tile_size(display);
 
-	intel_fb_view_init(display, &fb->normal_view, I915_GTT_VIEW_NORMAL);
+	intel_fb_view_init(display, &fb->normal_view,
+			   I915_GTT_VIEW_NORMAL, fb);
 
 	drm_WARN_ON(display->drm,
 		    intel_fb_supports_90_270_rotation(fb) &&
 		    intel_fb_needs_pot_stride_remap(fb));
 
 	if (intel_fb_supports_90_270_rotation(fb))
-		intel_fb_view_init(display, &fb->rotated_view, I915_GTT_VIEW_ROTATED);
+		intel_fb_view_init(display, &fb->rotated_view,
+				   I915_GTT_VIEW_ROTATED, fb);
 	if (intel_fb_needs_pot_stride_remap(fb))
-		intel_fb_view_init(display, &fb->remapped_view, I915_GTT_VIEW_REMAPPED);
+		intel_fb_view_init(display, &fb->remapped_view,
+				   I915_GTT_VIEW_REMAPPED, fb);
 
 	for (i = 0; i < num_planes; i++) {
 		struct fb_plane_view_dims view_dims;
@@ -1835,8 +1839,9 @@ static void intel_plane_remap_gtt(struct intel_plane_state *plane_state)
 	u32 gtt_offset = 0;
 
 	intel_fb_view_init(display, &plane_state->view,
-			   drm_rotation_90_or_270(rotation) ? I915_GTT_VIEW_ROTATED :
-							      I915_GTT_VIEW_REMAPPED);
+			   drm_rotation_90_or_270(rotation) ?
+			   I915_GTT_VIEW_ROTATED : I915_GTT_VIEW_REMAPPED,
+			   intel_fb);
 
 	src_x = plane_state->uapi.src.x1 >> 16;
 	src_y = plane_state->uapi.src.y1 >> 16;
-- 
2.52.0


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

* ✗ CI.checkpatch: warning for drm/i915/fb: Prep work for more generic remapping support
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (11 preceding siblings ...)
  2026-04-07 15:50 ` [PATCH 12/12] drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init() Ville Syrjala
@ 2026-04-07 15:57 ` Patchwork
  2026-04-07 15:58 ` ✓ CI.KUnit: success " Patchwork
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 33+ messages in thread
From: Patchwork @ 2026-04-07 15:57 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/i915/fb: Prep work for more generic remapping support
URL   : https://patchwork.freedesktop.org/series/164459/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit cfd4a200c38088ea52be0fe41880a01aad464493
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Tue Apr 7 18:50:53 2026 +0300

    drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init()
    
    Replace the open coded intel_fb_needs_pot_stride_remap() check
    inside intel_fb_view_init() with the real thing.
    
    The current check doesn't have the intel_fb_uses_dpt() in there, but
    that is the only situation when we use the remapped view, and thus
    was always implied.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+ /mt/dim checkpatch b9100c71e504ca0f80d6a94c41fa582c623f2725 drm-intel
1dbb7203cdac drm/i915/fb: Nuke intel_tile_row_size()
98d389496053 drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static
5f1e65a001ac drm/i915/fb: Reject per-plane remapping with DPT
fd2ac2ceb01e drm/xe/fb: Use the correct gtt view for remapped FBs
2792ba21460c drm/xe/fb: Remove weird VMA end alignemnt
113dab77a73b drm/xe/fb: Extract xe_dpt_size()
d1acdd0a6973 drm/i915/vma: Add helpers to check GTT view type
45bacf312c04 drm/xe/fb: Use i915_gtt_view_is_*()
d626f9b3b7f2 drm/i915/fb: Use i915_gtt_view_is_*()
b5df82a8fd41 drm/i915/selftests: Eliminate duplicate vma size check
dc9fb1327128 drm/i915/selftests: Use i915_gtt_view_is_*()
-:53: WARNING:LONG_LINE: line length of 110 exceeds 100 columns
#53: FILE: drivers/gpu/drm/i915/selftests/i915_vma.c:634:
+					expected_pages = remapped_size(&view, &plane_info[0], &plane_info[1]);

-:62: WARNING:DEEP_INDENTATION: Too many leading tabs - consider code refactoring
#62: FILE: drivers/gpu/drm/i915/selftests/i915_vma.c:666:
+						if (i915_gtt_view_is_rotated(&view))

-:105: WARNING:LONG_LINE: line length of 112 exceeds 100 columns
#105: FILE: drivers/gpu/drm/i915/selftests/i915_vma.c:1075:
+						       i915_gtt_view_is_rotated(&view) ? "Rotated" : "Remapped",

total: 0 errors, 3 warnings, 0 checks, 82 lines checked
cfd4a200c380 drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init()



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

* ✓ CI.KUnit: success for drm/i915/fb: Prep work for more generic remapping support
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (12 preceding siblings ...)
  2026-04-07 15:57 ` ✗ CI.checkpatch: warning for drm/i915/fb: Prep work for more generic remapping support Patchwork
@ 2026-04-07 15:58 ` Patchwork
  2026-04-07 16:37 ` ✓ Xe.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 33+ messages in thread
From: Patchwork @ 2026-04-07 15:58 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/i915/fb: Prep work for more generic remapping support
URL   : https://patchwork.freedesktop.org/series/164459/
State : success

== Summary ==

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

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

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

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



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

* ✓ Xe.CI.BAT: success for drm/i915/fb: Prep work for more generic remapping support
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (13 preceding siblings ...)
  2026-04-07 15:58 ` ✓ CI.KUnit: success " Patchwork
@ 2026-04-07 16:37 ` Patchwork
  2026-04-07 19:34 ` ✓ Xe.CI.FULL: " Patchwork
  2026-04-10 11:25 ` [PATCH 00/12] " Ville Syrjälä
  16 siblings, 0 replies; 33+ messages in thread
From: Patchwork @ 2026-04-07 16:37 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915/fb: Prep work for more generic remapping support
URL   : https://patchwork.freedesktop.org/series/164459/
State : success

== Summary ==

CI Bug Log - changes from xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7_BAT -> xe-pw-164459v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (14 -> 14)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Issues hit ####

  * igt@xe_waitfence@reltime:
    - bat-dg2-oem2:       [PASS][1] -> [FAIL][2] ([Intel XE#6520])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/bat-dg2-oem2/igt@xe_waitfence@reltime.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/bat-dg2-oem2/igt@xe_waitfence@reltime.html

  
  [Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520


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

  * Linux: xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7 -> xe-pw-164459v1

  IGT_8850: 8850
  xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7: 87b52c2ff4f00eff41866d728f82d2b109c397f7
  xe-pw-164459v1: 164459v1

== Logs ==

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

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

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

* ✓ Xe.CI.FULL: success for drm/i915/fb: Prep work for more generic remapping support
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (14 preceding siblings ...)
  2026-04-07 16:37 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-04-07 19:34 ` Patchwork
  2026-04-10 11:25 ` [PATCH 00/12] " Ville Syrjälä
  16 siblings, 0 replies; 33+ messages in thread
From: Patchwork @ 2026-04-07 19:34 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

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

== Series Details ==

Series: drm/i915/fb: Prep work for more generic remapping support
URL   : https://patchwork.freedesktop.org/series/164459/
State : success

== Summary ==

CI Bug Log - changes from xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7_FULL -> xe-pw-164459v1_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-164459v1_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@4-tiled-8bpp-rotate-180:
    - shard-bmg:          [PASS][1] -> [INCOMPLETE][2] ([Intel XE#5643] / [Intel XE#6652])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-6/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-2/igt@kms_big_fb@4-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-bmg:          NOTRUN -> [SKIP][3] ([Intel XE#2327]) +1 other test skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][4] ([Intel XE#1124]) +1 other test skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_bw@linear-tiling-2-displays-3840x2160p:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#367] / [Intel XE#7354])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html

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

  * igt@kms_chamelium_hpd@dp-hpd-after-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#2252]) +1 other test skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#2390] / [Intel XE#6974])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#2321] / [Intel XE#7355])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-rapid-movement-64x21:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#2320])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_cursor_crc@cursor-rapid-movement-64x21.html

  * igt@kms_dp_linktrain_fallback@dsc-fallback:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#4331] / [Intel XE#7227])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_dp_linktrain_fallback@dsc-fallback.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#4422] / [Intel XE#7442])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [PASS][13] -> [FAIL][14] ([Intel XE#301]) +1 other test fail
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#4141])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2311]) +6 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2313]) +3 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-render.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#7283])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier.html

  * igt@kms_psr@pr-primary-blt:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@kms_psr@pr-primary-blt.html

  * igt@xe_eudebug_online@breakpoint-not-in-debug-mode:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#7636]) +1 other test skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_eudebug_online@breakpoint-not-in-debug-mode.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          [PASS][21] -> [INCOMPLETE][22] ([Intel XE#6321])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-6/igt@xe_evict@evict-beng-mixed-many-threads-small.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-2/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#7136]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-rebind-prefetch.html

  * igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#6874]) +4 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_exec_multi_queue@few-execs-preempt-mode-userptr-invalidate.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#7138])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate-race.html

  * igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#6281] / [Intel XE#7426])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html

  * igt@xe_media_fill@media-fill:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#2459] / [Intel XE#2596] / [Intel XE#7321] / [Intel XE#7453])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_media_fill@media-fill.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#4733] / [Intel XE#7417])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_pxp@pxp-stale-bo-bind-post-suspend.html

  
#### Possible fixes ####

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
    - shard-bmg:          [DMESG-WARN][30] ([Intel XE#5354]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-2/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-2/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html

  * igt@xe_evict@evict-mixed-many-threads-small:
    - shard-bmg:          [INCOMPLETE][32] ([Intel XE#6321]) -> [PASS][33]
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-9/igt@xe_evict@evict-mixed-many-threads-small.html
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-8/igt@xe_evict@evict-mixed-many-threads-small.html

  * igt@xe_exec_system_allocator@fault-threads-same-page-benchmark:
    - shard-bmg:          [TIMEOUT][34] -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-4/igt@xe_exec_system_allocator@fault-threads-same-page-benchmark.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-6/igt@xe_exec_system_allocator@fault-threads-same-page-benchmark.html

  * igt@xe_pat@pt-caching:
    - shard-bmg:          [ABORT][36] -> [PASS][37]
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-1/igt@xe_pat@pt-caching.html
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-9/igt@xe_pat@pt-caching.html

  
#### Warnings ####

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][38] ([Intel XE#3544]) -> [SKIP][39] ([Intel XE#3374] / [Intel XE#3544])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-4/igt@kms_hdr@brightness-with-hdr.html
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-7/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][40] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][41] ([Intel XE#2426] / [Intel XE#5848])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164459v1/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [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#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2459
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2596
  [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#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [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#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4331]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4331
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
  [Intel XE#5643]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5643
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [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#7227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7227
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7321
  [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#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7426
  [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
  [Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442
  [Intel XE#7453]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7453
  [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636


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

  * Linux: xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7 -> xe-pw-164459v1

  IGT_8850: 8850
  xe-4857-87b52c2ff4f00eff41866d728f82d2b109c397f7: 87b52c2ff4f00eff41866d728f82d2b109c397f7
  xe-pw-164459v1: 164459v1

== Logs ==

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

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

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

* Re: [PATCH 01/12] drm/i915/fb: Nuke intel_tile_row_size()
  2026-04-07 15:50 ` [PATCH 01/12] drm/i915/fb: Nuke intel_tile_row_size() Ville Syrjala
@ 2026-04-08  8:42   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:42 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> intel_tile_row_size() is unused. Nuke it.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_fb.c | 9 ---------
>  drivers/gpu/drm/i915/display/intel_fb.h | 1 -
>  2 files changed, 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index 5768619f840f..83392c1a1ebe 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -876,15 +876,6 @@ static void intel_tile_block_dims(const struct drm_framebuffer *fb, int color_pl
>  		*tile_height = 1;
>  }
>  
> -unsigned int intel_tile_row_size(const struct drm_framebuffer *fb, int color_plane)
> -{
> -	unsigned int tile_width, tile_height;
> -
> -	intel_tile_dims(fb, color_plane, &tile_width, &tile_height);
> -
> -	return fb->pitches[color_plane] * tile_height;
> -}
> -
>  unsigned int
>  intel_fb_align_height(const struct drm_framebuffer *fb,
>  		      int color_plane, unsigned int height)
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> index 22514d5f2bb6..fb1ec2a1e905 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.h
> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> @@ -62,7 +62,6 @@ int skl_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane);
>  unsigned int intel_tile_size(struct intel_display *display);
>  unsigned int intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane);
>  unsigned int intel_tile_height(const struct drm_framebuffer *fb, int color_plane);
> -unsigned int intel_tile_row_size(const struct drm_framebuffer *fb, int color_plane);
>  unsigned int intel_fb_align_height(const struct drm_framebuffer *fb,
>  				   int color_plane, unsigned int height);

-- 
Jani Nikula, Intel

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

* Re: [PATCH 02/12] drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static
  2026-04-07 15:50 ` [PATCH 02/12] drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static Ville Syrjala
@ 2026-04-08  8:43   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:43 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> intel_fb_needs_pot_stride_remap() isn't needed outside intel_fb.c.
> Make it static.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
>  drivers/gpu/drm/i915/display/intel_fb.h | 1 -
>  2 files changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index 83392c1a1ebe..4b0afea1c456 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -1265,7 +1265,7 @@ static bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
>  	return true;
>  }
>  
> -bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb)
> +static bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb)
>  {
>  	struct intel_display *display = to_intel_display(fb->base.dev);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> index fb1ec2a1e905..fc2c4d59bf06 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.h
> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> @@ -77,7 +77,6 @@ u32 intel_plane_compute_aligned_offset(int *x, int *y,
>  				       const struct intel_plane_state *plane_state,
>  				       int color_plane);
>  
> -bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb);
>  bool intel_plane_uses_fence(const struct intel_plane_state *plane_state);
>  bool intel_fb_supports_90_270_rotation(const struct intel_framebuffer *fb);

-- 
Jani Nikula, Intel

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

* Re: [PATCH 03/12] drm/i915/fb: Reject per-plane remapping with DPT
  2026-04-07 15:50 ` [PATCH 03/12] drm/i915/fb: Reject per-plane remapping with DPT Ville Syrjala
@ 2026-04-08  8:43   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:43 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> We currently create a single DPT for the entire FB, so we can't
> actually do the per-plane remap. Reject it for now.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_fb.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index 4b0afea1c456..52a619088e8e 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -1252,6 +1252,10 @@ static bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
>  	if (intel_fb_is_ccs_modifier(fb->modifier))
>  		return false;
>  
> +	/* TODO implement remapping with DPT */
> +	if (intel_fb_uses_dpt(fb))
> +		return false;
> +
>  	/* Linear needs a page aligned stride for remapping */
>  	if (fb->modifier == DRM_FORMAT_MOD_LINEAR) {
>  		unsigned int alignment = intel_tile_size(display) - 1;

-- 
Jani Nikula, Intel

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

* Re: [PATCH 04/12] drm/xe/fb: Use the correct gtt view for remapped FBs
  2026-04-07 15:50 ` [PATCH 04/12] drm/xe/fb: Use the correct gtt view for remapped FBs Ville Syrjala
@ 2026-04-08  8:44   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:44 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx, Maarten Lankhorst; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Use the proper gtt view from the plane state rather than always
> assuming that it came directly from the FB. This is in the DPT
> codepath so the view should currently always come from the FB,
> but in the future we may also want per-plane remapping with DPT.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Cc: Maarten, does it look sane to you too?

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/xe/display/xe_fb_pin.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index e45a1e7a4670..35e5c322f8b0 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -154,7 +154,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
>  	if (view->type == I915_GTT_VIEW_NORMAL)
>  		dpt_size = ALIGN(size / XE_PAGE_SIZE * 8, XE_PAGE_SIZE);
>  	else if (view->type == I915_GTT_VIEW_REMAPPED)
> -		dpt_size = ALIGN(intel_remapped_info_size(&fb->remapped_view.gtt.remapped) * 8,
> +		dpt_size = ALIGN(intel_remapped_info_size(&view->remapped) * 8,
>  				 XE_PAGE_SIZE);
>  	else
>  		/* display uses 4K tiles instead of bytes here, convert to entries.. */

-- 
Jani Nikula, Intel

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

* Re: [PATCH 05/12] drm/xe/fb: Remove weird VMA end alignemnt
  2026-04-07 15:50 ` [PATCH 05/12] drm/xe/fb: Remove weird VMA end alignemnt Ville Syrjala
@ 2026-04-08  8:45   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:45 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx, Maarten Lankhorst; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> For some reason xe is also alining the end of the vma. That
> should not be necessary, so don't.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Cc: Maarten, does it look sane to you too?

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/xe/display/xe_fb_pin.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index 35e5c322f8b0..72efafb189f7 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -307,8 +307,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
>  		size = intel_rotation_info_size(&view->rotated) * XE_PAGE_SIZE;
>  
>  	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
> -	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte,
> -						  ALIGN(size, align), align,
> +	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte, size, align,
>  						  view->type == I915_GTT_VIEW_NORMAL ?
>  						  NULL : write_ggtt_rotated_node,
>  						  &(struct fb_rotate_args){view, bo});

-- 
Jani Nikula, Intel

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

* Re: [PATCH 06/12] drm/xe/fb: Extract xe_dpt_size()
  2026-04-07 15:50 ` [PATCH 06/12] drm/xe/fb: Extract xe_dpt_size() Ville Syrjala
@ 2026-04-08  8:47   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:47 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Declutter the xe fb pinning code by extracting the DPT size
> calculation into its own function.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/xe/display/xe_fb_pin.c | 30 +++++++++++++++-----------
>  1 file changed, 18 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index 72efafb189f7..9873904a950d 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -139,6 +139,22 @@ write_dpt_remapped(struct xe_bo *bo,
>  	}
>  }
>  
> +static unsigned int xe_dpt_size(struct drm_gem_object *obj,
> +				const struct i915_gtt_view *view)
> +{
> +	unsigned int pages;
> +	int pte_size = 8;
> +
> +	if (view->type == I915_GTT_VIEW_NORMAL)
> +		pages = obj->size / XE_PAGE_SIZE;
> +	else if (view->type == I915_GTT_VIEW_REMAPPED)
> +		pages = intel_remapped_info_size(&view->remapped);
> +	else
> +		pages = intel_rotation_info_size(&view->rotated);
> +
> +	return ALIGN(pages * pte_size, XE_PAGE_SIZE);
> +}
> +
>  static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
>  			       const struct i915_gtt_view *view,
>  			       struct i915_vma *vma,
> @@ -149,17 +165,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
>  	struct xe_ggtt *ggtt = tile0->mem.ggtt;
>  	struct drm_gem_object *obj = intel_fb_bo(&fb->base);
>  	struct xe_bo *bo = gem_to_xe_bo(obj), *dpt;
> -	u32 dpt_size, size = bo->ttm.base.size;
> -
> -	if (view->type == I915_GTT_VIEW_NORMAL)
> -		dpt_size = ALIGN(size / XE_PAGE_SIZE * 8, XE_PAGE_SIZE);
> -	else if (view->type == I915_GTT_VIEW_REMAPPED)
> -		dpt_size = ALIGN(intel_remapped_info_size(&view->remapped) * 8,
> -				 XE_PAGE_SIZE);
> -	else
> -		/* display uses 4K tiles instead of bytes here, convert to entries.. */
> -		dpt_size = ALIGN(intel_rotation_info_size(&view->rotated) * 8,
> -				 XE_PAGE_SIZE);
> +	u32 dpt_size = xe_dpt_size(obj, view);
>  
>  	if (IS_DGFX(xe))
>  		dpt = xe_bo_create_pin_map_at_novm(xe, tile0,
> @@ -193,7 +199,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
>  		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
>  		u32 x;
>  
> -		for (x = 0; x < size / XE_PAGE_SIZE; x++) {
> +		for (x = 0; x < obj->size / XE_PAGE_SIZE; x++) {
>  			u64 addr = xe_bo_addr(bo, x * XE_PAGE_SIZE, XE_PAGE_SIZE);
>  
>  			iosys_map_wr(&dpt->vmap, x * 8, u64, pte | addr);

-- 
Jani Nikula, Intel

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

* Re: [PATCH 07/12] drm/i915/vma: Add helpers to check GTT view type
  2026-04-07 15:50 ` [PATCH 07/12] drm/i915/vma: Add helpers to check GTT view type Ville Syrjala
@ 2026-04-08  8:50   ` Jani Nikula
  2026-04-08  9:11     ` Jani Nikula
  0 siblings, 1 reply; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:50 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> I915_GTT_VIEW_ROTATED is going away and being replaced by just
> I915_GTT_VIEW_REMAPPED, so we're going to need another way to
> determine if the view is rotated or not (since width/height
> will need to be swapped when operating on the destination
> coordinate space). Provide small helper functions to hide
> such implementation details from most of the code using GTT views.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Funny, I think I have these helpers in a branch somewhere too. :)

It's still not clear to me where we'll end up with this, since the file
is in i915 and used directly from xe core too, which is something we
want to get rid of. But seems like iterative improvement, so let's roll
with this.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/i915_gtt_view_types.h | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gtt_view_types.h b/drivers/gpu/drm/i915/i915_gtt_view_types.h
> index c084f67bc880..9c4f38db32ff 100644
> --- a/drivers/gpu/drm/i915/i915_gtt_view_types.h
> +++ b/drivers/gpu/drm/i915/i915_gtt_view_types.h
> @@ -56,4 +56,19 @@ struct i915_gtt_view {
>  	};
>  };
>  
> +static inline bool i915_gtt_view_is_normal(const struct i915_gtt_view *view)
> +{
> +	return view->type == I915_GTT_VIEW_NORMAL;
> +}
> +
> +static inline bool i915_gtt_view_is_remapped(const struct i915_gtt_view *view)
> +{
> +	return view->type == I915_GTT_VIEW_REMAPPED;
> +}
> +
> +static inline bool i915_gtt_view_is_rotated(const struct i915_gtt_view *view)
> +{
> +	return view->type == I915_GTT_VIEW_ROTATED;
> +}
> +
>  #endif /* __I915_GTT_VIEW_TYPES_H__ */

-- 
Jani Nikula, Intel

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

* Re: [PATCH 08/12] drm/xe/fb: Use i915_gtt_view_is_*()
  2026-04-07 15:50 ` [PATCH 08/12] drm/xe/fb: Use i915_gtt_view_is_*() Ville Syrjala
@ 2026-04-08  8:52   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:52 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the naked GTT view type checks with the new
> i915_gtt_view_is_*() helpers. This isolates the code
> from GTT view implementation details.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/xe/display/xe_fb_pin.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> index 9873904a950d..5cda276af534 100644
> --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
> +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
> @@ -145,9 +145,9 @@ static unsigned int xe_dpt_size(struct drm_gem_object *obj,
>  	unsigned int pages;
>  	int pte_size = 8;
>  
> -	if (view->type == I915_GTT_VIEW_NORMAL)
> +	if (i915_gtt_view_is_normal(view))
>  		pages = obj->size / XE_PAGE_SIZE;
> -	else if (view->type == I915_GTT_VIEW_REMAPPED)
> +	else if (i915_gtt_view_is_remapped(view))
>  		pages = intel_remapped_info_size(&view->remapped);
>  	else
>  		pages = intel_rotation_info_size(&view->rotated);
> @@ -195,7 +195,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
>  	if (IS_ERR(dpt))
>  		return PTR_ERR(dpt);
>  
> -	if (view->type == I915_GTT_VIEW_NORMAL) {
> +	if (i915_gtt_view_is_normal(view)) {
>  		u64 pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
>  		u32 x;
>  
> @@ -204,7 +204,7 @@ static int __xe_pin_fb_vma_dpt(const struct intel_framebuffer *fb,
>  
>  			iosys_map_wr(&dpt->vmap, x * 8, u64, pte | addr);
>  		}
> -	} else if (view->type == I915_GTT_VIEW_REMAPPED) {
> +	} else if (i915_gtt_view_is_remapped(view)) {
>  		write_dpt_remapped(bo, &view->remapped, &dpt->vmap);
>  	} else {
>  		const struct intel_rotation_info *rot_info = &view->rotated;
> @@ -298,7 +298,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
>  		align = max(align, SZ_64K);
>  
>  	/* Fast case, preallocated GGTT view? */
> -	if (bo->ggtt_node[tile0->id] && view->type == I915_GTT_VIEW_NORMAL) {
> +	if (bo->ggtt_node[tile0->id] && i915_gtt_view_is_normal(view)) {
>  		vma->node = bo->ggtt_node[tile0->id];
>  		return 0;
>  	}
> @@ -306,7 +306,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
>  	/* TODO: Consider sharing framebuffer mapping?
>  	 * embed i915_vma inside intel_framebuffer
>  	 */
> -	if (view->type == I915_GTT_VIEW_NORMAL)
> +	if (i915_gtt_view_is_normal(view))
>  		size = xe_bo_size(bo);
>  	else
>  		/* display uses tiles instead of bytes here, so convert it back.. */
> @@ -314,7 +314,7 @@ static int __xe_pin_fb_vma_ggtt(const struct intel_framebuffer *fb,
>  
>  	pte = xe_ggtt_encode_pte_flags(ggtt, bo, xe->pat.idx[XE_CACHE_NONE]);
>  	vma->node = xe_ggtt_insert_node_transform(ggtt, bo, pte, size, align,
> -						  view->type == I915_GTT_VIEW_NORMAL ?
> +						  i915_gtt_view_is_normal(view) ?
>  						  NULL : write_ggtt_rotated_node,
>  						  &(struct fb_rotate_args){view, bo});
>  	if (IS_ERR(vma->node))

-- 
Jani Nikula, Intel

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

* Re: [PATCH 09/12] drm/i915/fb: Use i915_gtt_view_is_*()
  2026-04-07 15:50 ` [PATCH 09/12] drm/i915/fb: " Ville Syrjala
@ 2026-04-08  8:53   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  8:53 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the naked GTT view type checks with the new
> i915_gtt_view_is_*() helpers. This isolates some of
> the code from GTT view implementation details.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_fb.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index 52a619088e8e..ceed695d3ad4 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -1284,7 +1284,7 @@ bool intel_plane_uses_fence(const struct intel_plane_state *plane_state)
>  
>  	return DISPLAY_VER(display) < 4 ||
>  		(plane->fbc && !plane_state->no_fbc_reason &&
> -		 plane_state->view.gtt.type == I915_GTT_VIEW_NORMAL);
> +		 i915_gtt_view_is_normal(&plane_state->view.gtt));
>  }
>  
>  static int intel_fb_pitch(const struct intel_framebuffer *fb, int color_plane, unsigned int rotation)
> @@ -1506,7 +1506,7 @@ static u32 calc_plane_remap_info(const struct intel_framebuffer *fb, int color_p
>  			       plane_view_height_tiles(fb, color_plane, dims, y));
>  	}
>  
> -	if (view->gtt.type == I915_GTT_VIEW_ROTATED) {
> +	if (i915_gtt_view_is_rotated(&view->gtt)) {
>  		drm_WARN_ON(display->drm, remap_info->linear);
>  		check_array_bounds(display, view->gtt.rotated.plane, color_plane);
>  
> @@ -1531,7 +1531,7 @@ static u32 calc_plane_remap_info(const struct intel_framebuffer *fb, int color_p
>  		/* rotate the tile dimensions to match the GTT view */
>  		swap(tile_width, tile_height);
>  	} else {
> -		drm_WARN_ON(display->drm, view->gtt.type != I915_GTT_VIEW_REMAPPED);
> +		drm_WARN_ON(display->drm, !i915_gtt_view_is_remapped(&view->gtt));
>  
>  		check_array_bounds(display, view->gtt.remapped.plane, color_plane);
>  
> @@ -1632,7 +1632,7 @@ static void intel_fb_view_init(struct intel_display *display,
>  	memset(view, 0, sizeof(*view));
>  	view->gtt.type = view_type;
>  
> -	if (view_type == I915_GTT_VIEW_REMAPPED &&
> +	if (i915_gtt_view_is_remapped(&view->gtt) &&
>  	    (display->platform.alderlake_p || DISPLAY_VER(display) >= 14))
>  		view->gtt.remapped.plane_alignment = SZ_2M / PAGE_SIZE;
>  }

-- 
Jani Nikula, Intel

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

* Re: [PATCH 10/12] drm/i915/selftests: Eliminate duplicate vma size check
  2026-04-07 15:50 ` [PATCH 10/12] drm/i915/selftests: Eliminate duplicate vma size check Ville Syrjala
@ 2026-04-08  9:01   ` Jani Nikula
  2026-04-08 11:28     ` Ville Syrjälä
  0 siblings, 1 reply; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  9:01 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Both remapped and rotated views need the exact same size check.

This is misleading, see below. At the very least the commit message
needs amending.

> Currently that is being done separately for each type. Share
> the code by just checking for !NORMAL view. This test doesn't
> use I915_GTT_VIEW_PARTIAL so the inverse check is fine here.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/selftests/i915_vma.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/selftests/i915_vma.c b/drivers/gpu/drm/i915/selftests/i915_vma.c
> index 7c4111e60f2e..258557388a2d 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_vma.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_vma.c
> @@ -634,7 +634,7 @@ static int igt_vma_rotate_remap(void *arg)
>  
>  					expected_pages = remapped_size(view.type, &plane_info[0], &plane_info[1]);
>  
> -					if (view.type == I915_GTT_VIEW_ROTATED &&
> +					if (view.type != I915_GTT_VIEW_NORMAL &&
>  					    vma->size != expected_pages * PAGE_SIZE) {
>  						pr_err("VMA is wrong size, expected %lu, found %llu\n",
>  						       PAGE_SIZE * expected_pages, vma->size);
> @@ -642,14 +642,6 @@ static int igt_vma_rotate_remap(void *arg)
>  						goto out_object;
>  					}
>  
> -					if (view.type == I915_GTT_VIEW_REMAPPED &&
> -					    vma->size > expected_pages * PAGE_SIZE) {

This check becomes stricter now, expecting exact match. Does it matter?

History points at you! ;)

e2e394bffa19 ("drm/i915/selftests: Add mock selftest for remapped vmas")

If you think the change in the check is okay, and with the commit
message amended,

Reviewed-by: Jani Nikula <jani.nikula@intel.com>


> -						pr_err("VMA is wrong size, expected %lu, found %llu\n",
> -						       PAGE_SIZE * expected_pages, vma->size);
> -						err = -EINVAL;
> -						goto out_object;
> -					}
> -
>  					if (vma->pages->nents > expected_pages) {
>  						pr_err("sg table is wrong sizeo, expected %u, found %u nents\n",
>  						       expected_pages, vma->pages->nents);

-- 
Jani Nikula, Intel

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

* Re: [PATCH 11/12] drm/i915/selftests:  Use i915_gtt_view_is_*()
  2026-04-07 15:50 ` [PATCH 11/12] drm/i915/selftests: Use i915_gtt_view_is_*() Ville Syrjala
@ 2026-04-08  9:03   ` Jani Nikula
  2026-04-08  9:04     ` Jani Nikula
  0 siblings, 1 reply; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  9:03 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the naked GTT view type checks with the new
> i915_gtt_view_is_*() helpers. This isolates some of
> the code from GTT view implementation details.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/selftests/i915_vma.c | 23 +++++++++++------------
>  1 file changed, 11 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/selftests/i915_vma.c b/drivers/gpu/drm/i915/selftests/i915_vma.c
> index 258557388a2d..60dbc6e04f43 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_vma.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_vma.c
> @@ -533,12 +533,11 @@ assert_remapped(struct drm_i915_gem_object *obj,
>  	return sg;
>  }
>  
> -static unsigned int remapped_size(enum i915_gtt_view_type view_type,
> +static unsigned int remapped_size(const struct i915_gtt_view *view,
>  				  const struct intel_remapped_plane_info *a,
>  				  const struct intel_remapped_plane_info *b)
>  {
> -
> -	if (view_type == I915_GTT_VIEW_ROTATED)
> +	if (i915_gtt_view_is_rotated(view))
>  		return a->dst_stride * a->width + b->dst_stride * b->width;
>  	else
>  		return a->dst_stride * a->height + b->dst_stride * b->height;
> @@ -606,11 +605,11 @@ static int igt_vma_rotate_remap(void *arg)
>  			max_offset = max_pages - max_offset;
>  
>  			if (!plane_info[0].dst_stride)
> -				plane_info[0].dst_stride = view.type == I915_GTT_VIEW_ROTATED ?
> +				plane_info[0].dst_stride = i915_gtt_view_is_rotated(&view) ?
>  									plane_info[0].height :
>  									plane_info[0].width;
>  			if (!plane_info[1].dst_stride)
> -				plane_info[1].dst_stride = view.type == I915_GTT_VIEW_ROTATED ?
> +				plane_info[1].dst_stride = i915_gtt_view_is_rotated(&view) ?
>  									plane_info[1].height :
>  									plane_info[1].width;
>  
> @@ -632,7 +631,7 @@ static int igt_vma_rotate_remap(void *arg)
>  						goto out_object;
>  					}
>  
> -					expected_pages = remapped_size(view.type, &plane_info[0], &plane_info[1]);
> +					expected_pages = remapped_size(&view, &plane_info[0], &plane_info[1]);
>  
>  					if (view.type != I915_GTT_VIEW_NORMAL &&
>  					    vma->size != expected_pages * PAGE_SIZE) {
> @@ -664,13 +663,13 @@ static int igt_vma_rotate_remap(void *arg)
>  
>  					sg = vma->pages->sgl;
>  					for (n = 0; n < ARRAY_SIZE(view.rotated.plane); n++) {
> -						if (view.type == I915_GTT_VIEW_ROTATED)
> +						if (i915_gtt_view_is_rotated(&view))
>  							sg = assert_rotated(obj, &view.rotated, n, sg);
>  						else
>  							sg = assert_remapped(obj, &view.remapped, n, sg);
>  						if (IS_ERR(sg)) {
>  							pr_err("Inconsistent %s VMA pages for plane %d: [(%d, %d, %d, %d, %d), (%d, %d, %d, %d, %d)]\n",
> -							       view.type == I915_GTT_VIEW_ROTATED ?
> +							       i915_gtt_view_is_rotated(&view) ?
>  							       "rotated" : "remapped", n,
>  							       plane_info[0].width,
>  							       plane_info[0].height,
> @@ -1009,7 +1008,7 @@ static int igt_vma_remapped_gtt(void *arg)
>  				goto out;
>  
>  			if (!plane_info[0].dst_stride)
> -				plane_info[0].dst_stride = *t == I915_GTT_VIEW_ROTATED ?
> +				plane_info[0].dst_stride = i915_gtt_view_is_rotated(&view) ?
>  								 p->height : p->width;
>  
>  			vma = i915_gem_object_ggtt_pin(obj, &view, 0, 0, PIN_MAPPABLE);
> @@ -1032,7 +1031,7 @@ static int igt_vma_remapped_gtt(void *arg)
>  					unsigned int offset;
>  					u32 val = y << 16 | x;
>  
> -					if (*t == I915_GTT_VIEW_ROTATED)
> +					if (i915_gtt_view_is_rotated(&view))
>  						offset = (x * plane_info[0].dst_stride + y) * PAGE_SIZE;
>  					else
>  						offset = (y * plane_info[0].dst_stride + x) * PAGE_SIZE;
> @@ -1064,7 +1063,7 @@ static int igt_vma_remapped_gtt(void *arg)
>  					u32 exp = y << 16 | x;
>  					u32 val;
>  
> -					if (*t == I915_GTT_VIEW_ROTATED)
> +					if (i915_gtt_view_is_rotated(&view))
>  						src_idx = rotated_index(&view.rotated, 0, x, y);
>  					else
>  						src_idx = remapped_index(&view.remapped, 0, x, y);
> @@ -1073,7 +1072,7 @@ static int igt_vma_remapped_gtt(void *arg)
>  					val = ioread32(&map[offset / sizeof(*map)]);
>  					if (val != exp) {
>  						pr_err("%s VMA write test failed, expected 0x%x, found 0x%x\n",
> -						       *t == I915_GTT_VIEW_ROTATED ? "Rotated" : "Remapped",
> +						       i915_gtt_view_is_rotated(&view) ? "Rotated" : "Remapped",
>  						       exp, val);
>  						i915_vma_unpin_iomap(vma);
>  						err = -EINVAL;

-- 
Jani Nikula, Intel

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

* Re: [PATCH 11/12] drm/i915/selftests:  Use i915_gtt_view_is_*()
  2026-04-08  9:03   ` Jani Nikula
@ 2026-04-08  9:04     ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  9:04 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Wed, 08 Apr 2026, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> Replace the naked GTT view type checks with the new
>> i915_gtt_view_is_*() helpers. This isolates some of
>> the code from GTT view implementation details.
>>
>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Oh, double space in the Subject.

>
>> ---
>>  drivers/gpu/drm/i915/selftests/i915_vma.c | 23 +++++++++++------------
>>  1 file changed, 11 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/selftests/i915_vma.c b/drivers/gpu/drm/i915/selftests/i915_vma.c
>> index 258557388a2d..60dbc6e04f43 100644
>> --- a/drivers/gpu/drm/i915/selftests/i915_vma.c
>> +++ b/drivers/gpu/drm/i915/selftests/i915_vma.c
>> @@ -533,12 +533,11 @@ assert_remapped(struct drm_i915_gem_object *obj,
>>  	return sg;
>>  }
>>  
>> -static unsigned int remapped_size(enum i915_gtt_view_type view_type,
>> +static unsigned int remapped_size(const struct i915_gtt_view *view,
>>  				  const struct intel_remapped_plane_info *a,
>>  				  const struct intel_remapped_plane_info *b)
>>  {
>> -
>> -	if (view_type == I915_GTT_VIEW_ROTATED)
>> +	if (i915_gtt_view_is_rotated(view))
>>  		return a->dst_stride * a->width + b->dst_stride * b->width;
>>  	else
>>  		return a->dst_stride * a->height + b->dst_stride * b->height;
>> @@ -606,11 +605,11 @@ static int igt_vma_rotate_remap(void *arg)
>>  			max_offset = max_pages - max_offset;
>>  
>>  			if (!plane_info[0].dst_stride)
>> -				plane_info[0].dst_stride = view.type == I915_GTT_VIEW_ROTATED ?
>> +				plane_info[0].dst_stride = i915_gtt_view_is_rotated(&view) ?
>>  									plane_info[0].height :
>>  									plane_info[0].width;
>>  			if (!plane_info[1].dst_stride)
>> -				plane_info[1].dst_stride = view.type == I915_GTT_VIEW_ROTATED ?
>> +				plane_info[1].dst_stride = i915_gtt_view_is_rotated(&view) ?
>>  									plane_info[1].height :
>>  									plane_info[1].width;
>>  
>> @@ -632,7 +631,7 @@ static int igt_vma_rotate_remap(void *arg)
>>  						goto out_object;
>>  					}
>>  
>> -					expected_pages = remapped_size(view.type, &plane_info[0], &plane_info[1]);
>> +					expected_pages = remapped_size(&view, &plane_info[0], &plane_info[1]);
>>  
>>  					if (view.type != I915_GTT_VIEW_NORMAL &&
>>  					    vma->size != expected_pages * PAGE_SIZE) {
>> @@ -664,13 +663,13 @@ static int igt_vma_rotate_remap(void *arg)
>>  
>>  					sg = vma->pages->sgl;
>>  					for (n = 0; n < ARRAY_SIZE(view.rotated.plane); n++) {
>> -						if (view.type == I915_GTT_VIEW_ROTATED)
>> +						if (i915_gtt_view_is_rotated(&view))
>>  							sg = assert_rotated(obj, &view.rotated, n, sg);
>>  						else
>>  							sg = assert_remapped(obj, &view.remapped, n, sg);
>>  						if (IS_ERR(sg)) {
>>  							pr_err("Inconsistent %s VMA pages for plane %d: [(%d, %d, %d, %d, %d), (%d, %d, %d, %d, %d)]\n",
>> -							       view.type == I915_GTT_VIEW_ROTATED ?
>> +							       i915_gtt_view_is_rotated(&view) ?
>>  							       "rotated" : "remapped", n,
>>  							       plane_info[0].width,
>>  							       plane_info[0].height,
>> @@ -1009,7 +1008,7 @@ static int igt_vma_remapped_gtt(void *arg)
>>  				goto out;
>>  
>>  			if (!plane_info[0].dst_stride)
>> -				plane_info[0].dst_stride = *t == I915_GTT_VIEW_ROTATED ?
>> +				plane_info[0].dst_stride = i915_gtt_view_is_rotated(&view) ?
>>  								 p->height : p->width;
>>  
>>  			vma = i915_gem_object_ggtt_pin(obj, &view, 0, 0, PIN_MAPPABLE);
>> @@ -1032,7 +1031,7 @@ static int igt_vma_remapped_gtt(void *arg)
>>  					unsigned int offset;
>>  					u32 val = y << 16 | x;
>>  
>> -					if (*t == I915_GTT_VIEW_ROTATED)
>> +					if (i915_gtt_view_is_rotated(&view))
>>  						offset = (x * plane_info[0].dst_stride + y) * PAGE_SIZE;
>>  					else
>>  						offset = (y * plane_info[0].dst_stride + x) * PAGE_SIZE;
>> @@ -1064,7 +1063,7 @@ static int igt_vma_remapped_gtt(void *arg)
>>  					u32 exp = y << 16 | x;
>>  					u32 val;
>>  
>> -					if (*t == I915_GTT_VIEW_ROTATED)
>> +					if (i915_gtt_view_is_rotated(&view))
>>  						src_idx = rotated_index(&view.rotated, 0, x, y);
>>  					else
>>  						src_idx = remapped_index(&view.remapped, 0, x, y);
>> @@ -1073,7 +1072,7 @@ static int igt_vma_remapped_gtt(void *arg)
>>  					val = ioread32(&map[offset / sizeof(*map)]);
>>  					if (val != exp) {
>>  						pr_err("%s VMA write test failed, expected 0x%x, found 0x%x\n",
>> -						       *t == I915_GTT_VIEW_ROTATED ? "Rotated" : "Remapped",
>> +						       i915_gtt_view_is_rotated(&view) ? "Rotated" : "Remapped",
>>  						       exp, val);
>>  						i915_vma_unpin_iomap(vma);
>>  						err = -EINVAL;

-- 
Jani Nikula, Intel

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

* Re: [PATCH 12/12] drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init()
  2026-04-07 15:50 ` [PATCH 12/12] drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init() Ville Syrjala
@ 2026-04-08  9:09   ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  9:09 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the open coded intel_fb_needs_pot_stride_remap() check
> inside intel_fb_view_init() with the real thing.
>
> The current check doesn't have the intel_fb_uses_dpt() in there, but
> that is the only situation when we use the remapped view, and thus
> was always implied.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_fb.c | 19 ++++++++++++-------
>  1 file changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index ceed695d3ad4..c4af368deffd 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -1627,13 +1627,14 @@ calc_plane_normal_size(const struct intel_framebuffer *fb, int color_plane,
>  
>  static void intel_fb_view_init(struct intel_display *display,
>  			       struct intel_fb_view *view,
> -			       enum i915_gtt_view_type view_type)
> +			       enum i915_gtt_view_type view_type,
> +			       const struct intel_framebuffer *fb)
>  {
>  	memset(view, 0, sizeof(*view));
>  	view->gtt.type = view_type;
>  
>  	if (i915_gtt_view_is_remapped(&view->gtt) &&
> -	    (display->platform.alderlake_p || DISPLAY_VER(display) >= 14))
> +	    intel_fb_needs_pot_stride_remap(fb))
>  		view->gtt.remapped.plane_alignment = SZ_2M / PAGE_SIZE;
>  }
>  
> @@ -1699,16 +1700,19 @@ int intel_fill_fb_info(struct intel_display *display, struct intel_framebuffer *
>  	int i, num_planes = fb->base.format->num_planes;
>  	unsigned int tile_size = intel_tile_size(display);
>  
> -	intel_fb_view_init(display, &fb->normal_view, I915_GTT_VIEW_NORMAL);
> +	intel_fb_view_init(display, &fb->normal_view,
> +			   I915_GTT_VIEW_NORMAL, fb);
>  
>  	drm_WARN_ON(display->drm,
>  		    intel_fb_supports_90_270_rotation(fb) &&
>  		    intel_fb_needs_pot_stride_remap(fb));
>  
>  	if (intel_fb_supports_90_270_rotation(fb))
> -		intel_fb_view_init(display, &fb->rotated_view, I915_GTT_VIEW_ROTATED);
> +		intel_fb_view_init(display, &fb->rotated_view,
> +				   I915_GTT_VIEW_ROTATED, fb);
>  	if (intel_fb_needs_pot_stride_remap(fb))
> -		intel_fb_view_init(display, &fb->remapped_view, I915_GTT_VIEW_REMAPPED);
> +		intel_fb_view_init(display, &fb->remapped_view,
> +				   I915_GTT_VIEW_REMAPPED, fb);
>  
>  	for (i = 0; i < num_planes; i++) {
>  		struct fb_plane_view_dims view_dims;
> @@ -1835,8 +1839,9 @@ static void intel_plane_remap_gtt(struct intel_plane_state *plane_state)
>  	u32 gtt_offset = 0;
>  
>  	intel_fb_view_init(display, &plane_state->view,
> -			   drm_rotation_90_or_270(rotation) ? I915_GTT_VIEW_ROTATED :
> -							      I915_GTT_VIEW_REMAPPED);
> +			   drm_rotation_90_or_270(rotation) ?
> +			   I915_GTT_VIEW_ROTATED : I915_GTT_VIEW_REMAPPED,
> +			   intel_fb);
>  
>  	src_x = plane_state->uapi.src.x1 >> 16;
>  	src_y = plane_state->uapi.src.y1 >> 16;

-- 
Jani Nikula, Intel

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

* Re: [PATCH 07/12] drm/i915/vma: Add helpers to check GTT view type
  2026-04-08  8:50   ` Jani Nikula
@ 2026-04-08  9:11     ` Jani Nikula
  0 siblings, 0 replies; 33+ messages in thread
From: Jani Nikula @ 2026-04-08  9:11 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe

On Wed, 08 Apr 2026, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> I915_GTT_VIEW_ROTATED is going away and being replaced by just
>> I915_GTT_VIEW_REMAPPED, so we're going to need another way to
>> determine if the view is rotated or not (since width/height
>> will need to be swapped when operating on the destination
>> coordinate space). Provide small helper functions to hide
>> such implementation details from most of the code using GTT views.
>>
>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Funny, I think I have these helpers in a branch somewhere too. :)
>
> It's still not clear to me where we'll end up with this, since the file
> is in i915 and used directly from xe core too, which is something we
> want to get rid of. But seems like iterative improvement, so let's roll
> with this.
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

PS. I note that there's still plenty of places in i915 core that could
be converted to the helpers after this series.

>
>> ---
>>  drivers/gpu/drm/i915/i915_gtt_view_types.h | 15 +++++++++++++++
>>  1 file changed, 15 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_gtt_view_types.h b/drivers/gpu/drm/i915/i915_gtt_view_types.h
>> index c084f67bc880..9c4f38db32ff 100644
>> --- a/drivers/gpu/drm/i915/i915_gtt_view_types.h
>> +++ b/drivers/gpu/drm/i915/i915_gtt_view_types.h
>> @@ -56,4 +56,19 @@ struct i915_gtt_view {
>>  	};
>>  };
>>  
>> +static inline bool i915_gtt_view_is_normal(const struct i915_gtt_view *view)
>> +{
>> +	return view->type == I915_GTT_VIEW_NORMAL;
>> +}
>> +
>> +static inline bool i915_gtt_view_is_remapped(const struct i915_gtt_view *view)
>> +{
>> +	return view->type == I915_GTT_VIEW_REMAPPED;
>> +}
>> +
>> +static inline bool i915_gtt_view_is_rotated(const struct i915_gtt_view *view)
>> +{
>> +	return view->type == I915_GTT_VIEW_ROTATED;
>> +}
>> +
>>  #endif /* __I915_GTT_VIEW_TYPES_H__ */

-- 
Jani Nikula, Intel

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

* Re: [PATCH 10/12] drm/i915/selftests: Eliminate duplicate vma size check
  2026-04-08  9:01   ` Jani Nikula
@ 2026-04-08 11:28     ` Ville Syrjälä
  0 siblings, 0 replies; 33+ messages in thread
From: Ville Syrjälä @ 2026-04-08 11:28 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe

On Wed, Apr 08, 2026 at 12:01:26PM +0300, Jani Nikula wrote:
> On Tue, 07 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Both remapped and rotated views need the exact same size check.
> 
> This is misleading, see below. At the very least the commit message
> needs amending.
> 
> > Currently that is being done separately for each type. Share
> > the code by just checking for !NORMAL view. This test doesn't
> > use I915_GTT_VIEW_PARTIAL so the inverse check is fine here.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/selftests/i915_vma.c | 10 +---------
> >  1 file changed, 1 insertion(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/selftests/i915_vma.c b/drivers/gpu/drm/i915/selftests/i915_vma.c
> > index 7c4111e60f2e..258557388a2d 100644
> > --- a/drivers/gpu/drm/i915/selftests/i915_vma.c
> > +++ b/drivers/gpu/drm/i915/selftests/i915_vma.c
> > @@ -634,7 +634,7 @@ static int igt_vma_rotate_remap(void *arg)
> >  
> >  					expected_pages = remapped_size(view.type, &plane_info[0], &plane_info[1]);
> >  
> > -					if (view.type == I915_GTT_VIEW_ROTATED &&
> > +					if (view.type != I915_GTT_VIEW_NORMAL &&
> >  					    vma->size != expected_pages * PAGE_SIZE) {
> >  						pr_err("VMA is wrong size, expected %lu, found %llu\n",
> >  						       PAGE_SIZE * expected_pages, vma->size);
> > @@ -642,14 +642,6 @@ static int igt_vma_rotate_remap(void *arg)
> >  						goto out_object;
> >  					}
> >  
> > -					if (view.type == I915_GTT_VIEW_REMAPPED &&
> > -					    vma->size > expected_pages * PAGE_SIZE) {
> 
> This check becomes stricter now, expecting exact match. Does it matter?

I didn't even notice tbh.

> 
> History points at you! ;)
> 
> e2e394bffa19 ("drm/i915/selftests: Add mock selftest for remapped vmas")
> 
> If you think the change in the check is okay, and with the commit
> message amended,

Hmm. I don't actually know why I did the more relaxed check originally.
Can't think right now why the exact check wouldn't be correct for both.
I suppose actually running the test should tell us...

And now that I think about this, the strict check would be incorrect if
we were testing the plane_alignment stuff. But we seem to lack selftests
for that stuff for some reason. I should really add that, and switch
the size calculations to use the real intel_remapped_info_size()...

> 
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> 
> 
> > -						pr_err("VMA is wrong size, expected %lu, found %llu\n",
> > -						       PAGE_SIZE * expected_pages, vma->size);
> > -						err = -EINVAL;
> > -						goto out_object;
> > -					}
> > -
> >  					if (vma->pages->nents > expected_pages) {
> >  						pr_err("sg table is wrong sizeo, expected %u, found %u nents\n",
> >  						       expected_pages, vma->pages->nents);
> 
> -- 
> Jani Nikula, Intel

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support
  2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
                   ` (15 preceding siblings ...)
  2026-04-07 19:34 ` ✓ Xe.CI.FULL: " Patchwork
@ 2026-04-10 11:25 ` Ville Syrjälä
  16 siblings, 0 replies; 33+ messages in thread
From: Ville Syrjälä @ 2026-04-10 11:25 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

On Tue, Apr 07, 2026 at 06:50:41PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> I had a quick look at implementing tile64/Ys support.
> https://github.com/vsyrjala/linux.git remap_tile_ys_64
> is the result.
> 
> I think I want the whole generic remap thing from there
> even if we don't end up adding the actual tile64/Ys support.
> So here is an extract of some prep work from that branch,
> though I didn't include the generic remap thing itself yet.
> 
> Ville Syrjälä (12):
>   drm/i915/fb: Nuke intel_tile_row_size()
>   drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static
>   drm/i915/fb: Reject per-plane remapping with DPT
>   drm/i915/vma: Add helpers to check GTT view type
>   drm/i915/fb: Use i915_gtt_view_is_*()
>   drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in
>     intel_fb_view_init()

I merged all those to get intel_fb.c into shape. 

>   drm/xe/fb: Use the correct gtt view for remapped FBs
>   drm/xe/fb: Remove weird VMA end alignemnt
>   drm/xe/fb: Extract xe_dpt_size()
>   drm/xe/fb: Use i915_gtt_view_is_*()

Left out the xe specific stuff for now to see if Maarten/others
have any comments.

>   drm/i915/selftests: Eliminate duplicate vma size check
>   drm/i915/selftests:  Use i915_gtt_view_is_*()

And I need to take another look at the selftests.

Thanks for the reviews.

> 
>  drivers/gpu/drm/i915/display/intel_fb.c    | 42 ++++++++++-----------
>  drivers/gpu/drm/i915/display/intel_fb.h    |  2 -
>  drivers/gpu/drm/i915/i915_gtt_view_types.h | 15 ++++++++
>  drivers/gpu/drm/i915/selftests/i915_vma.c  | 33 ++++++-----------
>  drivers/gpu/drm/xe/display/xe_fb_pin.c     | 43 ++++++++++++----------
>  5 files changed, 72 insertions(+), 63 deletions(-)
> 
> -- 
> 2.52.0

-- 
Ville Syrjälä
Intel

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

end of thread, other threads:[~2026-04-10 11:25 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 15:50 [PATCH 00/12] drm/i915/fb: Prep work for more generic remapping support Ville Syrjala
2026-04-07 15:50 ` [PATCH 01/12] drm/i915/fb: Nuke intel_tile_row_size() Ville Syrjala
2026-04-08  8:42   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 02/12] drm/i915/fb: Make intel_fb_needs_pot_stride_remap() static Ville Syrjala
2026-04-08  8:43   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 03/12] drm/i915/fb: Reject per-plane remapping with DPT Ville Syrjala
2026-04-08  8:43   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 04/12] drm/xe/fb: Use the correct gtt view for remapped FBs Ville Syrjala
2026-04-08  8:44   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 05/12] drm/xe/fb: Remove weird VMA end alignemnt Ville Syrjala
2026-04-08  8:45   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 06/12] drm/xe/fb: Extract xe_dpt_size() Ville Syrjala
2026-04-08  8:47   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 07/12] drm/i915/vma: Add helpers to check GTT view type Ville Syrjala
2026-04-08  8:50   ` Jani Nikula
2026-04-08  9:11     ` Jani Nikula
2026-04-07 15:50 ` [PATCH 08/12] drm/xe/fb: Use i915_gtt_view_is_*() Ville Syrjala
2026-04-08  8:52   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 09/12] drm/i915/fb: " Ville Syrjala
2026-04-08  8:53   ` Jani Nikula
2026-04-07 15:50 ` [PATCH 10/12] drm/i915/selftests: Eliminate duplicate vma size check Ville Syrjala
2026-04-08  9:01   ` Jani Nikula
2026-04-08 11:28     ` Ville Syrjälä
2026-04-07 15:50 ` [PATCH 11/12] drm/i915/selftests: Use i915_gtt_view_is_*() Ville Syrjala
2026-04-08  9:03   ` Jani Nikula
2026-04-08  9:04     ` Jani Nikula
2026-04-07 15:50 ` [PATCH 12/12] drm/i915/fb: Use intel_fb_needs_pot_stride_remap() in intel_fb_view_init() Ville Syrjala
2026-04-08  9:09   ` Jani Nikula
2026-04-07 15:57 ` ✗ CI.checkpatch: warning for drm/i915/fb: Prep work for more generic remapping support Patchwork
2026-04-07 15:58 ` ✓ CI.KUnit: success " Patchwork
2026-04-07 16:37 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-07 19:34 ` ✓ Xe.CI.FULL: " Patchwork
2026-04-10 11:25 ` [PATCH 00/12] " Ville Syrjälä

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