public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe
@ 2026-02-11 16:33 Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 01/17] tests/kms_plane_alpha_blend: " Ville Syrjala
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert a bunch of tests to use 'igt_crtc_t' instead of
'enum pipe'.

Afterwards there are still quite a few unconverted tests
left that will need stringer cocci magic or manual conversion...

Ville Syrjälä (17):
  tests/kms_plane_alpha_blend: Use igt_crtc_t instead of enum pipe
  tests/kms: Remove unused 'pipe' function parameters
  tests/kms: Remove const qualifier from 'pipe' function parameters
  tests/intel/kms_busy: Use 'enum pipe' instead of 'int'
  tests/kms_atomic_interruptible: s/crtc/drm_crtc/
  tests/intel/kms_psr2_su: Use igt_crtc_t instead of enum pipe
  tests/intel/kms_dsc*: Use igt_crtc_t instead of enum pipe
  tests/kms_cursor_legacy: Use igt_crtc_t instead of enum pipe
  tests/kms_color*: Use igt_crtc_t instead of enum pipe
  tests/kms_atomic_transition: Use igt_crtc_t instead of enum pipe
  tests/kms_plane: Use igt_crtc_t instead of enum pipe
  tests/intel/kms_pipe_b_c_ivb: Use igt_crtc_t instead of enum pipe
  tests/kms_vrr: Use igt_crtc_t instead of enum pipe
  tests/kms_display_modes: Use igt_crtc_t instead of enum pipe
  tests/kms_rotation_crc: Use igt_crtc_t instead of enum pipe
  tests/kms_properties: Use igt_crtc_t instead of enum pipe
  tests/kms: Use igt_crtc_t instead of enum pipe

 tests/amdgpu/amd_freesync_video_mode.c |  31 ++-
 tests/chamelium/kms_chamelium_color.c  |  49 ++--
 tests/intel/kms_busy.c                 |  80 +++---
 tests/intel/kms_dsc.c                  |  15 +-
 tests/intel/kms_dsc_helper.c           |   8 +-
 tests/intel/kms_dsc_helper.h           |   3 +-
 tests/intel/kms_fence_pin_leak.c       |   7 +-
 tests/intel/kms_flip_scaled_crc.c      |  36 ++-
 tests/intel/kms_flip_tiling.c          |   4 +-
 tests/intel/kms_pipe_b_c_ivb.c         | 102 +++++---
 tests/intel/kms_pm_rpm.c               |   4 +-
 tests/intel/kms_psr2_su.c              |  24 +-
 tests/kms_atomic.c                     | 151 +++++++----
 tests/kms_atomic_interruptible.c       |  61 +++--
 tests/kms_atomic_transition.c          | 147 ++++++-----
 tests/kms_color.c                      |  46 ++--
 tests/kms_color_helper.c               |  23 +-
 tests/kms_color_helper.h               |   8 +-
 tests/kms_color_pipeline.c             |  10 +-
 tests/kms_concurrent.c                 |   8 +-
 tests/kms_content_protection.c         |   4 +-
 tests/kms_cursor_legacy.c              | 344 ++++++++++++-------------
 tests/kms_display_modes.c              |  30 +--
 tests/kms_dither.c                     |  25 +-
 tests/kms_flip_event_leak.c            |   4 +-
 tests/kms_panel_fitting.c              |  40 +--
 tests/kms_pipe_crc_basic.c             |  59 +++--
 tests/kms_plane.c                      | 185 +++++++------
 tests/kms_plane_alpha_blend.c          |  61 +++--
 tests/kms_plane_scaling.c              |  10 +-
 tests/kms_properties.c                 |  91 ++++---
 tests/kms_rmfb.c                       |   8 +-
 tests/kms_rotation_crc.c               |  42 +--
 tests/kms_scaling_modes.c              |   8 +-
 tests/kms_universal_plane.c            |  81 +++---
 tests/kms_vrr.c                        |  98 +++----
 36 files changed, 1052 insertions(+), 855 deletions(-)

-- 
2.52.0


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

* [PATCH i-g-t 01/17] tests/kms_plane_alpha_blend: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 02/17] tests/kms: Remove unused 'pipe' function parameters Ville Syrjala
                   ` (20 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_plane_alpha_blend.

The use of function pointers makes this a bit more
complicated than your average test.

 #include "scripts/iterators.cocci"

@func@
typedef igt_crtc_t;
identifier FUNC;
identifier PIPE;
parameter list[N] P;
@@
 FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *crtc
  ,...)
{
<...
(
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...>
}

@depends on func@
identifier func.FUNC;
expression list[func.N] EP;
expression PIPE;
@@
FUNC(EP
-    ,PIPE
+    ,igt_crtc_for_pipe(display, PIPE)
     ,...)

@@
identifier FUNC, CRTC;
@@
FUNC(..., igt_crtc_t *CRTC, ...)
{
...
(
- igt_crtc_t *CRTC = CRTC;
|
- igt_crtc_t *CRTC = igt_crtc_for_pipe(...);
|
- igt_crtc_t *CRTC;
...
- CRTC = igt_crtc_for_pipe(...);
)
...
}

@func_ptr@
parameter list[N] P;
identifier F, PIPE;
type T;
@@
struct {
       ...
       T (*F)(P
-      	 ,enum pipe
+      	 ,igt_crtc_t *crtc
	 ,...);
       ...
}

@depends on func_ptr@
identifier func_ptr.F;
expression list[func_ptr.N] EP;
expression PIPE;
@@
F(EP
-	,PIPE
+	,igt_crtc_for_pipe(display, PIPE)
	,...)

@func_ptr2@
parameter list[N] P;
identifier FUNC, F, PIPE;
type T;
@@
FUNC(...,
  T (*F)(P
-	,enum pipe
+	,igt_crtc_t *crtc
	,...), ...)
{ ... }

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
identifier DISPLAY;
expression E;
@@
- igt_display_t *DISPLAY = E;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_plane_alpha_blend.c | 61 +++++++++++++++++------------------
 1 file changed, 30 insertions(+), 31 deletions(-)

diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c
index 1f093a49c9b6..2ee74d30f558 100644
--- a/tests/kms_plane_alpha_blend.c
+++ b/tests/kms_plane_alpha_blend.c
@@ -168,11 +168,11 @@ static void draw_squares_coverage(struct igt_fb *fb, int w, int h, uint8_t as)
 	igt_put_cairo_ctx(cr);
 }
 
-static void reset_alpha(igt_display_t *display, enum pipe pipe)
+static void reset_alpha(igt_display_t *display, igt_crtc_t *crtc)
 {
 	igt_plane_t *plane;
 
-	for_each_plane_on_pipe(display, pipe, plane) {
+	for_each_plane_on_pipe(display, crtc->pipe, plane) {
 		if (igt_plane_has_prop(plane, IGT_PLANE_ALPHA))
 			igt_plane_set_prop_value(plane, IGT_PLANE_ALPHA, 0xffff);
 
@@ -209,11 +209,9 @@ static void remove_fbs(data_t *data)
 	igt_remove_fb(data->gfx_fd, &data->gray_fb);
 }
 
-static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe)
+static void prepare_crtc(data_t *data, igt_output_t *output, igt_crtc_t *crtc)
 {
 	drmModeModeInfo *mode;
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	int w, h;
 	igt_plane_t *primary = igt_crtc_get_plane_type(crtc,
 						       DRM_PLANE_TYPE_PRIMARY);
@@ -289,7 +287,7 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe)
 	igt_plane_set_fb(primary, &data->black_fb);
 }
 
-static void basic_alpha(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void basic_alpha(data_t *data, igt_crtc_t *crtc, igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc, crc;
@@ -327,7 +325,7 @@ static void basic_alpha(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_assert_crc_equal(&ref_crc, &crc);
 }
 
-static void argb_opaque(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void argb_opaque(data_t *data, igt_crtc_t *crtc, igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc, crc;
@@ -344,7 +342,8 @@ static void argb_opaque(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_assert_crc_equal(&ref_crc, &crc);
 }
 
-static void argb_transparent(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void argb_transparent(data_t *data, igt_crtc_t *crtc,
+			     igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc, crc;
@@ -361,7 +360,8 @@ static void argb_transparent(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_assert_crc_equal(&ref_crc, &crc);
 }
 
-static void constant_alpha_min(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void constant_alpha_min(data_t *data, igt_crtc_t *crtc,
+			       igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc, crc;
@@ -383,10 +383,10 @@ static void constant_alpha_min(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_assert_crc_equal(&ref_crc, &crc);
 }
 
-static void constant_alpha_mid(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void constant_alpha_mid(data_t *data, igt_crtc_t *crtc,
+			       igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crc_t ref_crc, crc;
 
 	if (plane->type != DRM_PLANE_TYPE_PRIMARY)
@@ -410,10 +410,10 @@ static void constant_alpha_mid(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_assert_crc_equal(&ref_crc, &crc);
 }
 
-static void constant_alpha_max(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void constant_alpha_max(data_t *data, igt_crtc_t *crtc,
+			       igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crc_t ref_crc, crc;
 
 	if (plane->type != DRM_PLANE_TYPE_PRIMARY)
@@ -442,10 +442,9 @@ static void constant_alpha_max(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_plane_set_fb(plane, NULL);
 }
 
-static void alpha_7efc(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void alpha_7efc(data_t *data, igt_crtc_t *crtc, igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crc_t ref_crc = {}, crc = {};
 
 	if (plane->type != DRM_PLANE_TYPE_PRIMARY)
@@ -471,7 +470,7 @@ static void alpha_7efc(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_pipe_crc_stop(data->pipe_crc);
 }
 
-static void coverage_7efc(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void coverage_7efc(data_t *data, igt_crtc_t *crtc, igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc = {}, crc = {};
@@ -497,10 +496,10 @@ static void coverage_7efc(data_t *data, enum pipe pipe, igt_plane_t *plane)
 	igt_pipe_crc_stop(data->pipe_crc);
 }
 
-static void coverage_premult_constant(data_t *data, enum pipe pipe, igt_plane_t *plane)
+static void coverage_premult_constant(data_t *data, igt_crtc_t *crtc,
+				      igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crc_t ref_crc = {}, crc = {};
 
 	/* Set a background color on the primary fb for testing */
@@ -530,12 +529,12 @@ static void coverage_premult_constant(data_t *data, enum pipe pipe, igt_plane_t
 	igt_pipe_crc_stop(data->pipe_crc);
 }
 
-static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t *output,
+static void run_test_on_pipe_planes(data_t *data, igt_crtc_t *crtc,
+				    igt_output_t *output,
 				    bool blend, bool must_multiply,
-				    void(*test)(data_t *, enum pipe, igt_plane_t *))
+				    void(*test)(data_t *, igt_crtc_t *crtc, igt_plane_t *))
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *plane;
 	int first_plane = -1;
 	int last_plane = -1;
@@ -548,7 +547,7 @@ static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t *
 			continue;
 
 		/* reset plane alpha properties between each plane */
-		reset_alpha(display, crtc->pipe);
+		reset_alpha(display, crtc);
 
 		if (must_multiply && !has_multiplied_alpha(data, plane))
 			continue;
@@ -568,7 +567,7 @@ static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t *
 			continue;
 
 		/* Reset plane alpha properties between each plane. */
-		reset_alpha(display, crtc->pipe);
+		reset_alpha(display, crtc);
 
 		if (must_multiply && !has_multiplied_alpha(data, plane))
 			continue;
@@ -577,7 +576,7 @@ static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t *
 			continue;
 
 		igt_info("Testing plane %u\n", plane->index);
-		test(data, crtc->pipe, plane);
+		test(data, crtc, plane);
 		igt_plane_set_fb(plane, NULL);
 
 		if (in_simulation)
@@ -590,7 +589,7 @@ static void run_test_on_pipe_planes(data_t *data, enum pipe pipe, igt_output_t *
 
 static const struct {
 	const char *name;
-	void (*test)(data_t *, enum pipe, igt_plane_t *);
+	void (*test)(data_t *, igt_crtc_t *crtc, igt_plane_t *);
 	bool blend;
 	bool must_multiply;
 	const char *desc;
@@ -653,11 +652,10 @@ static const struct {
 	},
 };
 
-static bool pipe_check(data_t *data, enum pipe pipe,
+static bool pipe_check(data_t *data, igt_crtc_t *crtc,
 		       bool blend, bool must_multiply)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *plane;
 	bool plane_alpha = false, plane_blend = false, multiply = false;
 
@@ -672,7 +670,7 @@ static bool pipe_check(data_t *data, enum pipe pipe,
 		plane_blend = true;
 
 		/* reset plane alpha properties between each plane */
-		reset_alpha(display, crtc->pipe);
+		reset_alpha(display, crtc);
 
 		if (must_multiply && !has_multiplied_alpha(data, plane))
 			continue;
@@ -718,15 +716,16 @@ static void run_subtests(data_t *data)
 				if (!intel_pipe_output_combo_valid(&data->display))
 					continue;
 
-				prepare_crtc(data, output, crtc->pipe);
-				if (!pipe_check(data, crtc->pipe, subtests[i].blend, subtests[i].must_multiply))
+				prepare_crtc(data, output,
+					     crtc);
+				if (!pipe_check(data, crtc, subtests[i].blend, subtests[i].must_multiply))
 					continue;
 
 				igt_dynamic_f("pipe-%s-%s",
 					      igt_crtc_name(crtc),
 					      output->name)
 					run_test_on_pipe_planes(data,
-								crtc->pipe,
+								crtc,
 								output,
 								subtests[i].blend,
 								subtests[i].must_multiply, subtests[i].test);
-- 
2.52.0


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

* [PATCH i-g-t 02/17] tests/kms: Remove unused 'pipe' function parameters
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 01/17] tests/kms_plane_alpha_blend: " Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 03/17] tests/kms: Remove const qualifier from " Ville Syrjala
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Various functions take a 'pipe' parameter but never
use it. Get rid of it.

 #include "scripts/iterators.cocci"

@func@
identifier FUNC, PIPE;
parameter list[N] P;
@@
FUNC(P
-	,enum pipe PIPE
	,...)
{
... when != PIPE
}

@depends on func@
identifier func.FUNC;
expression list[func.N] EP;
expression PIPE;
@@
 FUNC(EP
-	,PIPE
	,...)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/amdgpu/amd_freesync_video_mode.c | 16 ++++++-------
 tests/intel/kms_flip_tiling.c          |  4 ++--
 tests/intel/kms_pm_rpm.c               |  4 ++--
 tests/kms_concurrent.c                 |  8 +++----
 tests/kms_content_protection.c         |  4 ++--
 tests/kms_cursor_legacy.c              |  9 ++++----
 tests/kms_flip_event_leak.c            |  4 ++--
 tests/kms_plane.c                      |  6 ++---
 tests/kms_plane_scaling.c              | 10 ++------
 tests/kms_vrr.c                        | 32 +++++++++++++-------------
 10 files changed, 44 insertions(+), 53 deletions(-)

diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c
index 0592d7139ad3..31c842ee8917 100644
--- a/tests/amdgpu/amd_freesync_video_mode.c
+++ b/tests/amdgpu/amd_freesync_video_mode.c
@@ -559,7 +559,6 @@ static void set_vrr_on_pipe(data_t *data, enum pipe pipe, bool enabled)
 static void prepare_test(
 		data_t *data,
 		igt_output_t *output,
-		enum pipe pipe,
 		drmModeModeInfo *mode)
 {
 	/* Prepare resources */
@@ -625,7 +624,6 @@ static uint32_t
 flip_and_measure(
 		data_t *data,
 		igt_output_t *output,
-		enum pipe pipe,
 		uint64_t interval_ns,
 		uint64_t duration_ns,
 		int anim_type)
@@ -750,7 +748,7 @@ static void init_data(data_t *data, igt_output_t *output)
 	data->vrr_range = get_vrr_range(data, output);
 }
 
-static void finish_test(data_t *data, enum pipe pipe, igt_output_t *output)
+static void finish_test(data_t *data, igt_output_t *output)
 {
 	igt_plane_set_fb(data->primary, NULL);
 	igt_output_set_crtc(output, NULL);
@@ -815,21 +813,21 @@ mode_transition(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t sce
 			"Failure on selecting mode with given type and refresh rate.\n");
 
 	igt_info("stage-1: fps:%d\n", mode_start->vrefresh);
-	prepare_test(data, output, pipe, mode_start);
+	prepare_test(data, output, mode_start);
 	interval = nsec_per_frame(mode_start->vrefresh);
 	set_vrr_on_pipe(data, pipe, true);
-	result = flip_and_measure(data, output, pipe, interval, TEST_DURATION_NS, ANIM_TYPE_SMPTE);
+	result = flip_and_measure(data, output, interval, TEST_DURATION_NS, ANIM_TYPE_SMPTE);
 
 	igt_info("stage-2: simple animation as video playback fps:%d\n", mode_playback->vrefresh);
-	prepare_test(data, output, pipe, mode_playback);
+	prepare_test(data, output, mode_playback);
 	interval = nsec_per_frame(mode_playback->vrefresh);
 	/* Do a short run with VRR before measure to make sure we measure in a stable state */
-	result = flip_and_measure(data, output, pipe, interval, 2 * NSECS_PER_SEC, ANIM_TYPE_CIRCLE_WAVE);
-	result = flip_and_measure(data, output, pipe, interval, TEST_DURATION_NS, ANIM_TYPE_CIRCLE_WAVE);
+	result = flip_and_measure(data, output, interval, 2 * NSECS_PER_SEC, ANIM_TYPE_CIRCLE_WAVE);
+	result = flip_and_measure(data, output, interval, TEST_DURATION_NS, ANIM_TYPE_CIRCLE_WAVE);
 	igt_assert_f(result > 75, "Target refresh rate not meet 75%% (result=%d%%\n", result);
 	set_vrr_on_pipe(data, pipe, false);
 
-	finish_test(data, pipe, output);
+	finish_test(data, output);
 }
 
 /* Runs tests on outputs that are VRR capable. */
diff --git a/tests/intel/kms_flip_tiling.c b/tests/intel/kms_flip_tiling.c
index 7482d0a80efa..453394343857 100644
--- a/tests/intel/kms_flip_tiling.c
+++ b/tests/intel/kms_flip_tiling.c
@@ -169,7 +169,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 	igt_remove_fb(data->drm_fd, &data->old_fb[1]);
 }
 
-static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
+static void test_cleanup(data_t *data, igt_output_t *output)
 {
 	igt_plane_t *primary;
 	primary = igt_output_get_plane(output, 0);
@@ -274,7 +274,7 @@ int igt_main()
 						handle_lost_event(&data);
 				}
 			}
-			test_cleanup(&data, crtc->pipe, output);
+			test_cleanup(&data, output);
 		}
 	}
 
diff --git a/tests/intel/kms_pm_rpm.c b/tests/intel/kms_pm_rpm.c
index 93d190e30d9d..5f24fd49b13a 100644
--- a/tests/intel/kms_pm_rpm.c
+++ b/tests/intel/kms_pm_rpm.c
@@ -1592,7 +1592,7 @@ static void pm_test_caching(void)
 	gem_close(drm_fd, handle);
 }
 
-static bool is_preferred_mode_present(igt_output_t *output, enum pipe pipe,
+static bool is_preferred_mode_present(igt_output_t *output,
 				      igt_display_t *display)
 {
 	drmModeModeInfo *mode = NULL;
@@ -1635,7 +1635,7 @@ static void set_prefered_mode(void)
 		if (!intel_pipe_output_combo_valid(display))
 			continue;
 
-		if (is_preferred_mode_present(output, crtc->pipe, display)) {
+		if (is_preferred_mode_present(output, display)) {
 			mode_found = true;
 			break;
 		}
diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index f93581da54dc..bbc988aa2000 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -67,7 +67,7 @@ struct {
 /*
  * Common code across all tests, acting on data_t
  */
-static void test_init(data_t *data, enum pipe pipe, int n_planes,
+static void test_init(data_t *data, int n_planes,
 		      igt_output_t *output)
 {
 	data->plane = calloc(n_planes, sizeof(*data->plane));
@@ -77,7 +77,7 @@ static void test_init(data_t *data, enum pipe pipe, int n_planes,
 	igt_assert_f(data->fb != NULL, "Failed to allocate memory for FBs\n");
 }
 
-static void test_fini(data_t *data, enum pipe pipe, int n_planes,
+static void test_fini(data_t *data, int n_planes,
 		      igt_output_t *output)
 {
 	int i;
@@ -327,7 +327,7 @@ run_test(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	srand(opt.seed);
 
-	test_init(data, crtc->pipe, n_planes, output);
+	test_init(data, n_planes, output);
 
 	igt_fork(child, 1) {
 		test_plane_position_with_output(data, crtc->pipe, n_planes,
@@ -338,7 +338,7 @@ run_test(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	igt_waitchildren();
 
-	test_fini(data, crtc->pipe, n_planes, output);
+	test_fini(data, n_planes, output);
 }
 
 static void
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index 3a0476bfca71..8e21fd92cacc 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -257,7 +257,7 @@ commit_display_and_wait_for_flip(enum igt_commit_style commit_style)
 	}
 }
 
-static void modeset_with_fb(const enum pipe pipe, igt_output_t *output,
+static void modeset_with_fb(igt_output_t *output,
 			    enum igt_commit_style commit_style)
 {
 	igt_display_t *display = &data.display;
@@ -740,7 +740,7 @@ test_content_protection(enum igt_commit_style commit_style, int content_type)
 			if (!intel_pipe_output_combo_valid(display))
 				continue;
 
-			modeset_with_fb(crtc->pipe, output, commit_style);
+			modeset_with_fb(output, commit_style);
 			if (data.is_force_hdcp14)
 				set_i915_force_hdcp14(output);
 
diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index 45e9a3949283..459f3c696ac8 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -566,7 +566,6 @@ static void transition_nonblocking(igt_display_t *display, enum pipe pipe_id,
 static void prepare_flip_test(igt_display_t *display,
 			      enum flip_test mode,
 			      enum pipe flip_pipe,
-			      enum pipe cursor_pipe,
 			      struct drm_mode_cursor *arg,
 			      const struct igt_fb *prim_fb,
 			      struct igt_fb *argb_fb,
@@ -663,7 +662,7 @@ static void flip(igt_display_t *display,
 	cursor = set_cursor_on_pipe(display, cursor_pipe, &cursor_fb);
 	populate_cursor_args(display, cursor_pipe, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, flip_pipe, cursor_pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, flip_pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
@@ -777,7 +776,7 @@ static void basic_flip_cursor(igt_display_t *display,
 	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
 	populate_cursor_args(display, pipe, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, pipe, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
@@ -948,7 +947,7 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
 	populate_cursor_args(display, pipe, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, pipe, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
@@ -1380,7 +1379,7 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
 	populate_cursor_args(display, pipe, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, pipe, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
diff --git a/tests/kms_flip_event_leak.c b/tests/kms_flip_event_leak.c
index 545719638898..fe890561491c 100644
--- a/tests/kms_flip_event_leak.c
+++ b/tests/kms_flip_event_leak.c
@@ -58,7 +58,7 @@ IGT_TEST_DESCRIPTION(
     "itself won't fail even if the kernel leaks the event, but the resulting "
     "dmesg WARN will indicate a failure.");
 
-static void test(data_t *data, enum pipe pipe, igt_output_t *output)
+static void test(data_t *data, igt_output_t *output)
 {
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
@@ -128,7 +128,7 @@ int igt_main()
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				test(&data, crtc->pipe, output);
+				test(&data, output);
 			}
 		}
 	}
diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index f77bc8b39fbf..1ce3d98041ec 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -663,7 +663,7 @@ static void draw_entire_color_array(data_t *data, cairo_t *cr, uint32_t format,
 	}
 }
 
-static void prepare_format_color(data_t *data, enum pipe pipe,
+static void prepare_format_color(data_t *data,
 				 igt_plane_t *plane,
 				 uint32_t format, uint64_t modifier,
 				 int width, int height,
@@ -756,7 +756,7 @@ static void capture_format_crcs_single(data_t *data, enum pipe pipe,
 	struct igt_fb old_fb = *fb;
 	const color_t black = { 0.0f, 0.0f, 0.0f };
 
-	prepare_format_color(data, pipe, plane, format, modifier,
+	prepare_format_color(data, plane, format, modifier,
 			     width, height, encoding, range, &black, fb, true);
 
 	igt_display_commit2(&data->display, data->display.is_atomic ?
@@ -785,7 +785,7 @@ restart_round:
 		struct igt_fb old_fb = *fb;
 		int ret;
 
-		prepare_format_color(data, pipe, plane, format, modifier,
+		prepare_format_color(data, plane, format, modifier,
 				     width, height, encoding, range, c, fb,
 				     false);
 
diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 74d12cc91265..887914ec8b79 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -576,7 +576,6 @@ check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
 			     double sf_plane,
 			     bool is_clip_clamp,
 			     bool is_upscale,
-			     enum pipe pipe,
 			     igt_output_t *output,
 			     igt_rotation_t rot)
 {
@@ -742,7 +741,6 @@ test_scaler_with_modifier_pipe(data_t *d,
 								   sf_plane,
 								   is_clip_clamp,
 								   is_upscale,
-								   crtc->pipe,
 								   output,
 								   IGT_ROTATION_0);
 			if (ret != 0)
@@ -784,7 +782,6 @@ test_scaler_with_rotation_pipe(data_t *d,
 								   sf_plane,
 								   is_clip_clamp,
 								   is_upscale,
-								   crtc->pipe,
 								   output,
 								   rot);
 			if (ret != 0)
@@ -833,7 +830,6 @@ test_scaler_with_pixel_format_pipe(data_t *d, double sf_plane,
 								   sf_plane,
 								   is_clip_clamp,
 								   is_upscale,
-								   crtc->pipe,
 								   output,
 								   IGT_ROTATION_0);
 			if (ret != 0) {
@@ -888,8 +884,7 @@ find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 }
 
 static int
-__test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
-			    enum pipe pipe, igt_output_t *output,
+__test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2, igt_output_t *output,
 			    igt_plane_t *p1, igt_plane_t *p2,
 			    struct igt_fb *fb1, struct igt_fb *fb2,
 			    enum scaler_combo_test_type test_type)
@@ -1004,8 +999,7 @@ test_planes_scaling_combo(data_t *d, double sf_plane1,
 
 			if (p1->type == DRM_PLANE_TYPE_CURSOR || p2->type == DRM_PLANE_TYPE_CURSOR)
 				continue;
-			ret = __test_planes_scaling_combo(d, w1, h1, w2, h2,
-							  crtc->pipe, output,
+			ret = __test_planes_scaling_combo(d, w1, h1, w2, h2, output,
 							  p1, p2,
 							  &d->fb[1], &d->fb[2],
 							  test_type);
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 811596ec2324..55671c71e095 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -499,7 +499,7 @@ calculate_tolerance(uint64_t *threshold_hi, uint64_t *threshold_lo, uint64_t rat
  * to prevent stuttering or to match a source content rate.
  */
 static uint32_t
-flip_and_measure(data_t *data, igt_output_t *output, enum pipe pipe,
+flip_and_measure(data_t *data, igt_output_t *output,
 		 uint64_t *rates_ns, int num_rates, uint64_t duration_ns)
 {
 	uint64_t start_ns, last_event_ns, target_ns, exp_rate_ns;
@@ -605,7 +605,7 @@ flip_and_measure(data_t *data, igt_output_t *output, enum pipe pipe,
 }
 
 static uint32_t
-flip_and_measure_cmrr(data_t *data, igt_output_t *output, enum pipe pipe,
+flip_and_measure_cmrr(data_t *data, igt_output_t *output,
 		      uint64_t duration_ns)
 {
 	uint64_t start_ns, last_event_ns, event_ns;
@@ -681,7 +681,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 	 * This is to make sure we were actually in the middle of
 	 * active flipping before doing the DPMS/suspend steps.
 	 */
-	flip_and_measure(data, output, pipe, rate, 1, 250000000ull);
+	flip_and_measure(data, output, rate, 1, 250000000ull);
 
 	if (flags & TEST_DPMS) {
 		kmstest_set_connector_dpms(output->display->drm_fd,
@@ -713,7 +713,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 	 */
 	if (flags & TEST_FLIPLINE) {
 		rate[0] = igt_kms_frame_time_from_vrefresh(range.max + 5);
-		result = flip_and_measure(data, output, pipe, rate, 1, data->duration_ns);
+		result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 		igt_assert_f(result > 75,
 			     "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
 			     (range.max + 5), rate[0], result);
@@ -721,7 +721,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 
 	if (flags & ~(TEST_NEGATIVE | TEST_MAXMIN)) {
 		rate[0] = vtest_ns.rate_ns;
-		result = flip_and_measure(data, output, pipe, rate, 1, data->duration_ns);
+		result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 		igt_assert_f(result > 75,
 			     "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
 			     ((range.max + range.min) / 2), rate[0], result);
@@ -729,7 +729,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 
 	if (flags & TEST_FLIPLINE) {
 		rate[0] = igt_kms_frame_time_from_vrefresh(range.min - 10);
-		result = flip_and_measure(data, output, pipe, rate, 1, data->duration_ns);
+		result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 		igt_assert_f(result < 50,
 			     "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR on threshold exceeded, result was %u%%\n",
 			     (range.min - 10), rate[0], result);
@@ -744,7 +744,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 			igt_kms_frame_time_from_vrefresh(range_min)
 		};
 
-		result = flip_and_measure(data, output, pipe, maxmin_rates, 2, data->duration_ns);
+		result = flip_and_measure(data, output, maxmin_rates, 2, data->duration_ns);
 		igt_assert_f(result > 75,
 			     "Refresh rates (%u/%u Hz) %"PRIu64"ns/%"PRIu64"ns: Target VRR on threshold not reached, result was %u%%\n",
 			     range.max, range_min, maxmin_rates[0], maxmin_rates[1], result);
@@ -758,7 +758,7 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 	 */
 	set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), (flags & TEST_NEGATIVE) ? true : false);
 	rate[0] = vtest_ns.rate_ns;
-	result = flip_and_measure(data, output, pipe, rate, 1, data->duration_ns);
+	result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 	igt_assert_f(result < 10,
 		     "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold exceeded, result was %u%%\n",
 		     ((range.max + range.min) / 2), rate[0], (flags & TEST_NEGATIVE)? "on" : "off", result);
@@ -790,7 +790,7 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
 	}
 
 	rate[0] = vtest_ns.max;
-	result = flip_and_measure(data, output, pipe, rate, 1, data->duration_ns);
+	result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 	igt_assert_f(result > 75,
 		     "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold not reached, result was %u%%\n",
 		     data->range.max, rate[0], vrr ? "on" : "off", result);
@@ -802,7 +802,7 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
 	igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
 
 	rate[0] = vtest_ns.min;
-	result = flip_and_measure(data, output, pipe, rate, 1, data->duration_ns);
+	result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 	igt_assert_f(result > 75,
 		     "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold not reached, result was %u%%\n",
 		     data->range.min, rate[0], vrr ? "on" : "off", result);
@@ -814,7 +814,7 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
 	igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
 
 	rate[0] = vtest_ns.rate_ns;
-	result = flip_and_measure(data, output, pipe, rate, 1, data->duration_ns);
+	result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 	igt_assert_f(vrr ? (result > 75) : (result < 10),
 		     "Refresh rate (%u Hz) %"PRIu64"ns: Target VRR %s threshold %s, result was %u%%\n",
 		     ((data->range.max + data->range.min) / 2), rate[0],
@@ -843,7 +843,7 @@ test_seamless_virtual_rr_basic(data_t *data, enum pipe pipe, igt_output_t *outpu
 	igt_output_override_mode(output, &data->switch_modes[HIGH_RR_MODE]);
 	igt_assert(igt_display_try_commit_atomic(&data->display, DRM_MODE_PAGE_FLIP_EVENT, NULL) == 0);
 
-	result = flip_and_measure(data, output, pipe, rate, 1, TEST_DURATION_NS);
+	result = flip_and_measure(data, output, rate, 1, TEST_DURATION_NS);
 	igt_assert_f(result > 75,
 		     "Refresh rate (%u Hz) %"PRIu64"ns: Target threshold not reached, result was %u%%\n",
 		     data->switch_modes[HIGH_RR_MODE].vrefresh, rate[0], result);
@@ -876,7 +876,7 @@ test_seamless_virtual_rr_basic(data_t *data, enum pipe pipe, igt_output_t *outpu
 		igt_assert(igt_display_try_commit_atomic(&data->display, 0, NULL) == 0);
 
 		rate[0] = igt_kms_frame_time_from_vrefresh(vrefresh);
-		result = flip_and_measure(data, output, pipe, rate, 1, TEST_DURATION_NS);
+		result = flip_and_measure(data, output, rate, 1, TEST_DURATION_NS);
 		igt_assert_f(result > 75,
 			     "Refresh rate (%u Hz) %"PRIu64"ns: Target threshold not reached, result was %u%%\n",
 			     vrefresh, rate[0], result);
@@ -903,7 +903,7 @@ test_lobf(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 		 output->name, kmstest_pipe_name(pipe), data->range.min, data->range.max);
 
 	igt_output_override_mode(output, &data->switch_modes[HIGH_RR_MODE]);
-	flip_and_measure(data, output, pipe, rate, 1, TEST_DURATION_NS);
+	flip_and_measure(data, output, rate, 1, TEST_DURATION_NS);
 
 	step_size = (data->range.max - data->range.min) / 5;
 
@@ -913,7 +913,7 @@ test_lobf(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 			 vrefresh, data->switch_modes[HIGH_RR_MODE].vrefresh);
 
 		rate[0] = igt_kms_frame_time_from_vrefresh(vrefresh);
-		flip_and_measure(data, output, pipe, rate, 1, NSECS_PER_SEC);
+		flip_and_measure(data, output, rate, 1, NSECS_PER_SEC);
 
 		if (igt_get_i915_edp_lobf_status(data->drm_fd, output->name)) {
 			lobf_enabled = true;
@@ -964,7 +964,7 @@ test_cmrr(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 
 	if (!igt_display_try_commit2(&data->display, COMMIT_ATOMIC)) {
 		prepare_test(data, output, pipe);
-		result = flip_and_measure_cmrr(data, output, pipe, TEST_DURATION_NS * 2);
+		result = flip_and_measure_cmrr(data, output, TEST_DURATION_NS * 2);
 		igt_assert_f(result > 75,
 			     "Refresh rate (%u Hz) %"PRIu64"ns: Target CMRR on threshold not reached, result was %u%%\n",
 			     mode.vrefresh, igt_kms_frame_time_from_vrefresh(mode.vrefresh),
-- 
2.52.0


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

* [PATCH i-g-t 03/17] tests/kms: Remove const qualifier from 'pipe' function parameters
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 01/17] tests/kms_plane_alpha_blend: " Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 02/17] tests/kms: Remove unused 'pipe' function parameters Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 04/17] tests/intel/kms_busy: Use 'enum pipe' instead of 'int' Ville Syrjala
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Some functions have a const qualifier on a 'pipe' function
paramter. This ends up complicating cocci based efforts to
convert from 'pipe' to 'crtc'. Get rid of the extra qualifiers.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_panel_fitting.c | 4 ++--
 tests/kms_scaling_modes.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c
index 296f09405e4e..723336c7ba35 100644
--- a/tests/kms_panel_fitting.c
+++ b/tests/kms_panel_fitting.c
@@ -105,7 +105,7 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe,
 
 static void
 test_panel_fitting_legacy(data_t *d, igt_display_t *display,
-			  const enum pipe pipe, igt_output_t *output)
+			  enum pipe pipe, igt_output_t *output)
 {
 	drmModeModeInfo *mode, native_mode;
 	bool is_plane_scaling_active = true;
@@ -195,7 +195,7 @@ test_panel_fitting_legacy(data_t *d, igt_display_t *display,
 }
 
 static void
-test_panel_fitting_fastset(igt_display_t *display, const enum pipe pipe, igt_output_t *output)
+test_panel_fitting_fastset(igt_display_t *display, enum pipe pipe, igt_output_t *output)
 {
 	igt_plane_t *primary, *sprite;
 	drmModeModeInfo mode;
diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c
index 7f9a031ddcc4..5b0d6485ebb3 100644
--- a/tests/kms_scaling_modes.c
+++ b/tests/kms_scaling_modes.c
@@ -54,7 +54,7 @@ typedef struct data {
 	int drm_fd;
 } data_t;
 
-static void test_scaling_mode_on_output(igt_display_t *display, const enum pipe pipe,
+static void test_scaling_mode_on_output(igt_display_t *display, enum pipe pipe,
 					igt_output_t *output, uint32_t flags)
 {
 	igt_plane_t *primary, *sprite;
-- 
2.52.0


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

* [PATCH i-g-t 04/17] tests/intel/kms_busy: Use 'enum pipe' instead of 'int'
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (2 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 03/17] tests/kms: Remove const qualifier from " Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 05/17] tests/kms_atomic_interruptible: s/crtc/drm_crtc/ Ville Syrjala
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Change the type of the 'pipe' function paramteres from
'int' to the more approproate 'enum pipe'. This will aid
in cocci based 'pipe' to 'crtc' conversion.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/intel/kms_busy.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c
index 2c8d365080e1..dd65585d41a2 100644
--- a/tests/intel/kms_busy.c
+++ b/tests/intel/kms_busy.c
@@ -73,7 +73,7 @@ IGT_TEST_DESCRIPTION("Basic check of KMS ABI with busy framebuffers.");
 static bool all_pipes = false;
 
 static void
-set_fb_on_crtc(igt_display_t *dpy, int pipe,
+set_fb_on_crtc(igt_display_t *dpy, enum pipe pipe,
 	       igt_output_t *output, struct igt_fb *fb)
 {
 	drmModeModeInfoPtr mode;
@@ -106,7 +106,7 @@ static void do_cleanup_display(igt_display_t *dpy)
 	igt_display_commit2(dpy, dpy->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 }
 
-static void flip_to_fb(igt_display_t *dpy, int pipe,
+static void flip_to_fb(igt_display_t *dpy, enum pipe pipe,
 		       igt_output_t *output,
 		       struct igt_fb *fb, int timeout,
 		       const char *name, bool modeset)
@@ -172,7 +172,7 @@ static void flip_to_fb(igt_display_t *dpy, int pipe,
 	put_ahnd(ahnd);
 }
 
-static void test_flip(igt_display_t *dpy, int pipe,
+static void test_flip(igt_display_t *dpy, enum pipe pipe,
 		      igt_output_t *output, bool modeset)
 {
 	struct igt_fb fb[2];
-- 
2.52.0


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

* [PATCH i-g-t 05/17] tests/kms_atomic_interruptible: s/crtc/drm_crtc/
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (3 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 04/17] tests/intel/kms_busy: Use 'enum pipe' instead of 'int' Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 06/17] tests/intel/kms_psr2_su: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Change the name of the 'struct drm_mode_crtc' typed variable
from 'crtc' to 'drm_crtc'. This leaves the 'crtc' name available
for an upcoming 'igt_crtc_t' typed variable.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_atomic_interruptible.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/kms_atomic_interruptible.c b/tests/kms_atomic_interruptible.c
index 9ff43ef4a868..4b29a196d807 100644
--- a/tests/kms_atomic_interruptible.c
+++ b/tests/kms_atomic_interruptible.c
@@ -177,7 +177,7 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 	igt_while_interruptible(true) {
 		switch (test_type) {
 			case test_legacy_modeset: {
-				struct drm_mode_crtc crtc = {
+				struct drm_mode_crtc drm_crtc = {
 					.set_connectors_ptr = (uint64_t)(uintptr_t)&output->id,
 					.count_connectors = 1,
 					.crtc_id = primary->crtc->crtc_id,
@@ -186,7 +186,7 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 					.mode = *(struct drm_mode_modeinfo*)mode,
 				};
 
-				do_ioctl(display->drm_fd, DRM_IOCTL_MODE_SETCRTC, &crtc);
+				do_ioctl(display->drm_fd, DRM_IOCTL_MODE_SETCRTC, &drm_crtc);
 				break;
 			}
 			case test_atomic_modeset: {
-- 
2.52.0


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

* [PATCH i-g-t 06/17] tests/intel/kms_psr2_su: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (4 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 05/17] tests/kms_atomic_interruptible: s/crtc/drm_crtc/ Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 07/17] tests/intel/kms_dsc*: " Ville Syrjala
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/intel/kms_psr2_su.

The pipes[] array (afterwards crtcs[]) complicates this
one sufficiently that the conversion was done by hand.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/intel/kms_psr2_su.c | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/tests/intel/kms_psr2_su.c b/tests/intel/kms_psr2_su.c
index f7652f165a2d..95bd4f605ff8 100644
--- a/tests/intel/kms_psr2_su.c
+++ b/tests/intel/kms_psr2_su.c
@@ -292,13 +292,12 @@ static void cleanup(data_t *data, igt_output_t *output)
 	igt_remove_fb(data->drm_fd, &data->fb[0]);
 }
 
-static int check_psr2_support(data_t *data, enum pipe pipe)
+static int check_psr2_support(data_t *data, igt_crtc_t *crtc)
 {
 	int status;
 
 	igt_output_t *output;
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 
 	igt_display_reset(display);
 	output = data->output;
@@ -317,8 +316,8 @@ int igt_main()
 	igt_crtc_t *crtc;
 	int r, i;
 	igt_output_t *outputs[IGT_MAX_PIPES * IGT_MAX_PIPES];
-	int pipes[IGT_MAX_PIPES * IGT_MAX_PIPES];
-	int n_pipes = 0;
+	igt_crtc_t *crtcs[IGT_MAX_PIPES * IGT_MAX_PIPES];
+	int n_crtcs = 0;
 
 	igt_fixture() {
 		struct itimerspec interval;
@@ -357,10 +356,10 @@ int igt_main()
 
 		for_each_crtc_with_valid_output(&data.display, crtc,
 						data.output) {
-			if (check_psr2_support(&data, crtc->pipe)) {
-				pipes[n_pipes] = crtc->pipe;
-				outputs[n_pipes] = data.output;
-				n_pipes++;
+			if (check_psr2_support(&data, crtc)) {
+				crtcs[n_crtcs] = crtc;
+				outputs[n_crtcs] = data.output;
+				n_crtcs++;
 			}
 		}
 	}
@@ -372,11 +371,10 @@ int igt_main()
 			data.format = *format++;
 			igt_describe("Test that selective update works when screen changes");
 			igt_subtest_with_dynamic_f("%s-%s", op_str(data.op), igt_format_str(data.format)) {
-				for (i = 0; i < n_pipes; i++) {
-					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipes[i]),
-							igt_output_name(outputs[i])) {
-						igt_output_set_crtc(outputs[i],
-								    igt_crtc_for_pipe(outputs[i]->display, pipes[i]));
+				for (i = 0; i < n_crtcs; i++) {
+					igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtcs[i]),
+						      igt_output_name(outputs[i])) {
+						igt_output_set_crtc(outputs[i], crtcs[i]);
 						if (data.op == FRONTBUFFER &&
 						    intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 12) {
 							/*
-- 
2.52.0


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

* [PATCH i-g-t 07/17] tests/intel/kms_dsc*: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (5 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 06/17] tests/intel/kms_psr2_su: Use igt_crtc_t instead of enum pipe Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 08/17] tests/kms_cursor_legacy: " Ville Syrjala
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t tests/intel/kms_dsc*.

The data.pipe thing complicates this one, so it was mostly done
by hand. Mainly I wanted to get the tests/intel/kms_dsc_helper.c
part out of the way.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/intel/kms_dsc.c        | 15 +++++++--------
 tests/intel/kms_dsc_helper.c |  8 +++++---
 tests/intel/kms_dsc_helper.h |  3 ++-
 3 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/tests/intel/kms_dsc.c b/tests/intel/kms_dsc.c
index ab9793f5168a..f832500b7eeb 100644
--- a/tests/intel/kms_dsc.c
+++ b/tests/intel/kms_dsc.c
@@ -79,7 +79,7 @@ typedef struct {
 	igt_output_t *output;
 	int input_bpc;
 	int disp_ver;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	bool limited;
 } data_t;
 
@@ -164,8 +164,7 @@ static void update_display(data_t *data, uint32_t test_type)
 		force_dsc_fractional_bpp_enable(data->drm_fd, data->output);
 	}
 
-	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+	igt_output_set_crtc(output, data->crtc);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
 	igt_skip_on(!igt_plane_has_format_mod(primary, data->plane_format,
@@ -227,7 +226,7 @@ static void update_display(data_t *data, uint32_t test_type)
 	restore_force_dsc_fractional_bpp_en();
 
 	if (test_type & TEST_DSC_BPC) {
-		current_bpc = igt_get_pipe_current_bpc(data->drm_fd, data->pipe);
+		current_bpc = igt_get_pipe_current_bpc(data->drm_fd, data->crtc->pipe);
 		igt_skip_on_f(data->input_bpc != current_bpc,
 			      "Input bpc = %d is not equal to current bpc = %d\n",
 			      data->input_bpc, current_bpc);
@@ -236,7 +235,7 @@ static void update_display(data_t *data, uint32_t test_type)
 	igt_assert_f(enabled,
 		     "Default DSC enable failed on connector: %s pipe: %s\n",
 		     output->name,
-		     kmstest_pipe_name(data->pipe));
+		     igt_crtc_name(data->crtc));
 reset:
 	test_reset(data);
 
@@ -265,10 +264,10 @@ static void test_dsc(data_t *data, uint32_t test_type, int bpc,
 		data->plane_format = plane_format;
 		data->input_bpc = bpc;
 		data->output = output;
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 
 		if (!is_dsc_supported_by_sink(data->drm_fd, data->output) ||
-		    !check_gen11_dp_constraint(data->drm_fd, data->output, data->pipe))
+		    !check_gen11_dp_constraint(data->drm_fd, data->output, data->crtc))
 			continue;
 
 		if (igt_get_output_max_bpc(data->drm_fd, output->name) < MIN_DSC_BPC) {
@@ -293,7 +292,7 @@ static void test_dsc(data_t *data, uint32_t test_type, int bpc,
 		if (test_type & TEST_DSC_BPC)
 			snprintf(&name[2][0], LEN, "-%dbpc", data->input_bpc);
 
-		igt_dynamic_f("pipe-%s-%s%s%s%s",  kmstest_pipe_name(data->pipe), data->output->name,
+		igt_dynamic_f("pipe-%s-%s%s%s%s",  igt_crtc_name(data->crtc), data->output->name,
 			      &name[0][0], &name[1][0], &name[2][0])
 			update_display(data, test_type);
 
diff --git a/tests/intel/kms_dsc_helper.c b/tests/intel/kms_dsc_helper.c
index cea4304e48d3..77165b41f4bc 100644
--- a/tests/intel/kms_dsc_helper.c
+++ b/tests/intel/kms_dsc_helper.c
@@ -84,14 +84,16 @@ bool is_dsc_supported_by_sink(int drmfd, igt_output_t *output)
 	return true;
 }
 
-bool check_gen11_dp_constraint(int drmfd, igt_output_t *output, enum pipe pipe)
+bool check_gen11_dp_constraint(int drmfd, igt_output_t *output,
+			       igt_crtc_t *crtc)
 {
 	uint32_t devid = intel_get_drm_devid(drmfd);
 	drmModeConnector *connector = output->config.connector;
 
 	if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) &&
-	    (pipe == PIPE_A) && IS_GEN11(devid)) {
-		igt_info("DSC not supported on pipe %s on %s in gen11 platforms\n", kmstest_pipe_name(pipe), output->name);
+	    (crtc->pipe == PIPE_A) && IS_GEN11(devid)) {
+		igt_info("DSC not supported on pipe %s on %s in gen11 platforms\n",
+			 kmstest_pipe_name(crtc->pipe), output->name);
 		return false;
 	}
 
diff --git a/tests/intel/kms_dsc_helper.h b/tests/intel/kms_dsc_helper.h
index 4dbd88fe7b95..ee419c849836 100644
--- a/tests/intel/kms_dsc_helper.h
+++ b/tests/intel/kms_dsc_helper.h
@@ -28,7 +28,8 @@ void restore_force_dsc_en(void);
 void kms_dsc_exit_handler(int sig);
 bool is_dsc_supported_by_sink(int drmfd, igt_output_t *output);
 bool is_dsc_supported_by_source(int drmfd);
-bool check_gen11_dp_constraint(int drmfd, igt_output_t *output, enum pipe pipe);
+bool check_gen11_dp_constraint(int drmfd, igt_output_t *output,
+			       igt_crtc_t *crtc);
 bool check_gen11_bpc_constraint(int drmfd, int input_bpc);
 void force_dsc_output_format(int drmfd, igt_output_t *output,
 			     enum dsc_output_format output_format);
-- 
2.52.0


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

* [PATCH i-g-t 08/17] tests/kms_cursor_legacy: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (6 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 07/17] tests/intel/kms_dsc*: " Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 09/17] tests/kms_color*: " Ville Syrjala
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_cursor_legacy.

This one was messy enough that I ended up doing
most of it by hand. 'git show --word-diff' might
be the best way to double check the result.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_cursor_legacy.c | 343 +++++++++++++++++++-------------------
 1 file changed, 170 insertions(+), 173 deletions(-)

diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index 459f3c696ac8..248fc3b06cae 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -261,13 +261,12 @@ static void override_output_modes(igt_display_t *display,
 }
 
 static void stress(igt_display_t *display,
-		   enum pipe pipe, int num_children, unsigned mode,
+		   igt_crtc_t *crtc, int num_children, unsigned mode,
 		   int timeout)
 {
 	struct drm_mode_cursor arg;
 	uint64_t *results;
 	bool torture;
-	igt_crtc_t *crtc;
 	unsigned crtc_id[IGT_MAX_PIPES] = {0}, num_crtcs;
 
 	torture = false;
@@ -286,7 +285,7 @@ static void stress(igt_display_t *display,
 	arg.height = 64;
 	arg.handle = kmstest_dumb_create(display->drm_fd, 64, 64, 32, NULL, NULL);
 
-	if (pipe < 0) {
+	if (!crtc) {
 		num_crtcs = igt_display_n_crtcs(display);
 		for_each_crtc(display, crtc) {
 			arg.crtc_id = crtc_id[crtc->pipe] = crtc->crtc_id;
@@ -294,11 +293,8 @@ static void stress(igt_display_t *display,
 		}
 	} else {
 		num_crtcs = 1;
-		if(igt_crtc_for_pipe(display, pipe)->valid) {
-			arg.crtc_id = crtc_id[0] = igt_crtc_for_pipe(display,
-								     pipe)->crtc_id;
-			do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg);
-		}
+		arg.crtc_id = crtc_id[0] = crtc->crtc_id;
+		do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg);
 	}
 
 	arg.flags = mode;
@@ -366,13 +362,13 @@ static void stress(igt_display_t *display,
 	munmap(results, PAGE_SIZE);
 }
 
-static void set_fb_on_crtc(igt_display_t *display, enum pipe pipe,
+static void set_fb_on_crtc(igt_display_t *display, igt_crtc_t *crtc,
 			   igt_output_t *output, struct igt_fb *fb_info)
 {
 	drmModeModeInfoPtr mode;
 	igt_plane_t *primary;
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	mode = igt_output_get_mode(output);
 
 	igt_create_pattern_fb(display->drm_fd,
@@ -384,11 +380,11 @@ static void set_fb_on_crtc(igt_display_t *display, enum pipe pipe,
 }
 
 static	igt_plane_t
-*set_cursor_on_pipe(igt_display_t *display, enum pipe pipe, struct igt_fb *fb)
+*set_cursor_on_pipe(igt_display_t *display, igt_crtc_t *crtc, struct igt_fb *fb)
 {
 	igt_plane_t *plane, *cursor = NULL;
 
-	for_each_plane_on_pipe(display, pipe, plane) {
+	for_each_plane_on_pipe(display, crtc->pipe, plane) {
 		if (plane->type != DRM_PLANE_TYPE_CURSOR)
 			continue;
 
@@ -408,10 +404,10 @@ static void set_cursor_hotspot(igt_plane_t *cursor, int  hot_x, int hot_y)
 	igt_plane_set_prop_value(cursor, IGT_PLANE_HOTSPOT_Y, hot_y);
 }
 
-static void populate_cursor_args(igt_display_t *display, enum pipe pipe,
+static void populate_cursor_args(igt_display_t *display, igt_crtc_t *crtc,
 				 struct drm_mode_cursor *arg, struct igt_fb *fb)
 {
-	arg->crtc_id = igt_crtc_for_pipe(display, pipe)->crtc_id;
+	arg->crtc_id = crtc->crtc_id;
 	arg->flags = DRM_MODE_CURSOR_MOVE;
 	arg->x = 128;
 	arg->y = 128;
@@ -421,7 +417,7 @@ static void populate_cursor_args(igt_display_t *display, enum pipe pipe,
 	arg[1] = *arg;
 }
 
-static enum pipe
+static igt_crtc_t *
 find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 {
 	igt_crtc_t *crtc;
@@ -465,12 +461,11 @@ find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 	else
 		igt_require_f(found, "No valid outputs found\n");
 
-	return crtc->pipe;
+	return crtc;
 }
 
-static void flip_nonblocking(igt_display_t *display, enum pipe pipe_id, bool atomic, struct igt_fb *fb, void *data)
+static void flip_nonblocking(igt_display_t *display, igt_crtc_t *crtc, bool atomic, struct igt_fb *fb, void *data)
 {
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe_id);
 	igt_plane_t *primary = igt_crtc_get_plane_type(crtc,
 						       DRM_PLANE_TYPE_PRIMARY);
 	int ret;
@@ -532,11 +527,10 @@ static bool mode_requires_extra_vblank(enum flip_test mode)
 	return false;
 }
 
-static void transition_nonblocking(igt_display_t *display, enum pipe pipe_id,
+static void transition_nonblocking(igt_display_t *display, igt_crtc_t *crtc,
 				   struct igt_fb *prim_fb, struct igt_fb *argb_fb,
 				   bool hide_sprite)
 {
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe_id);
 	igt_plane_t *primary = igt_crtc_get_plane_type(crtc,
 						       DRM_PLANE_TYPE_PRIMARY);
 	igt_plane_t *sprite = igt_crtc_get_plane_type(crtc,
@@ -565,7 +559,7 @@ static void transition_nonblocking(igt_display_t *display, enum pipe pipe_id,
 
 static void prepare_flip_test(igt_display_t *display,
 			      enum flip_test mode,
-			      enum pipe flip_pipe,
+			      igt_crtc_t *crtc,
 			      struct drm_mode_cursor *arg,
 			      const struct igt_fb *prim_fb,
 			      struct igt_fb *argb_fb,
@@ -605,8 +599,8 @@ static void prepare_flip_test(igt_display_t *display,
 
 	if (mode == flip_test_atomic_transitions ||
 	    mode == flip_test_atomic_transitions_varying_size) {
-		igt_require(igt_crtc_for_pipe(display, flip_pipe)->n_planes > 1 &&
-		            igt_crtc_for_pipe(display, flip_pipe)->planes[1].type != DRM_PLANE_TYPE_CURSOR);
+		igt_require(crtc->n_planes > 1 &&
+		            crtc->planes[1].type != DRM_PLANE_TYPE_CURSOR);
 
 		igt_create_color_pattern_fb(display->drm_fd, prim_fb->width, prim_fb->height,
 					    DRM_FORMAT_ARGB8888, DRM_FORMAT_MOD_LINEAR, .1, .1, .1, argb_fb);
@@ -620,37 +614,38 @@ static void flip(igt_display_t *display,
 	struct drm_mode_cursor arg[2];
 	uint64_t *results;
 	struct igt_fb fb_info, fb_info2, argb_fb, cursor_fb, cursor_fb2;
+	igt_crtc_t *cursor_crtc, *flip_crtc;
 	igt_output_t *output, *output2;
 	igt_plane_t *cursor;
 
 	results = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(results != MAP_FAILED);
 
-	flip_pipe = find_connected_pipe(display, !!flip_pipe, &output);
-	cursor_pipe = find_connected_pipe(display, !!cursor_pipe, &output2);
+	flip_crtc = find_connected_pipe(display, !!flip_pipe, &output);
+	cursor_crtc = find_connected_pipe(display, !!cursor_pipe, &output2);
 	igt_skip_on(!output || !output2);
 
 	igt_info("Using pipe %s for page flip, pipe %s for cursor\n",
-		  kmstest_pipe_name(flip_pipe), kmstest_pipe_name(cursor_pipe));
+		 igt_crtc_name(flip_crtc), igt_crtc_name(cursor_crtc));
 
 	if (mode >= flip_test_atomic)
 		igt_require(display->is_atomic);
 
 	if (mode == flip_test_atomic_transitions ||
 		mode == flip_test_atomic_transitions_varying_size) {
-		igt_require(igt_crtc_get_plane_type(igt_crtc_for_pipe(display, flip_pipe),
+		igt_require(igt_crtc_get_plane_type(flip_crtc,
 						    DRM_PLANE_TYPE_OVERLAY));
 	}
 
-	set_fb_on_crtc(display, flip_pipe, output, &fb_info);
-	if (flip_pipe != cursor_pipe) {
-		set_fb_on_crtc(display, cursor_pipe, output2, &fb_info2);
+	set_fb_on_crtc(display, flip_crtc, output, &fb_info);
+	if (flip_crtc != cursor_crtc) {
+		set_fb_on_crtc(display, cursor_crtc, output2, &fb_info2);
 
 		if (try_commit(display)) {
 			override_output_modes(display, output, output2);
 
-			set_fb_on_crtc(display, flip_pipe, output, &fb_info);
-			set_fb_on_crtc(display, cursor_pipe, output2, &fb_info2);
+			set_fb_on_crtc(display, flip_crtc, output, &fb_info);
+			set_fb_on_crtc(display, cursor_crtc, output2, &fb_info2);
 		}
 	}
 
@@ -659,10 +654,10 @@ static void flip(igt_display_t *display,
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	cursor = set_cursor_on_pipe(display, cursor_pipe, &cursor_fb);
-	populate_cursor_args(display, cursor_pipe, arg, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, cursor_crtc, &cursor_fb);
+	populate_cursor_args(display, cursor_crtc, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, flip_pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, flip_crtc, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
@@ -685,11 +680,11 @@ static void flip(igt_display_t *display,
 
 			switch (mode) {
 			default:
-				flip_nonblocking(display, flip_pipe, mode >= flip_test_atomic, &fb_info, NULL);
+				flip_nonblocking(display, flip_crtc, mode >= flip_test_atomic, &fb_info, NULL);
 				break;
 			case flip_test_atomic_transitions:
 			case flip_test_atomic_transitions_varying_size:
-				transition_nonblocking(display, flip_pipe, &fb_info, &argb_fb, count & 1);
+				transition_nonblocking(display, flip_crtc, &fb_info, &argb_fb, count & 1);
 				break;
 			}
 
@@ -711,7 +706,7 @@ static void flip(igt_display_t *display,
 	igt_plane_set_fb(igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY),
 			 NULL);
 	igt_output_set_crtc(output, NULL);
-	if (flip_pipe != cursor_pipe) {
+	if (flip_crtc != cursor_crtc) {
 		igt_plane_set_fb(igt_output_get_plane_type(output2, DRM_PLANE_TYPE_PRIMARY),
 			 NULL);
 		igt_output_set_crtc(output2, NULL);
@@ -719,7 +714,7 @@ static void flip(igt_display_t *display,
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
 	igt_remove_fb(display->drm_fd, &fb_info);
-	if (flip_pipe != cursor_pipe)
+	if (flip_crtc != cursor_crtc)
 		igt_remove_fb(display->drm_fd, &fb_info2);
 	igt_remove_fb(display->drm_fd, &cursor_fb);
 	if (argb_fb.gem_handle)
@@ -744,7 +739,7 @@ static void basic_flip_cursor(igt_display_t *display,
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info, cursor_fb, cursor_fb2, argb_fb;
 	unsigned vblank_start;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	uint64_t ahnd = 0;
 	igt_spin_t *spin;
 	int i, miss1 = 0, miss2 = 0, delta;
@@ -763,28 +758,28 @@ static void basic_flip_cursor(igt_display_t *display,
 	if (mode >= flip_test_atomic)
 		igt_require(display->is_atomic);
 
-	pipe = find_connected_pipe(display, false, &output);
+	crtc = find_connected_pipe(display, false, &output);
 	igt_require(output);
 
 	igt_info("Using pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
-	set_fb_on_crtc(display, pipe, output, &fb_info);
+	set_fb_on_crtc(display, crtc, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
-	populate_cursor_args(display, pipe, arg, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
+	populate_cursor_args(display, crtc, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, crtc, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
 	/* Quick sanity check that we can update a cursor in a single vblank */
-	vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
-	igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+	vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
+	igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 	do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[0]);
-	igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+	igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 
 	for (i = 0; i < 25; i++) {
 		bool miss;
@@ -799,21 +794,21 @@ static void basic_flip_cursor(igt_display_t *display,
 					    .dependency = fb_info.gem_handle);
 
 		/* Start with a synchronous query to align with the vblank */
-		vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
+		vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
 
 		switch (order) {
 		case FLIP_BEFORE_CURSOR:
 			switch (mode) {
 			default:
-				flip_nonblocking(display, pipe, mode >= flip_test_atomic, &fb_info, NULL);
+				flip_nonblocking(display, crtc, mode >= flip_test_atomic, &fb_info, NULL);
 				break;
 			case flip_test_atomic_transitions:
 			case flip_test_atomic_transitions_varying_size:
-				transition_nonblocking(display, pipe, &fb_info, &argb_fb, 0);
+				transition_nonblocking(display, crtc, &fb_info, &argb_fb, 0);
 				break;
 			}
 
-			delta = kmstest_get_vblank(display->drm_fd, pipe, 0) - vblank_start;
+			delta = kmstest_get_vblank(display->drm_fd, crtc->pipe, 0) - vblank_start;
 			miss = delta != 0;
 
 			do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[0]);
@@ -822,21 +817,21 @@ static void basic_flip_cursor(igt_display_t *display,
 		case FLIP_AFTER_CURSOR:
 			do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[0]);
 
-			delta = kmstest_get_vblank(display->drm_fd, pipe, 0) - vblank_start;
+			delta = kmstest_get_vblank(display->drm_fd, crtc->pipe, 0) - vblank_start;
 			miss = delta != 0;
 
 			switch (mode) {
 			default:
-				flip_nonblocking(display, pipe, mode >= flip_test_atomic, &fb_info, NULL);
+				flip_nonblocking(display, crtc, mode >= flip_test_atomic, &fb_info, NULL);
 				break;
 			case flip_test_atomic_transitions:
 			case flip_test_atomic_transitions_varying_size:
-				transition_nonblocking(display, pipe, &fb_info, &argb_fb, 0);
+				transition_nonblocking(display, crtc, &fb_info, &argb_fb, 0);
 				break;
 			}
 		}
 
-		delta = kmstest_get_vblank(display->drm_fd, pipe, 0) - vblank_start;
+		delta = kmstest_get_vblank(display->drm_fd, crtc->pipe, 0) - vblank_start;
 
 		if (spin) {
 			struct pollfd pfd = { display->drm_fd, POLLIN };
@@ -860,7 +855,7 @@ static void basic_flip_cursor(igt_display_t *display,
 		if (miss1)
 			continue;
 
-		delta = kmstest_get_vblank(display->drm_fd, pipe, 0) - vblank_start;
+		delta = kmstest_get_vblank(display->drm_fd, crtc->pipe, 0) - vblank_start;
 
 		if (!mode_requires_extra_vblank(mode))
 			miss2 += delta != 1;
@@ -890,19 +885,19 @@ static void basic_flip_cursor(igt_display_t *display,
 }
 
 static int
-get_cursor_updates_per_vblank(igt_display_t *display, enum pipe pipe,
+get_cursor_updates_per_vblank(igt_display_t *display, igt_crtc_t *crtc,
 			      struct drm_mode_cursor *arg)
 {
 	int target;
 
 	for (target = 65536; target; target /= 2) {
-		unsigned vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
+		unsigned vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
 
-		igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+		igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 
 		for (int n = 0; n < target; n++)
 			do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, arg);
-		if (kmstest_get_vblank(display->drm_fd, pipe, 0) == vblank_start)
+		if (kmstest_get_vblank(display->drm_fd, crtc->pipe, 0) == vblank_start)
 			break;
 	}
 
@@ -925,7 +920,7 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 	struct igt_fb fb_info, cursor_fb, cursor_fb2, argb_fb;
 	unsigned vblank_start;
 	int target, cpu;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	volatile unsigned long *shared;
 	cpu_set_t mask, oldmask;
 	igt_output_t *output;
@@ -934,33 +929,33 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 	if (mode >= flip_test_atomic)
 		igt_require(display->is_atomic);
 
-	pipe = find_connected_pipe(display, false, &output);
+	crtc = find_connected_pipe(display, false, &output);
 	igt_require(output);
 
 	igt_info("Using pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
-	set_fb_on_crtc(display, pipe, output, &fb_info);
+	set_fb_on_crtc(display, crtc, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
-	populate_cursor_args(display, pipe, arg, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
+	populate_cursor_args(display, crtc, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, crtc, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
 	if (nloops)
-		target = get_cursor_updates_per_vblank(display, pipe, &arg[0]);
+		target = get_cursor_updates_per_vblank(display, crtc, &arg[0]);
 	else
 		target = 1;
 
-	vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
-	igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+	vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
+	igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 	for (int n = 0; n < target; n++)
 		do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[0]);
-	igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+	igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 
 	/*
 	 * There are variations caused by using cpu frequency changing. To
@@ -998,37 +993,37 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 		do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[nloops & 1]);
 
 		/* Start with a synchronous query to align with the vblank */
-		vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
+		vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
 		switch (mode) {
 		default:
-			flip_nonblocking(display, pipe, mode >= flip_test_atomic, &fb_info, NULL);
+			flip_nonblocking(display, crtc, mode >= flip_test_atomic, &fb_info, NULL);
 			break;
 		case flip_test_atomic_transitions:
 		case flip_test_atomic_transitions_varying_size:
-			transition_nonblocking(display, pipe, &fb_info, &argb_fb, (nloops & 2) /2);
+			transition_nonblocking(display, crtc, &fb_info, &argb_fb, (nloops & 2) /2);
 			break;
 		}
 
 		/* The nonblocking flip should not have delayed us */
-		igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+		igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 		for (int n = 0; n < target; n++)
 			do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[nloops & 1]);
 
 		/* Nor should it have delayed the following cursor update */
 		if (!cursor_slowpath(display, mode))
-			igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+			igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 		else if (mode_requires_extra_vblank(mode))
-			igt_assert_lte(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 2);
+			igt_assert_lte(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start + 2);
 		else
-			igt_assert_lte(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 1);
+			igt_assert_lte(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start + 1);
 
 		igt_set_timeout(1, "Stuck page flip");
 		igt_ignore_warn(read(display->drm_fd, &vbl, sizeof(vbl)));
 
 		if (!mode_requires_extra_vblank(mode))
-			igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 1);
+			igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start + 1);
 		else
-			igt_assert_lte(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 2);
+			igt_assert_lte(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start + 2);
 
 		igt_reset_timeout();
 	} while (nloops--);
@@ -1060,23 +1055,23 @@ static void nonblocking_modeset_vs_cursor(igt_display_t *display, int loops)
 {
 	struct igt_fb fb_info, cursor_fb;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	struct drm_mode_cursor arg[2];
 	igt_plane_t *primary, *cursor = NULL;
 
 	igt_require(display->is_atomic);
-	pipe = find_connected_pipe(display, false, &output);
+	crtc = find_connected_pipe(display, false, &output);
 	igt_require(output);
 
 	igt_info("Using pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
-	set_fb_on_crtc(display, pipe, output, &fb_info);
+	set_fb_on_crtc(display, crtc, output, &fb_info);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
-	populate_cursor_args(display, pipe, arg, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
+	populate_cursor_args(display, crtc, arg, &cursor_fb);
 	arg[0].flags |= DRM_MODE_CURSOR_BO;
 
 	/*
@@ -1101,7 +1096,7 @@ static void nonblocking_modeset_vs_cursor(igt_display_t *display, int loops)
 		 */
 
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, pipe));
+				    crtc);
 		igt_plane_set_fb(cursor, NULL);
 		igt_display_commit_atomic(display, flags, NULL);
 
@@ -1160,7 +1155,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 {
 	struct drm_mode_cursor arg1[2], arg2[2];
 	struct igt_fb fb_info, fb2_info, cursor_fb;
-	enum pipe pipe, pipe2;
+	igt_crtc_t *crtc, *crtc2;
 	igt_output_t *output, *output2;
 	bool enabled = false;
 	volatile unsigned long *shared;
@@ -1182,33 +1177,33 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 	shared = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(shared != MAP_FAILED);
 
-	pipe = find_connected_pipe(display, false, &output);
-	pipe2 = find_connected_pipe(display, true, &output2);
+	crtc = find_connected_pipe(display, false, &output);
+	crtc2 = find_connected_pipe(display, true, &output2);
 	igt_skip_on(!output || !output2);
 
 	igt_info("Using pipe %s & %s and pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output),
-		 kmstest_pipe_name(pipe2), igt_output_name(output2));
+		 igt_crtc_name(crtc), igt_output_name(output),
+		 igt_crtc_name(crtc2), igt_output_name(output2));
 
-	set_fb_on_crtc(display, pipe, output, &fb_info);
-	set_fb_on_crtc(display, pipe2, output2, &fb2_info);
+	set_fb_on_crtc(display, crtc, output, &fb_info);
+	set_fb_on_crtc(display, crtc2, output2, &fb2_info);
 
 	if (try_commit(display)) {
 		override_output_modes(display, output, output2);
 
-		set_fb_on_crtc(display, pipe, output, &fb_info);
-		set_fb_on_crtc(display, pipe2, output2, &fb2_info);
+		set_fb_on_crtc(display, crtc, output, &fb_info);
+		set_fb_on_crtc(display, crtc2, output2, &fb2_info);
 	}
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
-	populate_cursor_args(display, pipe, arg1, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
+	populate_cursor_args(display, crtc, arg1, &cursor_fb);
 
 	arg1[1].x = arg1[1].y = 192;
 
-	cursor2 = set_cursor_on_pipe(display, pipe2, &cursor_fb);
-	populate_cursor_args(display, pipe2, arg2, &cursor_fb);
+	cursor2 = set_cursor_on_pipe(display, crtc2, &cursor_fb);
+	populate_cursor_args(display, crtc2, arg2, &cursor_fb);
 
 	arg2[1].x = arg2[1].y = 192;
 
@@ -1228,7 +1223,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 		flags = DRM_MODE_ATOMIC_ALLOW_MODESET |
 			DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_PAGE_FLIP_EVENT;
 
-		/* Disable pipe2 */
+		/* Disable crtc2 */
 		igt_output_set_crtc(output2, NULL);
 		igt_display_commit_atomic(display, flags, NULL);
 		enabled = false;
@@ -1237,7 +1232,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 		 * Try a page flip on crtc 1, if we succeed pump page flips and
 		 * modesets interleaved, else do a single atomic commit with both.
 		 */
-		vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
+		vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
 		igt_plane_set_fb(plane, &fb_info);
 		ret = igt_display_try_commit_atomic(display, flags, (void*)(ptrdiff_t)vblank_start);
 		igt_assert(!ret || ret == -EBUSY);
@@ -1260,7 +1255,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 				/* Commit page flip and modeset simultaneously. */
 				igt_plane_set_fb(plane, &fb_info);
 				igt_output_set_crtc(output2,
-						    igt_crtc_for_pipe(display, enabled ? PIPE_NONE : pipe2));
+						    enabled ? NULL : crtc2);
 				enabled = !enabled;
 
 				wait_for_modeset(display, flags, 5, "Scheduling modeset");
@@ -1269,11 +1264,11 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 			goto done;
 		}
 	} else {
-		vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
-		flip_nonblocking(display, pipe, atomic, &fb_info, (void*)(ptrdiff_t)vblank_start);
+		vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
+		flip_nonblocking(display, crtc, atomic, &fb_info, (void*)(ptrdiff_t)vblank_start);
 
-		vblank_start = kmstest_get_vblank(display->drm_fd, pipe2, DRM_VBLANK_NEXTONMISS);
-		flip_nonblocking(display, pipe2, atomic, &fb2_info, (void*)(ptrdiff_t)vblank_start);
+		vblank_start = kmstest_get_vblank(display->drm_fd, crtc2->pipe, DRM_VBLANK_NEXTONMISS);
+		flip_nonblocking(display, crtc2, atomic, &fb2_info, (void*)(ptrdiff_t)vblank_start);
 	}
 
 	while (nloops) {
@@ -1296,20 +1291,20 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 			continue;
 		}
 
-		if (vbl.crtc_id == igt_crtc_for_pipe(display, pipe)->crtc_id) {
-			vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
-			flip_nonblocking(display, pipe, atomic, &fb_info, (void*)(ptrdiff_t)vblank_start);
+		if (vbl.crtc_id == crtc->crtc_id) {
+			vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
+			flip_nonblocking(display, crtc, atomic, &fb_info, (void*)(ptrdiff_t)vblank_start);
 		} else {
-			igt_assert(vbl.crtc_id == igt_crtc_for_pipe(display, pipe2)->crtc_id);
+			igt_assert(vbl.crtc_id == crtc2->crtc_id);
 
 			nloops--;
 
 			if (!modeset) {
-				vblank_start = kmstest_get_vblank(display->drm_fd, pipe2, DRM_VBLANK_NEXTONMISS);
-				flip_nonblocking(display, pipe2, atomic, &fb2_info, (void*)(ptrdiff_t)vblank_start);
+				vblank_start = kmstest_get_vblank(display->drm_fd, crtc2->pipe, DRM_VBLANK_NEXTONMISS);
+				flip_nonblocking(display, crtc2, atomic, &fb2_info, (void*)(ptrdiff_t)vblank_start);
 			} else {
 				igt_output_set_crtc(output2,
-						    igt_crtc_for_pipe(display, enabled ? PIPE_NONE : pipe2));
+						    enabled ? NULL : crtc2);
 
 				igt_set_timeout(1, "Scheduling modeset\n");
 				do {
@@ -1353,7 +1348,7 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 	unsigned vblank_start, vblank_last;
 	volatile unsigned long *shared;
 	long target;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_output_t *output;
 	uint32_t vrefresh;
 	int fail_count;
@@ -1365,25 +1360,25 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 	shared = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(shared != MAP_FAILED);
 
-	pipe = find_connected_pipe(display, false, &output);
+	crtc = find_connected_pipe(display, false, &output);
 	igt_require(output);
 
 	igt_info("Using pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
-	set_fb_on_crtc(display, pipe, output, &fb_info);
+	set_fb_on_crtc(display, crtc, output, &fb_info);
 	vrefresh = igt_output_get_mode(output)->vrefresh;
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
-	populate_cursor_args(display, pipe, arg, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
+	populate_cursor_args(display, crtc, arg, &cursor_fb);
 
-	prepare_flip_test(display, mode, pipe, arg, &fb_info, &argb_fb, &cursor_fb2);
+	prepare_flip_test(display, mode, crtc, arg, &fb_info, &argb_fb, &cursor_fb2);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
-	target = get_cursor_updates_per_vblank(display, pipe, &arg[0]);
+	target = get_cursor_updates_per_vblank(display, crtc, &arg[0]);
 
 	fail_count = 0;
 
@@ -1401,18 +1396,18 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 
 		switch (mode) {
 		default:
-			flip_nonblocking(display, pipe, mode >= flip_test_atomic, &fb_info, NULL);
+			flip_nonblocking(display, crtc, mode >= flip_test_atomic, &fb_info, NULL);
 			break;
 		case flip_test_atomic_transitions:
 		case flip_test_atomic_transitions_varying_size:
-			transition_nonblocking(display, pipe, &fb_info, &argb_fb, (i & 2) >> 1);
+			transition_nonblocking(display, crtc, &fb_info, &argb_fb, (i & 2) >> 1);
 			break;
 		}
 
 		igt_assert_eq(read(display->drm_fd, &vbl, sizeof(vbl)), sizeof(vbl));
 		vblank_start = vblank_last = vbl.sequence;
 		for (int n = 0; n < vrefresh / 2; n++) {
-			flip_nonblocking(display, pipe, mode >= flip_test_atomic, &fb_info, NULL);
+			flip_nonblocking(display, crtc, mode >= flip_test_atomic, &fb_info, NULL);
 
 			igt_assert_eq(read(display->drm_fd, &vbl, sizeof(vbl)), sizeof(vbl));
 			if (vbl.sequence != vblank_last + 1) {
@@ -1464,7 +1459,7 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 	struct igt_fb fb_info[2], cursor_fb;
 	volatile unsigned long *shared;
 	int target[2];
-	enum pipe pipe[2];
+	igt_crtc_t *crtc[2];
 	igt_output_t *outputs[2];
 	igt_plane_t *cursors[2];
 
@@ -1474,39 +1469,39 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	pipe[0] = find_connected_pipe(display, false, &outputs[0]);
-	pipe[1] = find_connected_pipe(display, true, &outputs[1]);
+	crtc[0] = find_connected_pipe(display, false, &outputs[0]);
+	crtc[1] = find_connected_pipe(display, true, &outputs[1]);
 	igt_skip_on(!outputs[0] || !outputs[1]);
 
 	igt_info("Using pipe %s & %s and pipe %s & %s\n",
-		 kmstest_pipe_name(pipe[0]), igt_output_name(outputs[0]),
-		 kmstest_pipe_name(pipe[1]), igt_output_name(outputs[1]));
+		 igt_crtc_name(crtc[0]), igt_output_name(outputs[0]),
+		 igt_crtc_name(crtc[1]), igt_output_name(outputs[1]));
 
-	set_fb_on_crtc(display, pipe[0], outputs[0], &fb_info[0]);
-	set_fb_on_crtc(display, pipe[1], outputs[1], &fb_info[1]);
+	set_fb_on_crtc(display, crtc[0], outputs[0], &fb_info[0]);
+	set_fb_on_crtc(display, crtc[1], outputs[1], &fb_info[1]);
 
 	if (try_commit(display)) {
 		override_output_modes(display, outputs[0], outputs[1]);
 
-		set_fb_on_crtc(display, pipe[0], outputs[0], &fb_info[0]);
-		set_fb_on_crtc(display, pipe[1], outputs[1], &fb_info[1]);
+		set_fb_on_crtc(display, crtc[0], outputs[0], &fb_info[0]);
+		set_fb_on_crtc(display, crtc[1], outputs[1], &fb_info[1]);
 	}
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
 
-	cursors[0] = set_cursor_on_pipe(display, pipe[0], &cursor_fb);
-	populate_cursor_args(display, pipe[0], arg[0], &cursor_fb);
+	cursors[0] = set_cursor_on_pipe(display, crtc[0], &cursor_fb);
+	populate_cursor_args(display, crtc[0], arg[0], &cursor_fb);
 	arg[0][1].x = arg[0][1].y = 192;
 
-	cursors[1] = set_cursor_on_pipe(display, pipe[1], &cursor_fb);
-	populate_cursor_args(display, pipe[1], arg[1], &cursor_fb);
+	cursors[1] = set_cursor_on_pipe(display, crtc[1], &cursor_fb);
+	populate_cursor_args(display, crtc[1], arg[1], &cursor_fb);
 	arg[1][1].x =  arg[1][1].y = 192;
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
-	target[0] = get_cursor_updates_per_vblank(display, pipe[0], &arg[0][0]);
-	target[1] = get_cursor_updates_per_vblank(display, pipe[1], &arg[1][0]);
+	target[0] = get_cursor_updates_per_vblank(display, crtc[0], &arg[0][0]);
+	target[1] = get_cursor_updates_per_vblank(display, crtc[1], &arg[1][0]);
 
 	for (int i = 0; i < nloops; i++) {
 		unsigned long vrefresh[2];
@@ -1529,8 +1524,8 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 			shared[child] = count;
 		}
 
-		flip_nonblocking(display, pipe[0], atomic, &fb_info[0], (void *)0UL);
-		flip_nonblocking(display, pipe[1], atomic, &fb_info[1], (void *)1UL);
+		flip_nonblocking(display, crtc[0], atomic, &fb_info[0], (void *)0UL);
+		flip_nonblocking(display, crtc[1], atomic, &fb_info[1], (void *)1UL);
 
 		for (int n = 0; n < vrefresh[0] / 2 + vrefresh[1] / 2; n++) {
 			unsigned long child;
@@ -1547,7 +1542,7 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 			vblank_last[child] = vbl.sequence;
 
 			if (done[child] < vrefresh[child] / 2) {
-				flip_nonblocking(display, pipe[child], atomic, &fb_info[child], (void *)child);
+				flip_nonblocking(display, crtc[child], atomic, &fb_info[child], (void *)child);
 			} else {
 				igt_assert_lte(vbl.sequence, vblank_start[child] + 5 * vrefresh[child] / 8);
 
@@ -1591,7 +1586,7 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info, cursor_fb;
 	unsigned vblank_start;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_crc_t crcs[3];
 	igt_output_t *output;
 	igt_plane_t *cursor;
@@ -1599,24 +1594,24 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	pipe = find_connected_pipe(display, false, &output);
+	crtc = find_connected_pipe(display, false, &output);
 	igt_require(output);
 
 	igt_info("Using pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
-	set_fb_on_crtc(display, pipe, output, &fb_info);
+	set_fb_on_crtc(display, crtc, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	populate_cursor_args(display, pipe, arg, &cursor_fb);
+	populate_cursor_args(display, crtc, arg, &cursor_fb);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
-	pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe),
+	pipe_crc = igt_crtc_crc_new(crtc,
 				    IGT_PIPE_CRC_SOURCE_AUTO);
 
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
 	igt_display_commit2(display, COMMIT_UNIVERSAL);
 
 	/* Collect reference crcs, crcs[0] last. */
@@ -1628,18 +1623,18 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
 
 	/* Disable cursor, and immediately queue a flip. Check if resulting crc is correct. */
 	for (int i = 1; i >= 0; i--) {
-		vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
+		vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
 
-		flip_nonblocking(display, pipe, atomic, &fb_info, NULL);
+		flip_nonblocking(display, crtc, atomic, &fb_info, NULL);
 		do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[i]);
 
-		igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+		igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 
 		igt_set_timeout(1, "Stuck page flip");
 		igt_ignore_warn(read(display->drm_fd, &vbl, sizeof(vbl)));
 		igt_reset_timeout();
 
-		igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start + 1);
+		igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start + 1);
 
 		igt_pipe_crc_collect_crc(pipe_crc, &crcs[2]);
 
@@ -1663,7 +1658,7 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info[2], cursor_fb;
 	unsigned vblank_start;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_plane_t *plane_primary;
 	igt_crc_t crcs[2], test_crc;
 	uint64_t ahnd;
@@ -1677,27 +1672,27 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	pipe = find_connected_pipe(display, false, &output);
+	crtc = find_connected_pipe(display, false, &output);
 	igt_require(output);
 
 	igt_info("Using pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
-	set_fb_on_crtc(display, pipe, output, &fb_info[0]);
+	set_fb_on_crtc(display, crtc, output, &fb_info[0]);
 	plane_primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_create_color_pattern_fb(display->drm_fd, fb_info[0].width, fb_info[0].height,
 				    DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, .1, .1, .1, &fb_info[1]);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
-	populate_cursor_args(display, pipe, arg, &cursor_fb);
+	populate_cursor_args(display, crtc, arg, &cursor_fb);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
-	pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe),
+	pipe_crc = igt_crtc_crc_new(crtc,
 				    IGT_PIPE_CRC_SOURCE_AUTO);
 
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
 	igt_display_commit2(display, COMMIT_UNIVERSAL);
 
 	/* Collect reference crcs, crc[0] last for the loop. */
@@ -1733,12 +1728,12 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 				    .dependency = fb_info[1].gem_handle,
 				    .dependency_size = fb_info[1].size);
 
-		vblank_start = kmstest_get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS);
+		vblank_start = kmstest_get_vblank(display->drm_fd, crtc->pipe, DRM_VBLANK_NEXTONMISS);
 
-		flip_nonblocking(display, pipe, atomic, &fb_info[1], NULL);
+		flip_nonblocking(display, crtc, atomic, &fb_info[1], NULL);
 		do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[i]);
 
-		igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
+		igt_assert_eq(kmstest_get_vblank(display->drm_fd, crtc->pipe, 0), vblank_start);
 
 		igt_pipe_crc_get_current(display->drm_fd, pipe_crc, &test_crc);
 
@@ -1748,7 +1743,7 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 		igt_ignore_warn(read(display->drm_fd, &vbl, sizeof(vbl)));
 		igt_reset_timeout();
 
-		igt_assert_lte(vblank_start + 1, kmstest_get_vblank(display->drm_fd, pipe, 0));
+		igt_assert_lte(vblank_start + 1, kmstest_get_vblank(display->drm_fd, crtc->pipe, 0));
 
 		igt_plane_set_fb(plane_primary, &fb_info[0]);
 		igt_display_commit2(display, COMMIT_UNIVERSAL);
@@ -1774,7 +1769,7 @@ static void modeset_atomic_cursor_hotspot(igt_display_t *display)
 {
 	struct igt_fb cursor_fb;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_plane_t *cursor = NULL;
 	bool has_hotspot_prop;
 	uint64_t cursor_width, cursor_height;
@@ -1782,11 +1777,11 @@ static void modeset_atomic_cursor_hotspot(igt_display_t *display)
 
 	igt_require(display->is_atomic);
 	igt_require(display->has_virt_cursor_plane);
-	pipe = find_connected_pipe(display, false, &output);
+	crtc = find_connected_pipe(display, false, &output);
 	igt_require(output);
 
 	igt_info("Using pipe %s & %s\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
 	cursor_width = cursor_height = 64;
 	igt_create_color_fb(display->drm_fd, cursor_width, cursor_height, DRM_FORMAT_ARGB8888,
@@ -1794,7 +1789,7 @@ static void modeset_atomic_cursor_hotspot(igt_display_t *display)
 
 	igt_display_commit2(display, COMMIT_ATOMIC);
 
-	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
+	cursor = set_cursor_on_pipe(display, crtc, &cursor_fb);
 
 	has_hotspot_prop = cursor->props[IGT_PLANE_HOTSPOT_X] ||
 		cursor->props[IGT_PLANE_HOTSPOT_Y];
@@ -1888,14 +1883,16 @@ int igt_main()
 
 					igt_dynamic_f("pipe-%s",
 						      igt_crtc_name(crtc))
-						stress(&display, crtc->pipe,
+						stress(&display, crtc,
 						       tests[i].ncpus,
 						       tests[i].flags, 5);
 				}
 
 				errno = 0;
 				igt_dynamic("all-pipes")
-					stress(&display, -1, tests[i].ncpus, tests[i].flags, 5);
+					stress(&display, NULL,
+					       tests[i].ncpus,
+					       tests[i].flags, 5);
 			}
 		}
 	}
-- 
2.52.0


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

* [PATCH i-g-t 09/17] tests/kms_color*: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (7 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 08/17] tests/kms_cursor_legacy: " Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 10/17] tests/kms_atomic_transition: " Ville Syrjala
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_color*.

The use of function pointers makes this a bit more
complicated than your average test.

 #include "scripts/iterators.cocci"

@func@
typedef igt_crtc_t;
identifier FUNC, PIPE;
parameter list[N] P;
@@
 FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *crtc
  ,...)
{
<...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...>
}

@depends on func@
identifier func.FUNC;
expression PIPE;
expression list[func.N] EP;
@@
FUNC(EP
-    ,PIPE
+    ,igt_crtc_for_pipe(display, PIPE)
   ,...)

@@
identifier FUNC, CRTC;
@@
FUNC(..., igt_crtc_t *CRTC, ...)
{
...
(
- igt_crtc_t *CRTC = CRTC;
|
- igt_crtc_t *CRTC = igt_crtc_for_pipe(...);
|
- igt_crtc_t *CRTC;
...
- CRTC = igt_crtc_for_pipe(...);
)
...
}

@func_ptr@
parameter list[N] P;
identifier F, PIPE;
type T;
@@
struct {
       ...
       T (*F)(P
-	,enum pipe PIPE
+	,igt_crtc_t *crtc
	,...);
	...
}

@depends on func_ptr@
identifier func_ptr.F;
expression list[func_ptr.N] EP;
expression PIPE, X;
@@
X.F(EP
- ,PIPE
+ ,igt_crtc_for_pipe(display, PIPE)
 ,...)

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
identifier DISPLAY;
expression E;
@@
- igt_display_t *DISPLAY = E;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/chamelium/kms_chamelium_color.c | 49 ++++++++++++++-------------
 tests/kms_color.c                     | 46 ++++++++++++-------------
 tests/kms_color_helper.c              | 23 +++++++------
 tests/kms_color_helper.h              |  8 ++---
 tests/kms_color_pipeline.c            | 10 +++---
 5 files changed, 67 insertions(+), 69 deletions(-)

diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c
index d77b924ac672..70dbedf82acc 100644
--- a/tests/chamelium/kms_chamelium_color.c
+++ b/tests/chamelium/kms_chamelium_color.c
@@ -429,10 +429,8 @@ static bool test_pipe_limited_range_ctm(data_t *data,
 }
 
 static void
-prep_pipe(data_t *data, enum pipe p)
+prep_pipe(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
 	igt_require_pipe(&data->display, crtc->pipe);
 
 	if (igt_crtc_has_prop(crtc, IGT_CRTC_DEGAMMA_LUT_SIZE)) {
@@ -450,14 +448,12 @@ prep_pipe(data_t *data, enum pipe p)
 	}
 }
 
-static int test_setup(data_t *data, enum pipe p)
+static int test_setup(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
 	int i = 0;
 
 	igt_display_reset(&data->display);
-	prep_pipe(data, crtc->pipe);
+	prep_pipe(data, crtc);
 	igt_require(crtc->n_planes >= 0);
 
 	data->primary = igt_crtc_get_plane_type(crtc, DRM_PLANE_TYPE_PRIMARY);
@@ -489,10 +485,11 @@ static int test_setup(data_t *data, enum pipe p)
 }
 
 static void
-run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p,
-		bool (*test_t)(data_t*, igt_plane_t*, struct chamelium_port*))
+run_gamma_degamma_tests_for_pipe(data_t *data, igt_crtc_t *crtc,
+				 bool (*test_t)(data_t*, igt_plane_t*, struct chamelium_port*))
 {
-	int port_idx = test_setup(data, p);
+	int port_idx = test_setup(data,
+				  crtc);
 
 	igt_require(port_idx >= 0);
 
@@ -500,15 +497,15 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
-	if (!pipe_output_combo_valid(data, p))
+	if (!pipe_output_combo_valid(data, crtc))
 		return;
 
-	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name)
+	igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), data->output->name)
 		igt_assert(test_t(data, data->primary, data->ports[port_idx]));
 }
 
 static void
-run_ctm_tests_for_pipe(data_t *data, enum pipe p,
+run_ctm_tests_for_pipe(data_t *data, igt_crtc_t *crtc,
 		       color_t *expected_colors,
 		       double *ctm,
 		       int iter)
@@ -519,7 +516,8 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 		{ 0.0, 1.0, 0.0 },
 		{ 0.0, 0.0, 1.0 }
 	};
-	int port_idx = test_setup(data, p);
+	int port_idx = test_setup(data,
+				  crtc);
 
 	igt_require(port_idx >= 0);
 	/*
@@ -538,10 +536,10 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
-	if (!pipe_output_combo_valid(data, p))
+	if (!pipe_output_combo_valid(data, crtc))
 		return;
 
-	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) {
+	igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), data->output->name) {
 		bool success = false;
 		int i;
 
@@ -574,10 +572,11 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 }
 
 static void
-run_limited_range_ctm_test_for_pipe(data_t *data, enum pipe p,
-		bool (*test_t)(data_t*, igt_plane_t*, struct chamelium_port*))
+run_limited_range_ctm_test_for_pipe(data_t *data, igt_crtc_t *crtc,
+				    bool (*test_t)(data_t*, igt_plane_t*, struct chamelium_port*))
 {
-	int port_idx = test_setup(data, p);
+	int port_idx = test_setup(data,
+				  crtc);
 
 	igt_require(port_idx >= 0);
 	igt_require(igt_output_has_prop(data->output, IGT_CONNECTOR_BROADCAST_RGB));
@@ -586,10 +585,10 @@ run_limited_range_ctm_test_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
-	if (!pipe_output_combo_valid(data, p))
+	if (!pipe_output_combo_valid(data, crtc))
 		return;
 
-	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name)
+	igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), data->output->name)
 		igt_assert(test_t(data, data->primary, data->ports[port_idx]));
 }
 
@@ -689,7 +688,7 @@ run_tests_for_pipe(data_t *data)
 		igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) {
 			for_each_crtc(&data->display, crtc) {
 				run_gamma_degamma_tests_for_pipe(data,
-								 crtc->pipe,
+								 crtc,
 								 gamma_degamma_tests[i].test_t);
 			}
 		}
@@ -699,7 +698,8 @@ run_tests_for_pipe(data_t *data)
 		igt_describe_f("%s", ctm_tests[i].desc);
 		igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) {
 			for_each_crtc(&data->display, crtc) {
-				run_ctm_tests_for_pipe(data, crtc->pipe,
+				run_ctm_tests_for_pipe(data,
+						       crtc,
 						       ctm_tests[i].colors,
 						       ctm_tests[i].ctm,
 						       ctm_tests[i].iter);
@@ -710,7 +710,8 @@ run_tests_for_pipe(data_t *data)
 	igt_describe("Compare after applying ctm matrix & identity matrix");
 	igt_subtest_with_dynamic("ctm-limited-range") {
 		for_each_crtc(&data->display, crtc) {
-			run_limited_range_ctm_test_for_pipe(data, crtc->pipe,
+			run_limited_range_ctm_test_for_pipe(data,
+							    crtc,
 							    test_pipe_limited_range_ctm);
 		}
 	}
diff --git a/tests/kms_color.c b/tests/kms_color.c
index b05d1ba0adab..fdc97d13dad6 100644
--- a/tests/kms_color.c
+++ b/tests/kms_color.c
@@ -711,10 +711,8 @@ static void test_pipe_limited_range_ctm(data_t *data,
 #endif
 
 static void
-prep_pipe(data_t *data, enum pipe p)
+prep_pipe(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
 	igt_require_pipe(&data->display, crtc->pipe);
 
 	if (igt_crtc_has_prop(crtc, IGT_CRTC_DEGAMMA_LUT_SIZE)) {
@@ -732,12 +730,9 @@ prep_pipe(data_t *data, enum pipe p)
 	}
 }
 
-static void test_setup(data_t *data, enum pipe p)
+static void test_setup(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
-
-	prep_pipe(data, crtc->pipe);
+	prep_pipe(data, crtc);
 	igt_require_pipe_crc(data->drm_fd);
 	igt_require(crtc->n_planes >= 0);
 
@@ -755,10 +750,10 @@ static void test_cleanup(data_t *data)
 }
 
 static void
-run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p,
+run_gamma_degamma_tests_for_pipe(data_t *data, igt_crtc_t *crtc,
 				 bool (*test_t)(data_t*, igt_plane_t*))
 {
-	test_setup(data, p);
+	test_setup(data, crtc);
 
 	/*
 	 * We assume an 8bits depth per color for degamma/gamma LUTs
@@ -768,7 +763,7 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
-	igt_require(pipe_output_combo_valid(data, p));
+	igt_require(pipe_output_combo_valid(data, crtc));
 
 	igt_assert(test_t(data, data->primary));
 
@@ -785,7 +780,7 @@ static void transform_color(color_t *color, const double *ctm, double offset)
 }
 
 static void
-run_ctm_tests_for_pipe(data_t *data, enum pipe p,
+run_ctm_tests_for_pipe(data_t *data, igt_crtc_t *crtc,
 		       const color_t *fb_colors,
 		       const double *ctm,
 		       int iter)
@@ -795,7 +790,7 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 	double delta;
 	int i;
 
-	test_setup(data, p);
+	test_setup(data, crtc);
 
 	/* MediaTek can only support bit-ture in 10-bit depth pre color */
 	if (is_mtk_device(data->drm_fd))
@@ -810,7 +805,7 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = depth_10bit ? DRM_FORMAT_XRGB2101010 : DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
-	igt_require(pipe_output_combo_valid(data, p));
+	igt_require(pipe_output_combo_valid(data, crtc));
 
 	if (!iter)
 		iter = 1;
@@ -844,10 +839,8 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 }
 
 static void
-run_deep_color_tests_for_pipe(data_t *data, enum pipe p)
+run_deep_color_tests_for_pipe(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
 	igt_output_t *output;
 	static const color_t blue_green_blue[] = {
 		{ 0.0, 0.0, 1.0 },
@@ -869,7 +862,7 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p)
 		igt_require_f((intel_display_ver(data->devid) >= 11),
 				"At least GEN 11 is required to validate Deep-color.\n");
 
-	test_setup(data, crtc->pipe);
+	test_setup(data, crtc);
 
 	for_each_valid_output_on_pipe(&data->display, crtc->pipe, output) {
 		uint64_t max_bpc = get_max_bpc(output);
@@ -969,7 +962,7 @@ run_invalid_tests_for_pipe(data_t *data)
 	igt_crtc_t *crtc;
 	struct {
 		const char *name;
-		void (*test_t) (data_t *data, enum pipe pipe);
+		void (*test_t) (data_t *data, igt_crtc_t *crtc);
 		const char *desc;
 	} tests[] = {
 		{ "invalid-gamma-lut-sizes", invalid_gamma_lut_sizes,
@@ -988,8 +981,10 @@ run_invalid_tests_for_pipe(data_t *data)
 		igt_subtest_with_dynamic_f("%s", tests[i].name) {
 			for_each_crtc(&data->display, crtc) {
 				igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
-					prep_pipe(data, crtc->pipe);
-					tests[i].test_t(data, crtc->pipe);
+					prep_pipe(data,
+						  crtc);
+					tests[i].test_t(data,
+							crtc);
 				}
 			}
 		}
@@ -1132,7 +1127,8 @@ run_tests_for_pipe(data_t *data)
 			for_each_crtc_with_valid_output(&data->display, crtc, data->output) {
 				igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 					      igt_output_name(data->output))
-					run_gamma_degamma_tests_for_pipe(data, crtc->pipe,
+					run_gamma_degamma_tests_for_pipe(data,
+									 crtc,
 									 gamma_degamma_tests[i].test_t);
 			}
 		}
@@ -1144,7 +1140,8 @@ run_tests_for_pipe(data_t *data)
 			for_each_crtc_with_valid_output(&data->display, crtc, data->output) {
 				igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 					      igt_output_name(data->output))
-					run_ctm_tests_for_pipe(data, crtc->pipe,
+					run_ctm_tests_for_pipe(data,
+							       crtc,
 							       ctm_tests[i].fb_colors,
 							       ctm_tests[i].ctm,
 							       ctm_tests[i].iter);
@@ -1160,7 +1157,8 @@ run_tests_for_pipe(data_t *data)
 	igt_describe("Verify that deep color works correctly");
 	igt_subtest_with_dynamic("deep-color") {
 		for_each_crtc(&data->display, crtc) {
-			run_deep_color_tests_for_pipe(data, crtc->pipe);
+			run_deep_color_tests_for_pipe(data,
+						      crtc);
 
 			if (igt_run_in_simulation())
 				break;
diff --git a/tests/kms_color_helper.c b/tests/kms_color_helper.c
index 554c1c72cbf6..aa47324dff6a 100644
--- a/tests/kms_color_helper.c
+++ b/tests/kms_color_helper.c
@@ -24,12 +24,12 @@
 
 #include "kms_color_helper.h"
 
-bool pipe_output_combo_valid(data_t *data, enum pipe pipe)
+bool pipe_output_combo_valid(data_t *data, igt_crtc_t *crtc)
 {
 	bool ret = true;
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(data->output->display, pipe));
+			    crtc);
 	if (!intel_pipe_output_combo_valid(&data->display))
 		ret = false;
 	igt_output_set_crtc(data->output, NULL);
@@ -316,11 +316,10 @@ pipe_set_property_blob(igt_crtc_t *crtc,
 }
 
 static void
-invalid_lut_sizes(data_t *data, enum pipe p,
+invalid_lut_sizes(data_t *data, igt_crtc_t *crtc,
 		  enum igt_atomic_crtc_properties prop, int size)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
 	struct drm_color_lut *lut;
 	size_t lut_size = size * sizeof(lut[0]);
 
@@ -349,21 +348,23 @@ invalid_lut_sizes(data_t *data, enum pipe p,
 }
 
 void
-invalid_gamma_lut_sizes(data_t *data, enum pipe p)
+invalid_gamma_lut_sizes(data_t *data, igt_crtc_t *crtc)
 {
-	invalid_lut_sizes(data, p, IGT_CRTC_GAMMA_LUT, data->gamma_lut_size);
+	invalid_lut_sizes(data, crtc,
+			  IGT_CRTC_GAMMA_LUT,
+			  data->gamma_lut_size);
 }
 
 void
-invalid_degamma_lut_sizes(data_t *data, enum pipe p)
+invalid_degamma_lut_sizes(data_t *data, igt_crtc_t *crtc)
 {
-	invalid_lut_sizes(data, p, IGT_CRTC_DEGAMMA_LUT, data->degamma_lut_size);
+	invalid_lut_sizes(data, crtc,
+			  IGT_CRTC_DEGAMMA_LUT,
+			  data->degamma_lut_size);
 }
 
-void invalid_ctm_matrix_sizes(data_t *data, enum pipe p)
+void invalid_ctm_matrix_sizes(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
 	void *ptr;
 
 	igt_require(igt_crtc_has_prop(crtc, IGT_CRTC_CTM));
diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h
index 31f7382eb541..6a700d4610fe 100644
--- a/tests/kms_color_helper.h
+++ b/tests/kms_color_helper.h
@@ -68,7 +68,7 @@ typedef struct {
 	color_t coeffs[];
 } gamma_lut_t;
 
-bool pipe_output_combo_valid(data_t *data, enum pipe pipe);
+bool pipe_output_combo_valid(data_t *data, igt_crtc_t *crtc);
 bool panel_supports_deep_color(int fd, char *output_name);
 uint64_t get_max_bpc(igt_output_t *output);
 void paint_gradient_rectangles(data_t *data,
@@ -110,9 +110,9 @@ int pipe_set_property_blob_id(igt_crtc_t *pipe,
 int pipe_set_property_blob(igt_crtc_t *pipe,
 			   enum igt_atomic_crtc_properties prop,
 			   void *ptr, size_t length);
-void invalid_gamma_lut_sizes(data_t *data, enum pipe p);
-void invalid_degamma_lut_sizes(data_t *data, enum pipe p);
-void invalid_ctm_matrix_sizes(data_t *data, enum pipe p);
+void invalid_gamma_lut_sizes(data_t *data, igt_crtc_t *crtc);
+void invalid_degamma_lut_sizes(data_t *data, igt_crtc_t *crtc);
+void invalid_ctm_matrix_sizes(data_t *data, igt_crtc_t *crtc);
 
 #endif
 
diff --git a/tests/kms_color_pipeline.c b/tests/kms_color_pipeline.c
index 733ead1cd55c..7445b14568c5 100644
--- a/tests/kms_color_pipeline.c
+++ b/tests/kms_color_pipeline.c
@@ -46,11 +46,8 @@ static void test_cleanup(data_t *data)
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
 }
 
-static void test_setup(data_t *data, enum pipe p)
+static void test_setup(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
-
 	igt_require_pipe_crc(data->drm_fd);
 	igt_require(crtc);
 	igt_require(crtc->n_planes > 0);
@@ -279,10 +276,11 @@ run_tests_for_plane(data_t *data)
 							 output) {
 				data->output = output;
 
-				if (!pipe_output_combo_valid(data, crtc->pipe))
+				if (!pipe_output_combo_valid(data, crtc))
 					continue;
 
-				test_setup(data, crtc->pipe);
+				test_setup(data,
+					   crtc);
 
 				if (!igt_plane_has_prop(data->primary, IGT_PLANE_COLOR_PIPELINE)) {
 					test_cleanup(data);
-- 
2.52.0


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

* [PATCH i-g-t 10/17] tests/kms_atomic_transition: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (8 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 09/17] tests/kms_color*: " Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 11/17] tests/kms_plane: " Ville Syrjala
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_atomic_transition.

The somewhat unusual part here is the old vs. new
pipe/crtc handling for planes in set_combinations().

 #include "scripts/iterators.cocci"

@func@
identifier FUNC, PIPE;
parameter list[N] P;
@@
 FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *crtc
  ,...)
{
<...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...>
}

@depends on func@
identifier func.FUNC;
expression PIPE;
expression list[func.N] EP;
@@
FUNC(EP
-    ,PIPE
+    ,igt_crtc_for_pipe(display, PIPE)
   ,...)

@@
identifier FUNC, CRTC;
@@
FUNC(..., igt_crtc_t *CRTC, ...)
{
...
(
- igt_crtc_t *CRTC = CRTC;
|
- igt_crtc_t *CRTC = igt_crtc_for_pipe(...);
|
- igt_crtc_t *CRTC;
...
- CRTC = igt_crtc_for_pipe(...);
)
...
}

@@
typedef igt_plane_t;
identifier PLANE;
identifier PIPE;
@@
{...
igt_plane_t *PLANE = ...;
...
- enum pipe PIPE = PLANE->ref->crtc->pipe;
+ igt_crtc_t *old_crtc = PLANE->ref->crtc;
<+...
- PIPE
+ old_crtc->pipe
...+>
}

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
igt_crtc_t *CRTC1;
igt_crtc_t *CRTC2;
binary operator OP = { ==, != };
@@
- CRTC1->pipe OP CRTC2->pipe
+ CRTC1 OP CRTC2

@@
identifier DISPLAY;
expression E;
@@
- igt_display_t *DISPLAY = E;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_atomic_transition.c | 147 +++++++++++++++++++---------------
 1 file changed, 84 insertions(+), 63 deletions(-)

diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 27072c4f1d06..701503136b92 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -131,10 +131,8 @@ pthread_t *thread;
 int *seqno;
 
 static void
-run_primary_test(data_t *data, enum pipe pipe, igt_output_t *output)
+run_primary_test(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
 	igt_fb_t *fb = &data->fbs[0];
@@ -229,7 +227,7 @@ static bool skip_plane(data_t *data, igt_plane_t *plane)
 }
 
 static int
-wm_setup_plane(data_t *data, enum pipe pipe,
+wm_setup_plane(data_t *data, igt_crtc_t *crtc,
 	       uint32_t mask, struct plane_parms *parms, bool fencing)
 {
 	igt_plane_t *plane;
@@ -240,7 +238,7 @@ wm_setup_plane(data_t *data, enum pipe pipe,
 	* because most of the modeset operations must be fast
 	* later on.
 	*/
-	for_each_plane_on_pipe(&data->display, pipe, plane) {
+	for_each_plane_on_pipe(&data->display, crtc->pipe, plane) {
 		int i = plane->index;
 
 		if (skip_plane(data, plane))
@@ -284,13 +282,13 @@ enum transition_type {
 	TRANSITION_MODESET_DISABLE,
 };
 
-static void set_sprite_wh(data_t *data, enum pipe pipe,
+static void set_sprite_wh(data_t *data, igt_crtc_t *crtc,
 			  struct plane_parms *parms, struct igt_fb *sprite_fb,
 			  bool alpha, unsigned w, unsigned h)
 {
 	igt_plane_t *plane;
 
-	for_each_plane_on_pipe(&data->display, pipe, plane) {
+	for_each_plane_on_pipe(&data->display, crtc->pipe, plane) {
 		int i = plane->index;
 
 		if (plane->type == DRM_PLANE_TYPE_PRIMARY ||
@@ -316,7 +314,7 @@ static void set_sprite_wh(data_t *data, enum pipe pipe,
 #define is_atomic_check_plane_size_errno(errno) \
 		(errno == -EINVAL)
 
-static void setup_parms(data_t *data, enum pipe pipe,
+static void setup_parms(data_t *data, igt_crtc_t *crtc,
 			const drmModeModeInfo *mode,
 			struct igt_fb *primary_fb,
 			struct igt_fb *argb_fb,
@@ -324,8 +322,6 @@ static void setup_parms(data_t *data, enum pipe pipe,
 			struct plane_parms *parms,
 			unsigned *iter_max)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	uint64_t cursor_width, cursor_height;
 	unsigned sprite_width, sprite_height, prev_w, prev_h;
 	bool max_sprite_width, max_sprite_height, alpha = true;
@@ -408,10 +404,12 @@ static void setup_parms(data_t *data, enum pipe pipe,
 	while (!max_sprite_width && !max_sprite_height) {
 		int ret;
 
-		set_sprite_wh(data, crtc->pipe, parms, sprite_fb,
+		set_sprite_wh(data, crtc,
+			      parms, sprite_fb,
 			      alpha, sprite_width, sprite_height);
 
-		wm_setup_plane(data, crtc->pipe, (1 << n_planes) - 1, parms,
+		wm_setup_plane(data, crtc,
+			       (1 << n_planes) - 1, parms,
 			       false);
 		ret = igt_display_try_commit_atomic(&data->display, DRM_MODE_ATOMIC_TEST_ONLY | DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 		igt_assert(!is_atomic_check_failure_errno(ret));
@@ -467,7 +465,8 @@ static void setup_parms(data_t *data, enum pipe pipe,
 			max_sprite_height = true;
 	}
 
-	set_sprite_wh(data, crtc->pipe, parms, sprite_fb,
+	set_sprite_wh(data, crtc, parms,
+			sprite_fb,
 			alpha, sprite_width, sprite_height);
 
 	igt_info("Running test on pipe %s with resolution %dx%d and sprite size %dx%d alpha %i\n",
@@ -475,10 +474,8 @@ static void setup_parms(data_t *data, enum pipe pipe,
 		 sprite_width, sprite_height, alpha);
 }
 
-static void prepare_fencing(data_t *data, enum pipe pipe)
+static void prepare_fencing(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *plane;
 	int n_planes;
 
@@ -496,7 +493,7 @@ static void prepare_fencing(data_t *data, enum pipe pipe)
 		timeline[plane->index] = sw_sync_timeline_create();
 }
 
-static void unprepare_fencing(data_t *data, enum pipe pipe)
+static void unprepare_fencing(data_t *data, igt_crtc_t *crtc)
 {
 	igt_plane_t *plane;
 
@@ -504,7 +501,7 @@ static void unprepare_fencing(data_t *data, enum pipe pipe)
 	if (!timeline)
 		return;
 
-	for_each_plane_on_pipe(&data->display, pipe, plane)
+	for_each_plane_on_pipe(&data->display, crtc->pipe, plane)
 		close(timeline[plane->index]);
 
 	free(timeline);
@@ -512,10 +509,9 @@ static void unprepare_fencing(data_t *data, enum pipe pipe)
 	free(seqno);
 }
 
-static void atomic_commit(data_t *data_v, enum pipe pipe, unsigned int flags, void *data, bool fencing)
+static void atomic_commit(data_t *data_v, igt_crtc_t *crtc,
+			  unsigned int flags, void *data, bool fencing)
 {
-	igt_display_t *display = &data_v->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	if (fencing)
 		igt_crtc_request_out_fence(crtc);
 
@@ -532,10 +528,9 @@ static int fd_completed(int fd)
 	return ret;
 }
 
-static void wait_for_transition(data_t *data, enum pipe pipe, bool nonblocking, bool fencing)
+static void wait_for_transition(data_t *data, igt_crtc_t *crtc,
+				bool nonblocking, bool fencing)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	if (fencing) {
 		int fence_fd = crtc->out_fence_fd;
 
@@ -561,11 +556,9 @@ static void wait_for_transition(data_t *data, enum pipe pipe, bool nonblocking,
  * so test this and make sure it works.
  */
 static void
-run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
-		enum transition_type type, bool nonblocking, bool fencing)
+run_transition_test(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+		    enum transition_type type, bool nonblocking, bool fencing)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode, override_mode;
 	igt_plane_t *plane;
 	uint32_t iter_max, i;
@@ -577,7 +570,7 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 		 igt_crtc_name(crtc), igt_output_name(output));
 
 	if (fencing)
-		prepare_fencing(data, crtc->pipe);
+		prepare_fencing(data, crtc);
 	else
 		flags |= DRM_MODE_PAGE_FLIP_EVENT;
 
@@ -597,7 +590,8 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 
 	igt_output_set_crtc(output, crtc);
 
-	wm_setup_plane(data, crtc->pipe, 0, NULL, false);
+	wm_setup_plane(data, crtc, 0, NULL,
+		       false);
 
 	if (flags & DRM_MODE_ATOMIC_ALLOW_MODESET) {
 		igt_output_set_crtc(output, NULL);
@@ -608,7 +602,8 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 				    crtc);
 	}
 
-	setup_parms(data, crtc->pipe, mode, &data->fbs[0], &data->argb_fb,
+	setup_parms(data, crtc, mode,
+		    &data->fbs[0], &data->argb_fb,
 		    &data->sprite_fb, parms, &iter_max);
 
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
@@ -619,7 +614,8 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 	 * planes to fix this
 	 */
 	while (1) {
-		wm_setup_plane(data, crtc->pipe, iter_max - 1, parms, false);
+		wm_setup_plane(data, crtc,
+			       iter_max - 1, parms, false);
 
 		if (fencing)
 			igt_crtc_request_out_fence(crtc);
@@ -653,9 +649,11 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 	if (type == TRANSITION_AFTER_FREE) {
 		int fence_fd = -1;
 
-		wm_setup_plane(data, crtc->pipe, 0, parms, fencing);
+		wm_setup_plane(data, crtc,
+			       0, parms, fencing);
 
-		atomic_commit(data, crtc->pipe, flags,
+		atomic_commit(data, crtc,
+			      flags,
 			      (void *)(unsigned long)0, fencing);
 		if (fencing) {
 			fence_fd = crtc->out_fence_fd;
@@ -675,7 +673,9 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 			close(fence_fd);
 		} else {
 			igt_assert(fd_completed(data->drm_fd));
-			wait_for_transition(data, crtc->pipe, false, fencing);
+			wait_for_transition(data,
+					    crtc,
+					    false, fencing);
 		}
 		return;
 	}
@@ -691,22 +691,29 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 		igt_output_set_crtc(output,
 				    crtc);
 
-		if (!wm_setup_plane(data, crtc->pipe, i, parms, fencing))
+		if (!wm_setup_plane(data, crtc, i, parms, fencing))
 			continue;
 
-		atomic_commit(data, crtc->pipe, flags,
+		atomic_commit(data, crtc,
+			      flags,
 			      (void *)(unsigned long)i, fencing);
-		wait_for_transition(data, crtc->pipe, nonblocking, fencing);
+		wait_for_transition(data,
+				    crtc,
+				    nonblocking, fencing);
 
 		if (type == TRANSITION_MODESET_DISABLE) {
 			igt_output_set_crtc(output, NULL);
 
-			if (!wm_setup_plane(data, crtc->pipe, 0, parms, fencing))
+			if (!wm_setup_plane(data, crtc, 0, parms, fencing))
 				continue;
 
-			atomic_commit(data, crtc->pipe, flags, (void *) 0UL,
+			atomic_commit(data,
+				      crtc,
+				      flags, (void *) 0UL,
 				      fencing);
-			wait_for_transition(data, crtc->pipe, nonblocking,
+			wait_for_transition(data,
+					    crtc,
+					    nonblocking,
 					    fencing);
 		} else {
 			uint32_t j;
@@ -720,44 +727,52 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 				    n_enable_planes < crtc->n_planes)
 					continue;
 
-				if (!wm_setup_plane(data, crtc->pipe, j, parms, fencing))
+				if (!wm_setup_plane(data, crtc, j, parms, fencing))
 					continue;
 
 				if (type >= TRANSITION_MODESET)
 					igt_output_override_mode(output, &override_mode);
 
-				atomic_commit(data, crtc->pipe, flags,
+				atomic_commit(data,
+					      crtc,
+					      flags,
 					      (void *)(unsigned long) j,
 					      fencing);
-				wait_for_transition(data, crtc->pipe,
+				wait_for_transition(data,
+						    crtc,
 						    nonblocking, fencing);
 
-				if (!wm_setup_plane(data, crtc->pipe, i, parms, fencing))
+				if (!wm_setup_plane(data, crtc, i, parms, fencing))
 					continue;
 
 				if (type >= TRANSITION_MODESET)
 					igt_output_override_mode(output, NULL);
 
-				atomic_commit(data, crtc->pipe, flags,
+				atomic_commit(data,
+					      crtc,
+					      flags,
 					      (void *)(unsigned long) i,
 					      fencing);
-				wait_for_transition(data, crtc->pipe,
+				wait_for_transition(data,
+						    crtc,
 						    nonblocking, fencing);
 			}
 		}
 	}
 }
 
-static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output, bool fencing)
+static void test_cleanup(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+			 bool fencing)
 {
 	igt_plane_t *plane;
 
 	if (fencing)
-		unprepare_fencing(data, pipe);
+		unprepare_fencing(data,
+				  crtc);
 
 	igt_output_set_crtc(output, NULL);
 
-	for_each_plane_on_pipe(&data->display, pipe, plane)
+	for_each_plane_on_pipe(&data->display, crtc->pipe, plane)
 		igt_plane_set_fb(plane, NULL);
 
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
@@ -820,7 +835,6 @@ static void unset_output_pipe(igt_display_t *display)
 
 static unsigned set_combinations(data_t *data, unsigned mask, struct igt_fb *fb)
 {
-	igt_display_t *display = &data->display;
 	igt_output_t *output;
 	igt_crtc_t *crtc;
 	unsigned event_mask = 0;
@@ -831,14 +845,14 @@ static unsigned set_combinations(data_t *data, unsigned mask, struct igt_fb *fb)
 		igt_plane_t *plane = igt_crtc_get_plane_type(crtc,
 							     DRM_PLANE_TYPE_PRIMARY);
 
-		enum pipe old_pipe = plane->ref->crtc->pipe;
+		igt_crtc_t *old_crtc = plane->ref->crtc;
 
 		/*
 		 * If a plane is being shared by multiple pipes, we must disable the pipe that
 		 * currently is holding the plane
 		 */
-		if (old_pipe != crtc->pipe) {
-			igt_plane_t *old_plane = igt_crtc_get_plane_type(igt_crtc_for_pipe(display, old_pipe),
+		if (old_crtc != crtc) {
+			igt_plane_t *old_plane = igt_crtc_get_plane_type(old_crtc,
 									 DRM_PLANE_TYPE_PRIMARY);
 
 			igt_plane_set_fb(old_plane, NULL);
@@ -1113,14 +1127,14 @@ static void run_modeset_transition(data_t *data, int requested_outputs, bool non
 		run_modeset_tests(data, requested_outputs, nonblocking, fencing);
 }
 
-static bool pipe_output_combo_valid(igt_display_t *display,
-				    enum pipe pipe, igt_output_t *output)
+static bool pipe_output_combo_valid(igt_display_t *display, igt_crtc_t *crtc,
+				    igt_output_t *output)
 {
 	bool ret = true;
 
 	igt_display_reset(display);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	if (!intel_pipe_output_combo_valid(display))
 		ret = false;
 	igt_output_set_crtc(output, NULL);
@@ -1231,14 +1245,18 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 			if (pipe_count == 2 * count && !data.extended)
 				break;
 
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 
 			pipe_count++;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_primary_test(&data, crtc->pipe, output);
-			test_cleanup(&data, crtc->pipe, output, false);
+				run_primary_test(&data,
+						 crtc,
+						 output);
+			test_cleanup(&data,
+				     crtc,
+				     output, false);
 		}
 	}
 
@@ -1268,20 +1286,23 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 				if (pipe_count == 2 * count && !data.extended)
 					break;
 
-				if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+				if (!pipe_output_combo_valid(&data.display, crtc, output))
 					continue;
 
 				pipe_count++;
 				igt_dynamic_f("pipe-%s-%s",
 					      igt_crtc_name(crtc),
 					      igt_output_name(output))
-					run_transition_test(&data, crtc->pipe,
+					run_transition_test(&data,
+							    crtc,
 							    output,
 							    transition_tests[i].type,
 							    transition_tests[i].nonblocking,
 							    transition_tests[i].fencing);
 
-				test_cleanup(&data, crtc->pipe, output,
+				test_cleanup(&data,
+					     crtc,
+					     output,
 					     transition_tests[i].fencing);
 			}
 		}
-- 
2.52.0


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

* [PATCH i-g-t 11/17] tests/kms_plane: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (9 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 10/17] tests/kms_atomic_transition: " Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:33 ` [PATCH i-g-t 12/17] tests/intel/kms_pipe_b_c_ivb: " Ville Syrjala
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_plane.

The use of function pointers makes this a bit more
complicated than your average test.

 #include "scripts/iterators.cocci"

@@
typedef igt_crtc_t;
typedef igt_display_t;
identifier DISPLAY, PIPE;
expression E;
constant P;
@@
{...
igt_display_t *DISPLAY = E;
...
- enum pipe PIPE = P;
+ igt_crtc_t *crtc = igt_crtc_for_pipe(DISPLAY, P);
<+... when != PIPE = ...
(
- PIPE
+ crtc->pipe
)
...+>
}

@func@
typedef igt_crtc_t;
identifier FUNC, PIPE;
parameter list[N] P;
@@
 FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *crtc
  ,...)
{
<...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...>
}

@depends on func@
identifier func.FUNC;
expression list[func.N] EP;
expression PIPE;
@@
FUNC(EP
-    ,PIPE
+    ,igt_crtc_for_pipe(display, PIPE)
   ,...)

@func_ptr@
identifier FUNC;
parameter list[N] P;
type T;
@@
run_test(...,	T (*FUNC)(P
-	   ,enum pipe
+	   ,igt_crtc_t *crtc
	      ,...), ...)
{...}

@depends on func_ptr@
identifier func_ptr.FUNC;
expression list[func_ptr.N] EP;
expression PIPE;
@@
FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(display, PIPE)
	,...)

@@
identifier FUNC, CRTC;
@@
FUNC(..., igt_crtc_t *CRTC, ...)
{
...
(
- igt_crtc_t *CRTC = CRTC;
|
- igt_crtc_t *CRTC = igt_crtc_for_pipe(...);
|
- igt_crtc_t *CRTC;
...
- CRTC = igt_crtc_for_pipe(...);
)
...
}

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
identifier DISPLAY;
expression E;
@@
{...
- igt_display_t *DISPLAY = E;
... when != DISPLAY
}

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_plane.c | 179 ++++++++++++++++++++++++++--------------------
 1 file changed, 101 insertions(+), 78 deletions(-)

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 1ce3d98041ec..46459383d3c5 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -145,10 +145,8 @@ static color_t blue  = { 0.0f, 0.0f, 1.0f };
 /*
  * Common code across all tests, acting on data_t
  */
-static void test_init(data_t *data, enum pipe pipe)
+static void test_init(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_require(crtc->n_planes > 0);
 	if (data->pipe_crc)
 		igt_pipe_crc_free(data->pipe_crc);
@@ -231,11 +229,9 @@ create_fb_for_mode(data_t *data, drmModeModeInfo *mode,
 }
 
 static void
-test_grab_crc(data_t *data, igt_output_t *output, enum pipe pipe,
+test_grab_crc(data_t *data, igt_output_t *output, igt_crtc_t *crtc,
 	      color_t *fb_color, unsigned int flags, igt_crc_t *crc /* out */)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	struct igt_fb fb;
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
@@ -303,15 +299,12 @@ typedef struct {
 } test_position_t;
 
 static void
-test_plane_position_with_output(data_t *data,
-				enum pipe pipe,
+test_plane_position_with_output(data_t *data, igt_crtc_t *crtc,
 				int plane,
 				igt_output_t *output,
 				igt_crc_t *reference_crc,
 				unsigned int flags)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	rectangle_t rect = { .x = 100, .y = 100, .color = { 0.0, 0.0, 0.0 }};
 	igt_plane_t *primary, *sprite;
 	struct igt_fb primary_fb, sprite_fb;
@@ -385,10 +378,8 @@ test_plane_position_with_output(data_t *data,
 }
 
 static void
-test_plane_position(data_t *data, enum pipe pipe)
+test_plane_position(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	int n_planes = crtc->n_planes;
 	igt_output_t *output = data->output;
 	igt_crc_t reference_crc;
@@ -396,13 +387,15 @@ test_plane_position(data_t *data, enum pipe pipe)
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
 		 igt_crtc_name(crtc), igt_output_name(output));
 
-	test_init(data, crtc->pipe);
-	test_grab_crc(data, output, crtc->pipe, &green, data->flags,
+	test_init(data, crtc);
+	test_grab_crc(data, output, crtc,
+		      &green, data->flags,
 		      &reference_crc);
 
 	for (int plane = 1; plane < n_planes; plane++) {
 		igt_dynamic_f("pipe-%s-plane-%d", igt_crtc_name(crtc), plane)
-			test_plane_position_with_output(data, crtc->pipe,
+			test_plane_position_with_output(data,
+							crtc,
 							plane, output,
 							&reference_crc, data->flags);
 	}
@@ -450,14 +443,11 @@ create_fb_for_mode_panning(data_t *data, drmModeModeInfo *mode,
 }
 
 static void
-test_plane_panning_with_output(data_t *data,
-			       enum pipe pipe,
+test_plane_panning_with_output(data_t *data, igt_crtc_t *crtc,
 			       igt_output_t *output,
 			       igt_crc_t *ref_crc,
 			       unsigned int flags)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary;
 	struct igt_fb primary_fb;
 	drmModeModeInfo *mode;
@@ -500,7 +490,7 @@ test_plane_panning_with_output(data_t *data,
 }
 
 static void
-test_plane_panning(data_t *data, enum pipe pipe)
+test_plane_panning(data_t *data, igt_crtc_t *crtc)
 {
 	bool mode_found = false;
 	uint64_t mem_size = 0;
@@ -508,9 +498,9 @@ test_plane_panning(data_t *data, enum pipe pipe)
 	igt_crc_t ref_crc;
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
-	test_init(data, pipe);
+	test_init(data, crtc);
 
 	if (is_i915_device(data->drm_fd)) {
 		for_each_memory_region(r, data->drm_fd)
@@ -548,11 +538,20 @@ test_plane_panning(data_t *data, enum pipe pipe)
 	igt_require_f(mode_found, "All connector modes are skipped due to low memory\n");
 
 	if (data->flags & TEST_PANNING_TOP_LEFT)
-		test_grab_crc(data, output, pipe, &red, data->flags, &ref_crc);
+		test_grab_crc(data, output,
+			      crtc, &red,
+			      data->flags,
+			      &ref_crc);
 	else
-		test_grab_crc(data, output, pipe, &blue, data->flags, &ref_crc);
+		test_grab_crc(data, output,
+			      crtc, &blue,
+			      data->flags,
+			      &ref_crc);
 
-	test_plane_panning_with_output(data, pipe, output, &ref_crc, data->flags);
+	test_plane_panning_with_output(data,
+				       crtc,
+				       output, &ref_crc,
+				       data->flags);
 
 	test_fini(data);
 }
@@ -575,11 +574,9 @@ static const color_t colors_reduced[] = {
 	{ 0.0f, 1.0f, 1.0f, },
 };
 
-static void set_legacy_lut(data_t *data, enum pipe pipe,
+static void set_legacy_lut(data_t *data, igt_crtc_t *crtc,
 			   uint16_t mask)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeCrtc *drm_crtc;
 	uint16_t *lut;
 	int i, lut_size;
@@ -603,11 +600,9 @@ static void set_legacy_lut(data_t *data, enum pipe pipe,
 	free(lut);
 }
 
-static bool set_c8_legacy_lut(data_t *data, enum pipe pipe,
+static bool set_c8_legacy_lut(data_t *data, igt_crtc_t *crtc,
 			      uint16_t mask)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeCrtc *drm_crtc;
 	uint16_t *r, *g, *b;
 	int i, lut_size;
@@ -745,7 +740,7 @@ static void capture_crc(data_t *data, unsigned int vblank, igt_crc_t *crc)
 		      crc->frame, vblank);
 }
 
-static void capture_format_crcs_single(data_t *data, enum pipe pipe,
+static void capture_format_crcs_single(data_t *data, igt_crtc_t *crtc,
 				       igt_plane_t *plane,
 				       uint32_t format, uint64_t modifier,
 				       int width, int height,
@@ -767,7 +762,7 @@ static void capture_format_crcs_single(data_t *data, enum pipe pipe,
 	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &crc[0]);
 }
 
-static void capture_format_crcs_multiple(data_t *data, enum pipe pipe,
+static void capture_format_crcs_multiple(data_t *data, igt_crtc_t *crtc,
 					 igt_plane_t *plane,
 					 uint32_t format, uint64_t modifier,
 					 int width, int height,
@@ -837,7 +832,9 @@ restart_round:
 			 * is when the next flip latches.
 			 */
 			if (i >= 1)
-				vblank[i - 1] = kmstest_get_vblank(data->drm_fd, pipe, 0) + 1;
+				vblank[i - 1] = kmstest_get_vblank(data->drm_fd,
+								   crtc->pipe,
+								   0) + 1;
 
 			/*
 			 * Can't use drmModePageFlip() since we need to
@@ -848,9 +845,7 @@ restart_round:
 
 			/* setplane for the cursor does not block */
 			if (plane->type == DRM_PLANE_TYPE_CURSOR) {
-				igt_display_t *display = &data->display;
-
-				igt_wait_for_vblank(igt_crtc_for_pipe(display, pipe));
+				igt_wait_for_vblank(crtc);
 			}
 		}
 
@@ -875,7 +870,8 @@ restart_round:
 		 * The last crc is available earliest one
 		 * frame after the last flip latched.
 		 */
-		vblank[i - 1] = kmstest_get_vblank(data->drm_fd, pipe, 0) + 1;
+		vblank[i - 1] = kmstest_get_vblank(data->drm_fd, crtc->pipe,
+						   0) + 1;
 	}
 
 	/*
@@ -894,7 +890,7 @@ static bool use_multiple_colors(data_t *data, uint32_t format)
 	return data->extended || igt_format_is_yuv_semiplanar(format);
 }
 
-static bool test_format_plane_colors(data_t *data, enum pipe pipe,
+static bool test_format_plane_colors(data_t *data, igt_crtc_t *crtc,
 				     igt_plane_t *plane,
 				     uint32_t format, uint64_t modifier,
 				     int width, int height,
@@ -910,12 +906,18 @@ static bool test_format_plane_colors(data_t *data, enum pipe pipe,
 	int i, total_crcs = 1;
 
 	if (use_multiple_colors(data, format)) {
-		capture_format_crcs_multiple(data, pipe, plane, format, modifier,
+		capture_format_crcs_multiple(data,
+					     crtc,
+					     plane, format,
+					     modifier,
 					     width, height, encoding, range, crc,
 					     fb);
 		total_crcs = data->num_colors;
 	} else {
-		capture_format_crcs_single(data, pipe, plane, format, modifier,
+		capture_format_crcs_single(data,
+					   crtc,
+					   plane, format,
+					   modifier,
 					   width, height, encoding, range, crc,
 					   fb);
 	}
@@ -930,14 +932,14 @@ static bool test_format_plane_colors(data_t *data, enum pipe pipe,
 
 	igt_warn_on_f(crc_mismatch_count,
 		      "CRC mismatches with format " IGT_FORMAT_FMT " on %s.%u with %d/%d solid colors tested (0x%X)\n",
-		      IGT_FORMAT_ARGS(format), kmstest_pipe_name(pipe),
+		      IGT_FORMAT_ARGS(format), igt_crtc_name(crtc),
 		      plane->index, crc_mismatch_count, data->num_colors,
 		      crc_mismatch_mask);
 
 	return result;
 }
 
-static bool test_format_plane_rgb(data_t *data, enum pipe pipe,
+static bool test_format_plane_rgb(data_t *data, igt_crtc_t *crtc,
 				  igt_plane_t *plane,
 				  uint32_t format, uint64_t modifier,
 				  int width, int height,
@@ -946,9 +948,11 @@ static bool test_format_plane_rgb(data_t *data, enum pipe pipe,
 {
 	igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
 		 IGT_FORMAT_ARGS(format), IGT_MODIFIER_ARGS(modifier),
-		 kmstest_pipe_name(pipe), plane->index);
+		 igt_crtc_name(crtc), plane->index);
 
-	return test_format_plane_colors(data, pipe, plane,
+	return test_format_plane_colors(data,
+					crtc,
+					plane,
 					format, modifier,
 					width, height,
 					IGT_COLOR_YCBCR_BT601,
@@ -956,7 +960,7 @@ static bool test_format_plane_rgb(data_t *data, enum pipe pipe,
 					ref_crc, fb);
 }
 
-static bool test_format_plane_yuv(data_t *data, enum pipe pipe,
+static bool test_format_plane_yuv(data_t *data, igt_crtc_t *crtc,
 				  igt_plane_t *plane,
 				  uint32_t format, uint64_t modifier,
 				  int width, int height,
@@ -991,10 +995,12 @@ static bool test_format_plane_yuv(data_t *data, enum pipe pipe,
 				 IGT_MODIFIER_ARGS(modifier),
 				 igt_color_encoding_to_str(e),
 				 igt_color_range_to_str(r),
-				 kmstest_pipe_name(pipe),
+				 igt_crtc_name(crtc),
 				 plane->index);
 
-			result &= test_format_plane_colors(data, pipe, plane,
+			result &= test_format_plane_colors(data,
+							   crtc,
+							   plane,
 							   format, modifier,
 							   width, height,
 							   e, r, ref_crc, fb);
@@ -1090,7 +1096,7 @@ static bool skip_format_mod(data_t *data,
 	return false;
 }
 
-static void test_format_plane(data_t *data, enum pipe pipe,
+static void test_format_plane(data_t *data, igt_crtc_t *crtc,
 			      igt_output_t *output, igt_plane_t *plane, igt_fb_t *primary_fb)
 {
 	struct igt_fb fb = {};
@@ -1141,22 +1147,28 @@ static void test_format_plane(data_t *data, enum pipe pipe,
 
 	igt_debug("Testing connector %s on %s plane %s.%u\n",
 		  igt_output_name(output), kmstest_plane_type_name(plane->type),
-		  kmstest_pipe_name(pipe), plane->index);
+		  igt_crtc_name(crtc), plane->index);
 
 	igt_pipe_crc_start(data->pipe_crc);
 
 	igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
 		 IGT_FORMAT_ARGS(ref.format), IGT_MODIFIER_ARGS(ref.modifier),
-		 kmstest_pipe_name(pipe), plane->index);
+		 igt_crtc_name(crtc), plane->index);
 
 	check_allowed_plane_size_64x64(data, plane, &width, &height, ref.format);
 
-	capture_format_crcs_single(data, pipe, plane, ref.format, ref.modifier,
+	capture_format_crcs_single(data,
+				   crtc,
+				   plane, ref.format,
+				   ref.modifier,
 				   width, height, IGT_COLOR_YCBCR_BT709,
 				   IGT_COLOR_YCBCR_LIMITED_RANGE,
 				   ref_crc[SINGLE_CRC_SET], &fb);
 
-	capture_format_crcs_multiple(data, pipe, plane, ref.format, ref.modifier,
+	capture_format_crcs_multiple(data,
+				     crtc,
+				     plane, ref.format,
+				     ref.modifier,
 				     width, height, IGT_COLOR_YCBCR_BT709,
 				     IGT_COLOR_YCBCR_LIMITED_RANGE,
 				     ref_crc[MULTIPLE_CRC_SET], &fb);
@@ -1186,13 +1198,13 @@ static void test_format_plane(data_t *data, enum pipe pipe,
 				 IGT_MODIFIER_FMT " on %s.%u\n",
 				 IGT_FORMAT_ARGS(f.format),
 				 IGT_MODIFIER_ARGS(f.modifier),
-				 kmstest_pipe_name(pipe),
+				 igt_crtc_name(crtc),
 				 plane->index);
 			continue;
 		}
 
 		if (f.format == DRM_FORMAT_C8) {
-			if (!set_c8_legacy_lut(data, pipe, LUT_MASK))
+			if (!set_c8_legacy_lut(data, crtc, LUT_MASK))
 				continue;
 		} else {
 			if (!igt_fb_supported_format(f.format))
@@ -1203,18 +1215,24 @@ static void test_format_plane(data_t *data, enum pipe pipe,
 				 MULTIPLE_CRC_SET : SINGLE_CRC_SET];
 
 		if (igt_format_is_yuv(f.format))
-			result &= test_format_plane_yuv(data, pipe, plane,
+			result &= test_format_plane_yuv(data,
+							crtc,
+							plane,
 							f.format, f.modifier,
 							width, height,
 							crcset, &fb);
 		else
-			result &= test_format_plane_rgb(data, pipe, plane,
+			result &= test_format_plane_rgb(data,
+							crtc,
+							plane,
 							f.format, f.modifier,
 							width, height,
 							crcset, &fb);
 
 		if (f.format == DRM_FORMAT_C8)
-			set_legacy_lut(data, pipe, LUT_MASK);
+			set_legacy_lut(data,
+				       crtc,
+				       LUT_MASK);
 	}
 
 	igt_pipe_crc_stop(data->pipe_crc);
@@ -1265,10 +1283,8 @@ static bool skip_plane(data_t *data, igt_plane_t *plane)
 }
 
 static void
-test_pixel_formats(data_t *data, enum pipe pipe)
+test_pixel_formats(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	struct igt_fb primary_fb;
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
@@ -1286,7 +1302,7 @@ test_pixel_formats(data_t *data, enum pipe pipe)
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
 		 igt_crtc_name(crtc), igt_output_name(output));
 
-	test_init(data, crtc->pipe);
+	test_init(data, crtc);
 
 	mode = igt_output_get_mode(output);
 
@@ -1299,20 +1315,22 @@ test_pixel_formats(data_t *data, enum pipe pipe)
 
 	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
-	set_legacy_lut(data, crtc->pipe, LUT_MASK);
+	set_legacy_lut(data, crtc, LUT_MASK);
 
 	for_each_plane_on_pipe(&data->display, crtc->pipe, plane) {
 		if (skip_plane(data, plane))
 			continue;
 		igt_dynamic_f("pipe-%s-plane-%u", igt_crtc_name(crtc),
 			      plane->index)
-			test_format_plane(data, crtc->pipe, output, plane,
+			test_format_plane(data,
+					  crtc,
+					  output, plane,
 					  &primary_fb);
 	}
 
 	test_fini(data);
 
-	set_legacy_lut(data, crtc->pipe, 0xffff);
+	set_legacy_lut(data, crtc, 0xffff);
 
 	igt_plane_set_fb(primary, NULL);
 	igt_output_set_crtc(output, NULL);
@@ -1324,7 +1342,7 @@ test_pixel_formats(data_t *data, enum pipe pipe)
 static void test_planar_settings(data_t *data)
 {
 	igt_display_t *display = &data->display;
-	enum pipe pipe = PIPE_A;
+	igt_crtc_t *crtc = igt_crtc_for_pipe(display, PIPE_A);
 	igt_output_t *output;
 	igt_fb_t fb, fb_ref;
 	igt_plane_t *primary;
@@ -1346,10 +1364,10 @@ static void test_planar_settings(data_t *data)
 		igt_require(display_ver >= 9);
 	}
 
-	output = igt_get_single_output_for_pipe(&data->display, pipe);
+	output = igt_get_single_output_for_pipe(&data->display, crtc->pipe);
 	igt_require(output);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
 	igt_display_commit_atomic(&data->display,
@@ -1443,10 +1461,12 @@ static void test_planar_settings(data_t *data)
 						     DRM_MODE_ATOMIC_ALLOW_MODESET,
 						     NULL);
 		if (rval == 0) {
-			set_legacy_lut(data, pipe, LUT_MASK);
-			igt_wait_for_vblank_count(igt_crtc_for_pipe(display, pipe),
+			set_legacy_lut(data,
+				       crtc,
+				       LUT_MASK);
+			igt_wait_for_vblank_count(crtc,
 						  1);
-			data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe),
+			data->pipe_crc = igt_crtc_crc_new(crtc,
 							  IGT_PIPE_CRC_SOURCE_AUTO);
 			igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
 
@@ -1461,7 +1481,9 @@ static void test_planar_settings(data_t *data)
 						     NULL);
 
 			igt_pipe_crc_collect_crc(data->pipe_crc, &crc_ref);
-			set_legacy_lut(data, pipe, 0xffff);
+			set_legacy_lut(data,
+				       crtc,
+				       0xffff);
 
 			igt_pipe_crc_free(data->pipe_crc);
 			data->pipe_crc = NULL;
@@ -1485,7 +1507,7 @@ static bool is_pipe_limit_reached(int count)
 		return count >= CRTC_RESTRICT_CNT && !all_pipes;
 }
 
-static void run_test(data_t *data, void (*test)(data_t *, enum pipe))
+static void run_test(data_t *data, void (*test)(data_t *, igt_crtc_t *crtc))
 {
 	igt_crtc_t *crtc;
 	int count = 0;
@@ -1499,17 +1521,18 @@ static void run_test(data_t *data, void (*test)(data_t *, enum pipe))
 			continue;
 
 		igt_output_set_crtc(data->output, NULL);
-		test(data, crtc->pipe);
+		test(data, crtc);
 
 		if (is_pipe_limit_reached(++count))
 			break;
 	}
 }
 
-static void dynamic_test_handler(data_t *data, enum pipe pipe)
+static void dynamic_test_handler(data_t *data, igt_crtc_t *crtc)
 {
-	igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe))
-		test_plane_panning(data, pipe);
+	igt_dynamic_f("pipe-%s", igt_crtc_name(crtc))
+		test_plane_panning(data,
+				   crtc);
 }
 
 static void
-- 
2.52.0


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

* [PATCH i-g-t 12/17] tests/intel/kms_pipe_b_c_ivb: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (10 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 11/17] tests/kms_plane: " Ville Syrjala
@ 2026-02-11 16:33 ` Ville Syrjala
  2026-02-11 16:34 ` [PATCH i-g-t 13/17] tests/kms_vrr: " Ville Syrjala
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:33 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/intel/kms_pipe_b_c_ivb.

This test wants to specifically use pipes B and C,
thus we are left with a few igt_crtc_for_pipe()
calls even after the conversion.

 #include "scripts/iterators.cocci"

@func1@
typedef igt_crtc_t;
identifier FUNC, PIPE, CRTC;
parameter list[N] P;
@@
FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *CRTC
 ,...)
{
...
(
- igt_crtc_t *CRTC = igt_crtc_for_pipe(..., PIPE);
|
- igt_crtc_t *CRTC;
... when != PIPE = ...
- CRTC = igt_crtc_for_pipe(..., PIPE);
)
<... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ CRTC
|
- kmsetst_crtc_name(PIPE)
+ igt_crtc_name(CRTC)
|
- PIPE
+ CRTC->pipe
)
...>
}

@depends on func1@
identifier func1.FUNC;
expression list[func1.N] EP;
expression PIPE;
@@
 FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(&data->display, PIPE)
	,...)

@func2@
typedef igt_crtc_t;
identifier FUNC, PIPE;
parameter list[N] P;
@@
FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *crtc
 ,...)
{
<+... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmsetst_crtc_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...+>
}

@depends on func2@
identifier func2.FUNC;
expression list[func2.N] EP;
expression PIPE;
@@
FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(&data->display, PIPE)
	,...)

@@
identifier FUNC;
expression DISPLAY;
@@
FUNC(...)
{
+ igt_crtc_t *crtc_b = igt_crtc_for_pipe(DISPLAY, PIPE_B);
+ igt_crtc_t *crtc_c = igt_crtc_for_pipe(DISPLAY, PIPE_C);
<+...
(
- igt_crtc_for_pipe(DISPLAY, PIPE_B)
+ crtc_b
|
- igt_crtc_for_pipe(DISPLAY, PIPE_C)
+ crtc_c
)
...+>
}

@@
identifier CRTC;
expression PIPE;
@@
 igt_crtc_t *CRTC = igt_crtc_for_pipe(..., PIPE);
<+...
(
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(CRTC)
|
- PIPE
+ CRTC->pipe
)
...+>

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
typedef igt_display_t;
identifier DISPLAY;
@@
- igt_display_t *DISPLAY = ...;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/intel/kms_pipe_b_c_ivb.c | 102 ++++++++++++++++++++++-----------
 1 file changed, 68 insertions(+), 34 deletions(-)

diff --git a/tests/intel/kms_pipe_b_c_ivb.c b/tests/intel/kms_pipe_b_c_ivb.c
index 184d3b38fee7..d5c1ab3ff758 100644
--- a/tests/intel/kms_pipe_b_c_ivb.c
+++ b/tests/intel/kms_pipe_b_c_ivb.c
@@ -98,10 +98,8 @@ drmModeModeInfo mode_2_lanes = {
 };
 
 static int
-disable_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+disable_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary;
 
 	igt_output_set_crtc(output, crtc);
@@ -111,10 +109,8 @@ disable_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 }
 
 static int
-set_mode_on_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+set_mode_on_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
 	struct igt_fb fb;
@@ -137,17 +133,19 @@ set_mode_on_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 }
 
 static int
-set_big_mode_on_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+set_big_mode_on_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
 	igt_output_override_mode(output, &mode_3_lanes);
-	return set_mode_on_pipe(data, pipe, output);
+	return set_mode_on_pipe(data, crtc,
+				output);
 }
 
 static int
-set_normal_mode_on_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+set_normal_mode_on_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
 	igt_output_override_mode(output, &mode_2_lanes);
-	return set_mode_on_pipe(data, pipe, output);
+	return set_mode_on_pipe(data, crtc,
+				output);
 }
 
 static void
@@ -175,6 +173,8 @@ find_outputs(data_t *data, igt_output_t **output1, igt_output_t **output2)
 static void
 test_dpms(data_t *data)
 {
+	igt_crtc_t *crtc_b = igt_crtc_for_pipe(&data->display, PIPE_B);
+	igt_crtc_t *crtc_c = igt_crtc_for_pipe(&data->display, PIPE_C);
 	igt_output_t *output1, *output2;
 	int ret;
 
@@ -182,22 +182,28 @@ test_dpms(data_t *data)
 	find_outputs(data, &output1, &output2);
 
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_B), igt_output_name(output1));
+		 igt_crtc_name(crtc_b), igt_output_name(output1));
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_C), igt_output_name(output2));
+		 igt_crtc_name(crtc_c), igt_output_name(output2));
 
-	ret = set_big_mode_on_pipe(data, PIPE_B, output1);
+	ret = set_big_mode_on_pipe(data,
+				   crtc_b,
+				   output1);
 	igt_assert_eq(ret, 0);
 
 	kmstest_set_connector_dpms(data->drm_fd, output1->config.connector, DRM_MODE_DPMS_OFF);
 
-	ret = set_big_mode_on_pipe(data, PIPE_C, output2);
+	ret = set_big_mode_on_pipe(data,
+				   crtc_c,
+				   output2);
 	igt_assert_neq(ret, 0);
 }
 
 static void
 test_lane_reduction(data_t *data)
 {
+	igt_crtc_t *crtc_b = igt_crtc_for_pipe(&data->display, PIPE_B);
+	igt_crtc_t *crtc_c = igt_crtc_for_pipe(&data->display, PIPE_C);
 	igt_output_t *output1, *output2;
 	int ret;
 
@@ -206,23 +212,31 @@ test_lane_reduction(data_t *data)
 	find_outputs(data, &output1, &output2);
 
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_B), igt_output_name(output1));
+		 igt_crtc_name(crtc_b), igt_output_name(output1));
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_C), igt_output_name(output2));
+		 igt_crtc_name(crtc_c), igt_output_name(output2));
 
-	ret = set_big_mode_on_pipe(data, PIPE_B, output1);
+	ret = set_big_mode_on_pipe(data,
+				   crtc_b,
+				   output1);
 	igt_assert_eq(ret, 0);
 
-	ret = set_normal_mode_on_pipe(data, PIPE_B, output1);
+	ret = set_normal_mode_on_pipe(data,
+				      crtc_b,
+				      output1);
 	igt_assert_eq(ret, 0);
 
-	ret = set_normal_mode_on_pipe(data, PIPE_C, output2);
+	ret = set_normal_mode_on_pipe(data,
+				      crtc_c,
+				      output2);
 	igt_assert_eq(ret, 0);
 }
 
 static void
 test_disable_pipe_B(data_t *data)
 {
+	igt_crtc_t *crtc_b = igt_crtc_for_pipe(&data->display, PIPE_B);
+	igt_crtc_t *crtc_c = igt_crtc_for_pipe(&data->display, PIPE_C);
 	igt_output_t *output1, *output2;
 	int ret;
 
@@ -230,26 +244,35 @@ test_disable_pipe_B(data_t *data)
 	find_outputs(data, &output1, &output2);
 
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_B), igt_output_name(output1));
+		 igt_crtc_name(crtc_b), igt_output_name(output1));
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_C), igt_output_name(output2));
+		 igt_crtc_name(crtc_c), igt_output_name(output2));
 
-	ret = set_big_mode_on_pipe(data, PIPE_B, output1);
+	ret = set_big_mode_on_pipe(data,
+				   crtc_b,
+				   output1);
 	igt_assert_eq(ret, 0);
 
-	ret = disable_pipe(data, PIPE_B, output1);
+	ret = disable_pipe(data, crtc_b,
+			   output1);
 	igt_assert_eq(ret, 0);
 
-	ret = set_normal_mode_on_pipe(data, PIPE_C, output2);
+	ret = set_normal_mode_on_pipe(data,
+				      crtc_c,
+				      output2);
 	igt_assert_eq(ret, 0);
 
-	ret = set_normal_mode_on_pipe(data, PIPE_B, output1);
+	ret = set_normal_mode_on_pipe(data,
+				      crtc_b,
+				      output1);
 	igt_assert_eq(ret, 0);
 }
 
 static void
 test_from_C_to_B_with_3_lanes(data_t *data)
 {
+	igt_crtc_t *crtc_b = igt_crtc_for_pipe(&data->display, PIPE_B);
+	igt_crtc_t *crtc_c = igt_crtc_for_pipe(&data->display, PIPE_C);
 	igt_output_t *output1, *output2;
 	int ret;
 
@@ -257,23 +280,30 @@ test_from_C_to_B_with_3_lanes(data_t *data)
 	find_outputs(data, &output1, &output2);
 
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_B), igt_output_name(output1));
+		 igt_crtc_name(crtc_b), igt_output_name(output1));
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_C), igt_output_name(output2));
+		 igt_crtc_name(crtc_c), igt_output_name(output2));
 
-	ret = set_normal_mode_on_pipe(data, PIPE_C, output2);
+	ret = set_normal_mode_on_pipe(data,
+				      crtc_c,
+				      output2);
 	igt_assert_eq(ret, 0);
 
-	ret = disable_pipe(data, PIPE_C, output2);
+	ret = disable_pipe(data, crtc_c,
+			   output2);
 	igt_assert_eq(ret, 0);
 
-	ret = set_big_mode_on_pipe(data, PIPE_B, output1);
+	ret = set_big_mode_on_pipe(data,
+				   crtc_b,
+				   output1);
 	igt_assert_eq(ret, 0);
 }
 
 static void
 test_fail_enable_pipe_C_while_B_has_3_lanes(data_t *data)
 {
+	igt_crtc_t *crtc_b = igt_crtc_for_pipe(&data->display, PIPE_B);
+	igt_crtc_t *crtc_c = igt_crtc_for_pipe(&data->display, PIPE_C);
 	igt_output_t *output1, *output2;
 	int ret;
 
@@ -281,14 +311,18 @@ test_fail_enable_pipe_C_while_B_has_3_lanes(data_t *data)
 	find_outputs(data, &output1, &output2);
 
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_B), igt_output_name(output1));
+		 igt_crtc_name(crtc_b), igt_output_name(output1));
 	igt_info("Pipe %s will use connector %s\n",
-		 kmstest_pipe_name(PIPE_C), igt_output_name(output2));
+		 igt_crtc_name(crtc_c), igt_output_name(output2));
 
-	ret = set_big_mode_on_pipe(data, PIPE_B, output1);
+	ret = set_big_mode_on_pipe(data,
+				   crtc_b,
+				   output1);
 	igt_assert_eq(ret, 0);
 
-	ret = set_normal_mode_on_pipe(data, PIPE_C, output2);
+	ret = set_normal_mode_on_pipe(data,
+				      crtc_c,
+				      output2);
 	igt_assert_neq(ret, 0);
 }
 
-- 
2.52.0


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

* [PATCH i-g-t 13/17] tests/kms_vrr: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (11 preceding siblings ...)
  2026-02-11 16:33 ` [PATCH i-g-t 12/17] tests/intel/kms_pipe_b_c_ivb: " Ville Syrjala
@ 2026-02-11 16:34 ` Ville Syrjala
  2026-02-11 16:34 ` [PATCH i-g-t 14/17] tests/kms_display_modes: " Ville Syrjala
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:34 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_vrr.

The use of function pointers makes this a bit more
complicated than your average test.

 #include "scripts/iterators.cocci"

@func@
typedef igt_crtc_t;
identifier FUNC;
identifier PIPE;
parameter list[N] P;
@@
 FUNC(P
-	,enum pipe PIPE
+	,igt_crtc_t *crtc
	,...)
{
<...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...>
}

@depends on func@
identifier func.FUNC;
expression list[func.N] EP;
expression PIPE;
@@
FUNC(EP
-    ,PIPE
+    ,igt_crtc_for_pipe(display, PIPE)
     ,...)

@@
identifier FUNC, CRTC;
@@
FUNC(..., igt_crtc_t *CRTC, ...)
{
...
(
- igt_crtc_t *CRTC = CRTC;
|
- igt_crtc_t *CRTC = igt_crtc_for_pipe(...);
|
- igt_crtc_t *CRTC;
...
- CRTC = igt_crtc_for_pipe(...);
)
...
}

@func_ptr@
parameter list[N] P;
type T, FT;
@@
typedef T (*FT)(P
-	,enum pipe
+	,igt_crtc_t *crtc
	,...);

@depends on func_ptr@
func_ptr.FT FUNC;
expression list[func_ptr.N] EP;
expression PIPE;
@@
FUNC(EP
- ,PIPE
+ ,igt_crtc_for_pipe(display, PIPE)
 ,...)

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
identifier DISPLAY;
expression E;
@@
- igt_display_t *DISPLAY = E;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_vrr.c | 66 ++++++++++++++++++++++++++++---------------------
 1 file changed, 38 insertions(+), 28 deletions(-)

diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 55671c71e095..f500d7a59120 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -158,7 +158,7 @@ typedef struct data {
 	uint32_t flag;
 } data_t;
 
-typedef void (*test_t)(data_t*, enum pipe, igt_output_t*, uint32_t);
+typedef void (*test_t)(data_t*, igt_crtc_t *crtc, igt_output_t*, uint32_t);
 
 /* Converts a timespec structure to nanoseconds. */
 static uint64_t timespec_to_ns(struct timespec *ts)
@@ -306,11 +306,9 @@ static bool vrr_capable(igt_output_t *output)
 }
 
 /* Toggles variable refresh rate on the pipe. */
-static void set_vrr_on_pipe(data_t *data, enum pipe pipe,
+static void set_vrr_on_pipe(data_t *data, igt_crtc_t *crtc,
 			    bool need_modeset, bool enabled)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crtc_set_prop_value(crtc,
 				    IGT_CRTC_VRR_ENABLED,
 				    enabled);
@@ -339,10 +337,8 @@ static void paint_bar(cairo_t *cr, unsigned int x, unsigned int y,
 }
 
 /* Prepare the display for testing on the given pipe. */
-static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
+static void prepare_test(data_t *data, igt_output_t *output, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	unsigned int num_bars = 256;
 	drmModeModeInfo mode;
 	cairo_t *cr;
@@ -657,24 +653,26 @@ flip_and_measure_cmrr(data_t *data, igt_output_t *output,
 
 /* Basic VRR flip functionality test - enable, measure, disable, measure */
 static void
-test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
+test_basic(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+	   uint32_t flags)
 {
 	uint32_t result;
 	vtest_ns_t vtest_ns;
 	range_t range;
 	uint64_t rate[] = {0};
 
-	prepare_test(data, output, pipe);
+	prepare_test(data, output, crtc);
 	range = data->range;
 	vtest_ns = data->vtest_ns;
 	rate[0] = vtest_ns.rate_ns;
 
 	igt_info("VRR Test execution on %s, PIPE_%s with VRR range: (%u-%u) Hz\n",
-		 output->name, kmstest_pipe_name(pipe), range.min, range.max);
+		 output->name, igt_crtc_name(crtc), range.min, range.max);
 	igt_info("Override Mode: ");
 	kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
 
-	set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), true);
+	set_vrr_on_pipe(data, crtc,
+			!(flags & TEST_FASTSET), true);
 
 	/*
 	 * Do a short run with VRR, but don't check the result.
@@ -756,7 +754,9 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 	 * modeset. And the expected behavior is the same as disabling VRR on
 	 * a VRR capable panel.
 	 */
-	set_vrr_on_pipe(data, pipe, !(flags & TEST_FASTSET), (flags & TEST_NEGATIVE) ? true : false);
+	set_vrr_on_pipe(data, crtc,
+			!(flags & TEST_FASTSET),
+			(flags & TEST_NEGATIVE) ? true : false);
 	rate[0] = vtest_ns.rate_ns;
 	result = flip_and_measure(data, output, rate, 1, data->duration_ns);
 	igt_assert_f(result < 10,
@@ -765,7 +765,8 @@ test_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 }
 
 static void
-test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
+test_seamless_rr_basic(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+		       uint32_t flags)
 {
 	uint32_t result;
 	vtest_ns_t vtest_ns;
@@ -775,11 +776,12 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
 	igt_info("Use HIGH_RR Mode as default (VRR: %s): ", vrr ? "ON" : "OFF");
 	kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
 
-	prepare_test(data, output, pipe);
+	prepare_test(data, output, crtc);
 	vtest_ns = data->vtest_ns;
 
 	if (vrr)
-		set_vrr_on_pipe(data, pipe, false, true);
+		set_vrr_on_pipe(data, crtc,
+				false, true);
 	else {
 		/*
 		 * Sink with DRRS and VRR can be in downclock mode.
@@ -822,7 +824,8 @@ test_seamless_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint3
 }
 
 static void
-test_seamless_virtual_rr_basic(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
+test_seamless_virtual_rr_basic(data_t *data, igt_crtc_t *crtc,
+			       igt_output_t *output, uint32_t flags)
 {
 	uint32_t result;
 	unsigned int vrefresh;
@@ -833,7 +836,7 @@ test_seamless_virtual_rr_basic(data_t *data, enum pipe pipe, igt_output_t *outpu
 	igt_info("Use HIGH_RR Mode as default\n");
 	kmstest_dump_mode(&data->switch_modes[HIGH_RR_MODE]);
 
-	prepare_test(data, output, pipe);
+	prepare_test(data, output, crtc);
 	rate[0] = igt_kms_frame_time_from_vrefresh(data->switch_modes[HIGH_RR_MODE].vrefresh);
 
 	/*
@@ -889,18 +892,20 @@ test_seamless_virtual_rr_basic(data_t *data, enum pipe pipe, igt_output_t *outpu
  */
 
 static void
-test_lobf(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
+test_lobf(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+	  uint32_t flags)
 {
 	uint64_t rate[] = {0};
 	uint32_t step_size, vrefresh;
 	bool lobf_enabled = false;
 
 	rate[0] = igt_kms_frame_time_from_vrefresh(data->switch_modes[HIGH_RR_MODE].vrefresh);
-	prepare_test(data, output, pipe);
+	prepare_test(data, output, crtc);
 	data->flag |= flags;
 
 	igt_info("LOBF test execution on %s, PIPE %s with VRR range: (%u-%u) Hz\n",
-		 output->name, kmstest_pipe_name(pipe), data->range.min, data->range.max);
+		 output->name, igt_crtc_name(crtc), data->range.min,
+		 data->range.max);
 
 	igt_output_override_mode(output, &data->switch_modes[HIGH_RR_MODE]);
 	flip_and_measure(data, output, rate, 1, TEST_DURATION_NS);
@@ -928,7 +933,8 @@ test_lobf(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 }
 
 static void
-test_cmrr(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
+test_cmrr(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+	  uint32_t flags)
 {
 	uint32_t result;
 	int i;
@@ -937,7 +943,8 @@ test_cmrr(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 	drmModeModeInfo mode = *igt_output_get_mode(output);
 
 	igt_info("CMRR test execution on %s, PIPE_%s with VRR range: (%u-%u) Hz\n",
-		 output->name, kmstest_pipe_name(pipe), data->range.min, data->range.max);
+		 output->name, igt_crtc_name(crtc), data->range.min,
+		 data->range.max);
 
 	for (i = 0; i < connector->count_modes; i++) {
 		if (is_cmrr_mode(&connector->modes[i])) {
@@ -963,7 +970,8 @@ test_cmrr(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 	igt_output_override_mode(output, &mode);
 
 	if (!igt_display_try_commit2(&data->display, COMMIT_ATOMIC)) {
-		prepare_test(data, output, pipe);
+		prepare_test(data, output,
+			     crtc);
 		result = flip_and_measure_cmrr(data, output, TEST_DURATION_NS * 2);
 		igt_assert_f(result > 75,
 			     "Refresh rate (%u Hz) %"PRIu64"ns: Target CMRR on threshold not reached, result was %u%%\n",
@@ -972,10 +980,8 @@ test_cmrr(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
 	}
 }
 
-static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
+static void test_cleanup(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crtc_set_prop_value(crtc,
 				    IGT_CRTC_VRR_ENABLED, false);
 
@@ -1112,9 +1118,13 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags)
 
 			igt_dynamic_f("pipe-%s-%s",
 				      igt_crtc_name(crtc), output->name)
-				test(data, crtc->pipe, output, flags);
+				test(data,
+				     crtc,
+				     output, flags);
 
-			test_cleanup(data, crtc->pipe, output);
+			test_cleanup(data,
+				     crtc,
+				     output);
 
 			break;
 		}
-- 
2.52.0


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

* [PATCH i-g-t 14/17] tests/kms_display_modes: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (12 preceding siblings ...)
  2026-02-11 16:34 ` [PATCH i-g-t 13/17] tests/kms_vrr: " Ville Syrjala
@ 2026-02-11 16:34 ` Ville Syrjala
  2026-02-11 16:34 ` [PATCH i-g-t 15/17] tests/kms_rotation_crc: " Ville Syrjala
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:34 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_display_modes.

The complication here is the use of multiple pipes/crtcs
simultaneously.

 #include "scripts/iterators.cocci"

@func@
typedef igt_crtc_t;
identifier FUNC, PIPE1, PIPE2;
parameter list[N] P;
parameter list[N2] P2;
@@
FUNC(P
-	,enum pipe PIPE1
+	,igt_crtc_t *crtc1
	,P2
-	,enum pipe PIPE2
+	,igt_crtc_t *crtc2
	,...)
{
<+...
(
- igt_crtc_for_pipe(..., PIPE1)
+ crtc1
|
- kmsetst_crtc_name(PIPE1)
+ igt_crtc_name(crtc1)
|
- PIPE1
+ crtc1->pipe
|
- igt_crtc_for_pipe(..., PIPE2)
+ crtc2
|
- kmsetst_crtc_name(PIPE2)
+ igt_crtc_name(crtc2)
|
- PIPE2
+ crtc2->pipe
)
...+>
}

@depends on func@
identifier func.FUNC;
expression PIPE1, PIPE2;
expression list[func.N] EP;
expression list[func.N2] EP2;
@@
 FUNC(EP
-	,PIPE1
+	,igt_crtc_for_pipe(display, PIPE1)
	,EP2
-	,PIPE2
+	,igt_crtc_for_pipe(display, PIPE2)
	,...)

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
typedef igt_display_t;
identifier DISPLAY;
expression E;
@@
- igt_display_t *DISPLAY = E;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_display_modes.c | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c
index f3888375c966..60585bed0218 100644
--- a/tests/kms_display_modes.c
+++ b/tests/kms_display_modes.c
@@ -72,9 +72,9 @@ static bool output_is_dp_mst(data_t *data, igt_output_t *output, int i)
 	return true;
 }
 
-static void run_extendedmode_basic(data_t *data,
-				   enum pipe pipe1, igt_output_t *output1,
-				   enum pipe pipe2, igt_output_t *output2)
+static void run_extendedmode_basic(data_t *data, igt_crtc_t *crtc1,
+				   igt_output_t *output1, igt_crtc_t *crtc2,
+				   igt_output_t *output2)
 {
 	struct igt_fb fb, fbs[2];
 	drmModeModeInfo *mode[2];
@@ -88,18 +88,18 @@ static void run_extendedmode_basic(data_t *data,
 	igt_display_reset(display);
 
 	igt_output_set_crtc(output1,
-			    igt_crtc_for_pipe(display, pipe1));
+			    crtc1);
 	igt_output_set_crtc(output2,
-			    igt_crtc_for_pipe(display, pipe2));
+			    crtc2);
 
 	mode[0] = igt_output_get_mode(output1);
 	mode[1] = igt_output_get_mode(output2);
 
 	igt_assert_f(igt_fit_modes_in_bw(display), "Unable to fit modes in bw\n");
 
-	pipe_crc[0] = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe1),
+	pipe_crc[0] = igt_crtc_crc_new(crtc1,
 				       IGT_PIPE_CRC_SOURCE_AUTO);
-	pipe_crc[1] = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe2),
+	pipe_crc[1] = igt_crtc_crc_new(crtc2,
 				       IGT_PIPE_CRC_SOURCE_AUTO);
 
 	igt_create_color_fb(data->drm_fd, mode[0]->hdisplay, mode[0]->vdisplay,
@@ -107,9 +107,9 @@ static void run_extendedmode_basic(data_t *data,
 	igt_create_color_fb(data->drm_fd, mode[1]->hdisplay, mode[1]->vdisplay,
 			    DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, 0, 0, 1, &fbs[1]);
 
-	plane[0] = igt_crtc_get_plane_type(igt_crtc_for_pipe(display, pipe1),
+	plane[0] = igt_crtc_get_plane_type(crtc1,
 					   DRM_PLANE_TYPE_PRIMARY);
-	plane[1] = igt_crtc_get_plane_type(igt_crtc_for_pipe(display, pipe2),
+	plane[1] = igt_crtc_get_plane_type(crtc2,
 					   DRM_PLANE_TYPE_PRIMARY);
 
 	igt_plane_set_fb(plane[0], &fbs[0]);
@@ -163,10 +163,10 @@ static void run_extendedmode_basic(data_t *data,
 	igt_output_set_crtc(output1, NULL);
 	igt_output_set_crtc(output2, NULL);
 
-	igt_plane_set_fb(igt_crtc_get_plane_type(igt_crtc_for_pipe(display, pipe1),
+	igt_plane_set_fb(igt_crtc_get_plane_type(crtc1,
 						 DRM_PLANE_TYPE_PRIMARY),
 			 NULL);
-	igt_plane_set_fb(igt_crtc_get_plane_type(igt_crtc_for_pipe(display, pipe2),
+	igt_plane_set_fb(igt_crtc_get_plane_type(crtc2,
 						 DRM_PLANE_TYPE_PRIMARY),
 			 NULL);
 	igt_assert_f(igt_fit_modes_in_bw(display), "Unable to fit modes in bw\n");
@@ -224,10 +224,10 @@ static void run_extendedmode_test(data_t *data) {
 						      igt_crtc_name(crtc2),
 						      igt_output_name(output2))
 						run_extendedmode_basic(data,
-								crtc->pipe,
-								output1,
-								crtc2->pipe,
-								output2);
+								       crtc,
+								       output1,
+								       crtc2,
+								       output2);
 				}
 			}
 			/*
-- 
2.52.0


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

* [PATCH i-g-t 15/17] tests/kms_rotation_crc: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (13 preceding siblings ...)
  2026-02-11 16:34 ` [PATCH i-g-t 14/17] tests/kms_display_modes: " Ville Syrjala
@ 2026-02-11 16:34 ` Ville Syrjala
  2026-02-11 16:34 ` [PATCH i-g-t 16/17] tests/kms_properties: " Ville Syrjala
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:34 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_rotation_crc.

The oddball thing here is the explicit use of PIPE_A
for some of the tests. Thus we are left with a few
igt_crtc_for_pipe() calls even after the tests. Someone
should probably review what this test actually doing and
try do something a bit more sensible.

 #include "scripts/iterators.cocci"

@func1@
typedef igt_crtc_t;
identifier FUNC, PIPE, CRTC;
parameter list[N] P;
@@
FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *CRTC
 ,...)
{
...
(
- igt_crtc_t *CRTC = igt_crtc_for_pipe(..., PIPE);
|
- igt_crtc_t *CRTC;
... when != PIPE = ...
- CRTC = igt_crtc_for_pipe(..., PIPE);
)
<... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ CRTC
|
- kmsetst_crtc_name(PIPE)
+ igt_crtc_name(CRTC)
|
- PIPE
+ CRTC->pipe
)
...>
}

@depends on func1@
identifier func1.FUNC;
expression PIPE;
expression list[func1.N] EP;
@@
 FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(&data.display, PIPE)
	,...)

@func2@
typedef igt_crtc_t;
identifier FUNC, PIPE;
parameter list[N] P;
@@
FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *crtc
 ,...)
{
<+... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmsetst_crtc_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...+>
}

@depends on func2@
identifier func2.FUNC;
expression PIPE;
expression list[func2.N] EP;
@@
FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(&data.display, PIPE)
	,...)

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
typedef igt_display_t;
identifier DISPLAY;
@@
- igt_display_t *DISPLAY = ...;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_rotation_crc.c | 42 ++++++++++++++++++++++++----------------
 1 file changed, 25 insertions(+), 17 deletions(-)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 8721a8311b8c..cd0873b3bf8d 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -292,11 +292,10 @@ static void cleanup_crtc(data_t *data)
 	igt_display_reset(display);
 }
 
-static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe,
+static void prepare_crtc(data_t *data, igt_output_t *output, igt_crtc_t *crtc,
 			 igt_plane_t *plane, bool start_crc)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 
 	cleanup_crtc(data);
 
@@ -462,13 +461,12 @@ static void prepare_fbs(data_t *data, igt_output_t *output,
 		igt_plane_set_position(plane, data->pos_x, data->pos_y);
 }
 
-static void test_single_case(data_t *data, enum pipe pipe,
+static void test_single_case(data_t *data, igt_crtc_t *crtc,
 			     igt_output_t *output, igt_plane_t *plane,
 			     enum rectangle_type rect,
 			     uint32_t format, bool test_bad_format)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crc_t crc_output;
 	int ret;
 
@@ -655,7 +653,9 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 		plane = igt_output_get_plane_type(output, plane_type);
 		igt_require(plane_rotation_requirements(data, plane));
 
-		prepare_crtc(data, output, crtc->pipe, plane, true);
+		prepare_crtc(data, output,
+			     crtc,
+			     plane, true);
 
 		for (i = 0; i < num_rectangle_types; i++) {
 			/* Unsupported on intel */
@@ -687,13 +687,17 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 					if (!test_format(data, &tested_formats, format))
 						continue;
 
-					test_single_case(data, crtc->pipe, output, plane, i,
+					test_single_case(data,
+							 crtc,
+							 output, plane, i,
 							 format, test_bad_format);
 				}
 
 				igt_vec_fini(&tested_formats);
 			} else {
-				test_single_case(data, crtc->pipe, output, plane, i,
+				test_single_case(data,
+						 crtc,
+						 output, plane, i,
 						 data->override_fmt, test_bad_format);
 			}
 		}
@@ -904,10 +908,9 @@ static bool reusecrcfromlastround(planeinfos p[2], int lastroundp1format,
  * It is left here if this test ever was wanted to be run on
  * different pipes.
  */
-static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
+static void test_multi_plane_rotation(data_t *data, igt_crtc_t *crtc)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_output_t *output;
 	igt_crc_t retcrc_sw, retcrc_hw;
 	planeinfos p[2];
@@ -1102,13 +1105,11 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
 	igt_require_f(found, "No valid pipe/output combo found.\n");
 }
 
-static void test_plane_rotation_exhaust_fences(data_t *data,
-					       enum pipe pipe,
+static void test_plane_rotation_exhaust_fences(data_t *data, igt_crtc_t *crtc,
 					       igt_output_t *output,
 					       igt_plane_t *plane)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	uint64_t modifier = I915_FORMAT_MOD_Y_TILED;
 	uint32_t format = DRM_FORMAT_XRGB8888;
 	int fd = data->gfx_fd;
@@ -1123,7 +1124,9 @@ static void test_plane_rotation_exhaust_fences(data_t *data,
 	igt_require(igt_plane_has_rotation(plane, IGT_ROTATION_0 | IGT_ROTATION_90));
 	igt_require(gem_available_fences(display->drm_fd) > 0);
 
-	prepare_crtc(data, output, crtc->pipe, plane, false);
+	prepare_crtc(data, output,
+		     crtc, plane,
+		     false);
 
 	mode = igt_output_get_mode(output);
 	w = mode->hdisplay;
@@ -1319,7 +1322,8 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 		data.planepos[1].origo = p_top | p_right;
 		data.planepos[1].x = -.4f;
 		data.planepos[1].y = .1f;
-		test_multi_plane_rotation(&data, PIPE_A);
+		test_multi_plane_rotation(&data,
+					  igt_crtc_for_pipe(&data.display, PIPE_A));
 	}
 
 	igt_describe("Rotation test on both planes by cropping left/top corner of primary plane and"
@@ -1333,7 +1337,8 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 		data.planepos[1].origo = p_top | p_right;
 		data.planepos[1].x = -.15f;
 		data.planepos[1].y = -.15f;
-		test_multi_plane_rotation(&data, PIPE_A);
+		test_multi_plane_rotation(&data,
+					  igt_crtc_for_pipe(&data.display, PIPE_A));
 	}
 
 	igt_describe("Rotation test on both planes by cropping left/bottom corner of primary plane"
@@ -1347,7 +1352,8 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 		data.planepos[1].origo = p_bottom | p_right;
 		data.planepos[1].x = -.15f;
 		data.planepos[1].y = -.20f;
-		test_multi_plane_rotation(&data, PIPE_A);
+		test_multi_plane_rotation(&data,
+					  igt_crtc_for_pipe(&data.display, PIPE_A));
 	}
 
 	/*
@@ -1365,7 +1371,9 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 		for_each_crtc_with_valid_output(&data.display, crtc, output) {
 			igt_plane_t *primary = &crtc->planes[0];
 
-			test_plane_rotation_exhaust_fences(&data, crtc->pipe, output, primary);
+			test_plane_rotation_exhaust_fences(&data,
+							   crtc,
+							   output, primary);
 			break;
 		}
 	}
-- 
2.52.0


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

* [PATCH i-g-t 16/17] tests/kms_properties: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (14 preceding siblings ...)
  2026-02-11 16:34 ` [PATCH i-g-t 15/17] tests/kms_rotation_crc: " Ville Syrjala
@ 2026-02-11 16:34 ` Ville Syrjala
  2026-02-11 16:34 ` [PATCH i-g-t 17/17] tests/kms: " Ville Syrjala
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:34 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
tests/kms_properties.

The explicit use of pipe==PIPE_NONE (now converted to
crtc==NULL) complicates this one a bit.

 #include "scripts/iterators.cocci"

@func@
typedef igt_crtc_t;
identifier FUNC, PIPE;
parameter list[N] P;
@@
FUNC(P
- ,enum pipe PIPE
+ ,igt_crtc_t *crtc
 ,...)
{
<+... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE);
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...+>
}

@depends on func@
identifier func.FUNC;
expression PIPE;
expression list[func.N] EP;
@@
FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(display, PIPE)
	,...)

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
@@
- igt_crtc_for_pipe(..., PIPE_NONE)
+ NULL

@@
igt_crtc_t *CRTC;
binary operator OP = { ==, != };
@@
- CRTC->pipe OP PIPE_NONE
+ CRTC OP NULL

@@
typedef igt_display_t;
identifier DISPLAY;
@@
- igt_display_t *DISPLAY = ...;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_properties.c | 91 ++++++++++++++++++++++++++++--------------
 1 file changed, 60 insertions(+), 31 deletions(-)

diff --git a/tests/kms_properties.c b/tests/kms_properties.c
index 34bb6ac42618..2fbcce6ad864 100644
--- a/tests/kms_properties.c
+++ b/tests/kms_properties.c
@@ -73,25 +73,27 @@ struct additional_test {
 			  uint32_t prop_id, uint64_t prop_value, bool atomic);
 };
 
-static void prepare_pipe(igt_display_t *display, enum pipe pipe, igt_output_t *output, struct igt_fb *fb)
+static void prepare_pipe(igt_display_t *display, igt_crtc_t *crtc,
+			 igt_output_t *output, struct igt_fb *fb)
 {
 	drmModeModeInfo *mode = igt_output_get_mode(output);
 
 	igt_create_pattern_fb(display->drm_fd, mode->hdisplay, mode->vdisplay,
 			      DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, fb);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 
 	igt_plane_set_fb(igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY), fb);
 
 	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 }
 
-static void cleanup_pipe(igt_display_t *display, enum pipe pipe, igt_output_t *output, struct igt_fb *fb)
+static void cleanup_pipe(igt_display_t *display, igt_crtc_t *crtc,
+			 igt_output_t *output, struct igt_fb *fb)
 {
 	igt_plane_t *plane;
 
-	for_each_plane_on_pipe(display, pipe, plane)
+	for_each_plane_on_pipe(display, crtc->pipe, plane)
 		igt_plane_set_fb(plane, NULL);
 
 	igt_output_set_crtc(output, NULL);
@@ -231,7 +233,9 @@ static void test_properties(int fd, uint32_t type, uint32_t id, bool atomic, boo
 	}
 }
 
-static void run_colorop_property_tests(igt_display_t *display, enum pipe pipe, igt_output_t *output, bool atomic)
+static void run_colorop_property_tests(igt_display_t *display,
+				       igt_crtc_t *crtc, igt_output_t *output,
+				       bool atomic)
 {
 	struct igt_fb fb;
 	igt_plane_t *plane;
@@ -239,11 +243,13 @@ static void run_colorop_property_tests(igt_display_t *display, enum pipe pipe, i
 	int i;
 	int colorop_id = 0;
 
-	prepare_pipe(display, pipe, output, &fb);
+	prepare_pipe(display, crtc, output,
+		     &fb);
 
-	for_each_plane_on_pipe(display, pipe, plane) {
+	for_each_plane_on_pipe(display, crtc->pipe, plane) {
 		igt_info("Testing colorop properties on plane %s.#%d-%s (output: %s)\n",
-			 kmstest_pipe_name(pipe), plane->index, kmstest_plane_type_name(plane->type), output->name);
+			 igt_crtc_name(crtc), plane->index,
+			 kmstest_plane_type_name(plane->type), output->name);
 
 		/* iterate over all color pipelines on plane */
 		for (i = 0; i < plane->num_color_pipelines; ++i) {
@@ -251,7 +257,8 @@ static void run_colorop_property_tests(igt_display_t *display, enum pipe pipe, i
 			colorop = plane->color_pipelines[i];
 			while (colorop) {
 				igt_info("Testing colorop properties on %s.#%d.#%d-%s (output: %s)\n",
-					  kmstest_pipe_name(pipe), plane->index, colorop->id,
+					  igt_crtc_name(crtc), plane->index,
+					  colorop->id,
 					  kmstest_plane_type_name(plane->type), output->name);
 				test_properties(display->drm_fd, DRM_MODE_OBJECT_COLOROP, colorop->id,
 						atomic, display->has_plane_color_pipeline);
@@ -263,54 +270,69 @@ static void run_colorop_property_tests(igt_display_t *display, enum pipe pipe, i
 		}
 	}
 
-	cleanup_pipe(display, pipe, output, &fb);
+	cleanup_pipe(display, crtc, output,
+		     &fb);
 }
 
-static void run_plane_property_tests(igt_display_t *display, enum pipe pipe, igt_output_t *output, bool atomic)
+static void run_plane_property_tests(igt_display_t *display, igt_crtc_t *crtc,
+				     igt_output_t *output, bool atomic)
 {
 	struct igt_fb fb;
 	igt_plane_t *plane;
 
-	prepare_pipe(display, pipe, output, &fb);
+	prepare_pipe(display, crtc, output,
+		     &fb);
 
-	for_each_plane_on_pipe(display, pipe, plane) {
+	for_each_plane_on_pipe(display, crtc->pipe, plane) {
 		igt_info("Testing plane properties on %s.#%d-%s (output: %s)\n",
-			 kmstest_pipe_name(pipe), plane->index, kmstest_plane_type_name(plane->type), output->name);
+			 igt_crtc_name(crtc), plane->index,
+			 kmstest_plane_type_name(plane->type), output->name);
 
 		test_properties(display->drm_fd, DRM_MODE_OBJECT_PLANE, plane->drm_plane->plane_id, atomic, display->has_plane_color_pipeline);
 	}
 
-	cleanup_pipe(display, pipe, output, &fb);
+	cleanup_pipe(display, crtc, output,
+		     &fb);
 }
 
-static void run_crtc_property_tests(igt_display_t *display, enum pipe pipe, igt_output_t *output, bool atomic)
+static void run_crtc_property_tests(igt_display_t *display, igt_crtc_t *crtc,
+				    igt_output_t *output, bool atomic)
 {
 	struct igt_fb fb;
 
-	prepare_pipe(display, pipe, output, &fb);
+	prepare_pipe(display, crtc, output,
+		     &fb);
 
-	igt_info("Testing crtc properties on %s (output: %s)\n", kmstest_pipe_name(pipe), output->name);
+	igt_info("Testing crtc properties on %s (output: %s)\n",
+		 igt_crtc_name(crtc), output->name);
 
 	test_properties(display->drm_fd, DRM_MODE_OBJECT_CRTC,
-			igt_crtc_for_pipe(display, pipe)->crtc_id, atomic,
+			crtc->crtc_id,
+			atomic,
 			false);
 
-	cleanup_pipe(display, pipe, output, &fb);
+	cleanup_pipe(display, crtc, output,
+		     &fb);
 }
 
-static void run_connector_property_tests(igt_display_t *display, enum pipe pipe, igt_output_t *output, bool atomic)
+static void run_connector_property_tests(igt_display_t *display,
+					 igt_crtc_t *crtc,
+					 igt_output_t *output, bool atomic)
 {
 	struct igt_fb fb;
 
-	if (pipe != PIPE_NONE)
-		prepare_pipe(display, pipe, output, &fb);
+	if (crtc != NULL)
+		prepare_pipe(display, crtc,
+			     output, &fb);
 
-	igt_info("Testing connector properties on output %s (pipe: %s)\n", output->name, kmstest_pipe_name(pipe));
+	igt_info("Testing connector properties on output %s (pipe: %s)\n", output->name,
+		 igt_crtc_name(crtc));
 
 	test_properties(display->drm_fd, DRM_MODE_OBJECT_CONNECTOR, output->id, atomic, false);
 
-	if (pipe != PIPE_NONE)
-		cleanup_pipe(display, pipe, output, &fb);
+	if (crtc != NULL)
+		cleanup_pipe(display, crtc,
+			     output, &fb);
 }
 
 static void colorop_properties(igt_display_t *display, bool atomic)
@@ -338,7 +360,8 @@ static void colorop_properties(igt_display_t *display, bool atomic)
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
 				run_colorop_property_tests(display,
-							   crtc->pipe, output,
+							   crtc,
+							   output,
 							   atomic);
 			}
 		}
@@ -362,7 +385,9 @@ static void plane_properties(igt_display_t *display, bool atomic)
 
 		igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 			      igt_output_name(output)) {
-			run_plane_property_tests(display, crtc->pipe, output,
+			run_plane_property_tests(display,
+						 crtc,
+						 output,
 						 atomic);
 		}
 	}
@@ -383,7 +408,9 @@ static void crtc_properties(igt_display_t *display, bool atomic)
 
 		igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 			      igt_output_name(output)) {
-			run_crtc_property_tests(display, crtc->pipe, output,
+			run_crtc_property_tests(display,
+						crtc,
+						output,
 						atomic);
 		}
 	}
@@ -410,7 +437,7 @@ static void connector_properties(igt_display_t *display, bool atomic)
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
 				run_connector_property_tests(display,
-							     crtc->pipe,
+							     crtc,
 							     output, atomic);
 			}
 
@@ -422,7 +449,9 @@ static void connector_properties(igt_display_t *display, bool atomic)
 		igt_display_reset(display);
 
 		igt_dynamic_f("pipe-None-%s", igt_output_name(output))
-			run_connector_property_tests(display, PIPE_NONE, output, atomic);
+			run_connector_property_tests(display,
+						     NULL,
+						     output, atomic);
 
 	}
 }
-- 
2.52.0


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

* [PATCH i-g-t 17/17] tests/kms: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (15 preceding siblings ...)
  2026-02-11 16:34 ` [PATCH i-g-t 16/17] tests/kms_properties: " Ville Syrjala
@ 2026-02-11 16:34 ` Ville Syrjala
  2026-02-11 17:35 ` ✗ Xe.CI.BAT: failure for " Patchwork
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Ville Syrjala @ 2026-02-11 16:34 UTC (permalink / raw)
  To: igt-dev

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

Convert the use of enum pipe to igt_crtc_t in
various kms tests.

These are all pretty straightforward conversions.

 #include "scripts/iterators.cocci"

@func1@
typedef igt_output_t;
typedef igt_crtc_t;
identifier FUNC, PIPE, CRTC;
parameter list[N] P;
@@
FUNC(P
-	,enum pipe PIPE
+	,igt_crtc_t *CRTC
	,...)
{
...
(
- igt_crtc_t *CRTC = igt_crtc_for_pipe(..., PIPE);
|
- igt_crtc_t *CRTC;
... when != PIPE = ...
- CRTC = igt_crtc_for_pipe(..., PIPE);
)
<... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ CRTC
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(CRTC)
|
- PIPE
+ CRTC->pipe
)
...>
}

@depends on func1@
identifier func1.FUNC;
expression list[func1.N] EP;
expression PIPE;
@@
FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(display, PIPE)
	,...)

@func2@
typedef igt_crtc_t;
identifier FUNC, PIPE;
parameter list[N] P;
@@
FUNC(P
-	,enum pipe PIPE
+	,igt_crtc_t *crtc
	,...)
{
<+... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...+>
}

@depends on func2@
identifier func2.FUNC;
expression list[func2.N] EP;
expression PIPE;
@@
FUNC(EP
-	,PIPE
+	,igt_crtc_for_pipe(display, PIPE)
	,...)

@@
igt_crtc_t *CRTC;
@@
- igt_crtc_for_pipe(..., CRTC->pipe)
+ CRTC

@@
typedef igt_display_t;
identifier DISPLAY;
@@
- igt_display_t *DISPLAY = ...;
... when != DISPLAY

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/amdgpu/amd_freesync_video_mode.c |  15 +--
 tests/intel/kms_busy.c                 |  80 +++++++------
 tests/intel/kms_fence_pin_leak.c       |   7 +-
 tests/intel/kms_flip_scaled_crc.c      |  36 +++---
 tests/kms_atomic.c                     | 151 ++++++++++++++++---------
 tests/kms_atomic_interruptible.c       |  57 ++++++----
 tests/kms_dither.c                     |  25 ++--
 tests/kms_panel_fitting.c              |  40 ++++---
 tests/kms_pipe_crc_basic.c             |  59 +++++-----
 tests/kms_rmfb.c                       |   8 +-
 tests/kms_scaling_modes.c              |   8 +-
 tests/kms_universal_plane.c            |  81 +++++++------
 12 files changed, 327 insertions(+), 240 deletions(-)

diff --git a/tests/amdgpu/amd_freesync_video_mode.c b/tests/amdgpu/amd_freesync_video_mode.c
index 31c842ee8917..3a82464e8d69 100644
--- a/tests/amdgpu/amd_freesync_video_mode.c
+++ b/tests/amdgpu/amd_freesync_video_mode.c
@@ -546,10 +546,8 @@ static bool has_vrr(igt_output_t *output)
 }
 
 /* Toggles variable refresh rate on the pipe. */
-static void set_vrr_on_pipe(data_t *data, enum pipe pipe, bool enabled)
+static void set_vrr_on_pipe(data_t *data, igt_crtc_t *crtc, bool enabled)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crtc_set_prop_value(crtc,
 				    IGT_CRTC_VRR_ENABLED,
 				    enabled);
@@ -772,7 +770,8 @@ static void finish_test(data_t *data, igt_output_t *output)
 }
 
 static void
-mode_transition(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t scene)
+mode_transition(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+		uint32_t scene)
 {
 	int ret;
 	uint32_t result;
@@ -815,7 +814,7 @@ mode_transition(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t sce
 	igt_info("stage-1: fps:%d\n", mode_start->vrefresh);
 	prepare_test(data, output, mode_start);
 	interval = nsec_per_frame(mode_start->vrefresh);
-	set_vrr_on_pipe(data, pipe, true);
+	set_vrr_on_pipe(data, crtc, true);
 	result = flip_and_measure(data, output, interval, TEST_DURATION_NS, ANIM_TYPE_SMPTE);
 
 	igt_info("stage-2: simple animation as video playback fps:%d\n", mode_playback->vrefresh);
@@ -825,7 +824,7 @@ mode_transition(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t sce
 	result = flip_and_measure(data, output, interval, 2 * NSECS_PER_SEC, ANIM_TYPE_CIRCLE_WAVE);
 	result = flip_and_measure(data, output, interval, TEST_DURATION_NS, ANIM_TYPE_CIRCLE_WAVE);
 	igt_assert_f(result > 75, "Target refresh rate not meet 75%% (result=%d%%\n", result);
-	set_vrr_on_pipe(data, pipe, false);
+	set_vrr_on_pipe(data, crtc, false);
 
 	finish_test(data, output);
 }
@@ -854,7 +853,9 @@ run_test(data_t *data, uint32_t scene)
 				igt_dynamic_f("pipe-%s-%s",
 					      igt_crtc_name(crtc),
 					      output->name)
-				mode_transition(data, crtc->pipe, output,
+				mode_transition(data,
+						crtc,
+						output,
 						scene);
 				found = true;
 				break;
diff --git a/tests/intel/kms_busy.c b/tests/intel/kms_busy.c
index dd65585d41a2..b109766fc4f0 100644
--- a/tests/intel/kms_busy.c
+++ b/tests/intel/kms_busy.c
@@ -73,13 +73,13 @@ IGT_TEST_DESCRIPTION("Basic check of KMS ABI with busy framebuffers.");
 static bool all_pipes = false;
 
 static void
-set_fb_on_crtc(igt_display_t *dpy, enum pipe pipe,
+set_fb_on_crtc(igt_display_t *dpy, igt_crtc_t *crtc,
 	       igt_output_t *output, struct igt_fb *fb)
 {
 	drmModeModeInfoPtr mode;
 	igt_plane_t *primary;
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(dpy, pipe));
+	igt_output_set_crtc(output, crtc);
 	mode = igt_output_get_mode(output);
 
 	igt_create_pattern_fb(dpy->drm_fd, mode->hdisplay, mode->vdisplay,
@@ -106,7 +106,7 @@ static void do_cleanup_display(igt_display_t *dpy)
 	igt_display_commit2(dpy, dpy->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 }
 
-static void flip_to_fb(igt_display_t *dpy, enum pipe pipe,
+static void flip_to_fb(igt_display_t *dpy, igt_crtc_t *crtc,
 		       igt_output_t *output,
 		       struct igt_fb *fb, int timeout,
 		       const char *name, bool modeset)
@@ -130,7 +130,7 @@ static void flip_to_fb(igt_display_t *dpy, enum pipe pipe,
 		igt_assert(gem_bo_busy(dpy->drm_fd, fb->gem_handle));
 		if (!modeset)
 			do_or_die(drmModePageFlip(dpy->drm_fd,
-						  igt_crtc_for_pipe(dpy, pipe)->crtc_id, fb->fb_id,
+						  crtc->crtc_id, fb->fb_id,
 						  DRM_MODE_PAGE_FLIP_EVENT, fb));
 		else {
 			igt_plane_set_fb(igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY), fb);
@@ -161,10 +161,10 @@ static void flip_to_fb(igt_display_t *dpy, enum pipe pipe,
 		gem_quiescent_gpu(dpy->drm_fd);
 
 		/* Clear old mode blob. */
-		igt_crtc_refresh(igt_crtc_for_pipe(dpy, pipe), true);
+		igt_crtc_refresh(crtc, true);
 
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(dpy, pipe));
+				    crtc);
 		igt_display_commit2(dpy, COMMIT_ATOMIC);
 	}
 
@@ -172,7 +172,7 @@ static void flip_to_fb(igt_display_t *dpy, enum pipe pipe,
 	put_ahnd(ahnd);
 }
 
-static void test_flip(igt_display_t *dpy, enum pipe pipe,
+static void test_flip(igt_display_t *dpy, igt_crtc_t *crtc,
 		      igt_output_t *output, bool modeset)
 {
 	struct igt_fb fb[2];
@@ -184,11 +184,12 @@ static void test_flip(igt_display_t *dpy, enum pipe pipe,
 		igt_require(dpy->is_atomic);
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
 	igt_display_reset(dpy);
 
-	set_fb_on_crtc(dpy, pipe, output, &fb[0]);
+	set_fb_on_crtc(dpy, crtc, output,
+		       &fb[0]);
 	igt_display_commit2(dpy, COMMIT_LEGACY);
 
 	igt_create_pattern_fb(dpy->drm_fd,
@@ -205,7 +206,7 @@ static void test_flip(igt_display_t *dpy, enum pipe pipe,
 		struct drm_event_vblank ev;
 
 		do_or_die(drmModePageFlip(dpy->drm_fd,
-					  igt_crtc_for_pipe(dpy, pipe)->crtc_id,
+					  crtc->crtc_id,
 					  fb[warmup[i]].fb_id,
 					  DRM_MODE_PAGE_FLIP_EVENT,
 					  &fb[warmup[i]]));
@@ -215,10 +216,12 @@ static void test_flip(igt_display_t *dpy, enum pipe pipe,
 	igt_info("Using timeout of %dms\n", timeout);
 
 	/* Make the frontbuffer busy and try to flip to itself */
-	flip_to_fb(dpy, pipe, output, &fb[0], timeout, "fb[0]", modeset);
+	flip_to_fb(dpy, crtc, output,
+		   &fb[0], timeout, "fb[0]", modeset);
 
 	/* Repeat for flip to second buffer */
-	flip_to_fb(dpy, pipe, output, &fb[1], timeout, "fb[1]", modeset);
+	flip_to_fb(dpy, crtc, output,
+		   &fb[1], timeout, "fb[1]", modeset);
 
 	do_cleanup_display(dpy);
 	igt_remove_fb(dpy->drm_fd, &fb[1]);
@@ -264,19 +267,20 @@ static void test_atomic_commit_hang(igt_display_t *dpy, igt_plane_t *primary,
 	put_ahnd(ahnd);
 }
 
-static void test_hang(igt_display_t *dpy,
-		      enum pipe pipe, igt_output_t *output,
+static void test_hang(igt_display_t *dpy, igt_crtc_t *crtc,
+		      igt_output_t *output,
 		      bool modeset, bool hang_newfb)
 {
 	struct igt_fb fb[2];
 	igt_plane_t *primary;
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
 	igt_display_reset(dpy);
 
-	set_fb_on_crtc(dpy, pipe, output, &fb[0]);
+	set_fb_on_crtc(dpy, crtc, output,
+		       &fb[0]);
 	igt_display_commit2(dpy, COMMIT_ATOMIC);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
@@ -295,7 +299,7 @@ static void test_hang(igt_display_t *dpy,
 		/* Test modeset enable with hang */
 		igt_plane_set_fb(primary, &fb[0]);
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(dpy, pipe));
+				    crtc);
 		test_atomic_commit_hang(dpy, primary, &fb[!hang_newfb]);
 	} else {
 		/*
@@ -314,7 +318,7 @@ static void test_hang(igt_display_t *dpy,
 
 static void
 test_pageflip_modeset_hang(igt_display_t *dpy,
-			   igt_output_t *output, enum pipe pipe)
+			   igt_output_t *output, igt_crtc_t *crtc)
 {
 	struct igt_fb fb;
 	struct drm_event_vblank ev;
@@ -323,11 +327,12 @@ test_pageflip_modeset_hang(igt_display_t *dpy,
 	uint64_t ahnd = get_reloc_ahnd(dpy->drm_fd, 0);
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
 	igt_display_reset(dpy);
 
-	set_fb_on_crtc(dpy, pipe, output, &fb);
+	set_fb_on_crtc(dpy, crtc, output,
+		       &fb);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
 	igt_display_commit2(dpy, dpy->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
@@ -337,7 +342,7 @@ test_pageflip_modeset_hang(igt_display_t *dpy,
 			 .dependency = fb.gem_handle,
 			 .flags = IGT_SPIN_NO_PREEMPTION);
 
-	do_or_die(drmModePageFlip(dpy->drm_fd, igt_crtc_for_pipe(dpy, pipe)->crtc_id, fb.fb_id, DRM_MODE_PAGE_FLIP_EVENT, &fb));
+	do_or_die(drmModePageFlip(dpy->drm_fd, crtc->crtc_id, fb.fb_id, DRM_MODE_PAGE_FLIP_EVENT, &fb));
 
 	/* Kill crtc with hung fb */
 	igt_plane_set_fb(primary, NULL);
@@ -353,13 +358,13 @@ test_pageflip_modeset_hang(igt_display_t *dpy,
 
 static bool
 pipe_output_combo_valid(igt_display_t *dpy,
-			igt_output_t *output, enum pipe pipe)
+			igt_output_t *output, igt_crtc_t *crtc)
 {
 	bool ret = true;
 
 	igt_display_reset(dpy);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(dpy, pipe));
+	igt_output_set_crtc(output, crtc);
 	if (!intel_pipe_output_combo_valid(dpy))
 		ret = false;
 	igt_output_set_crtc(output, NULL);
@@ -455,13 +460,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Test for basic check of KMS ABI with busy framebuffers.");
 	igt_subtest_with_dynamic("basic") { /* just run on the first pipe */
 		for_each_crtc_with_single_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, output, crtc->pipe))
+			if (!pipe_output_combo_valid(&display, output, crtc))
 				continue;
 
 			igt_dynamic("flip")
-				test_flip(&display, crtc->pipe, output, false);
+				test_flip(&display,
+					  crtc,
+					  output, false);
 			igt_dynamic("modeset")
-				test_flip(&display, crtc->pipe, output, true);
+				test_flip(&display,
+					  crtc,
+					  output, true);
 			break;
 		}
 	}
@@ -471,7 +480,7 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		errno = 0;
 
 		for_each_crtc_with_single_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, output, crtc->pipe))
+			if (!pipe_output_combo_valid(&display, output, crtc))
 				continue;
 
 			if (!all_pipes && crtc->pipe != active_pipes[0] &&
@@ -479,9 +488,13 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 				continue;
 
 			igt_dynamic_f("flip-pipe-%s", igt_crtc_name(crtc))
-				test_flip(&display, crtc->pipe, output, false);
+				test_flip(&display,
+					  crtc,
+					  output, false);
 			igt_dynamic_f("modeset-pipe-%s", igt_crtc_name(crtc))
-				test_flip(&display, crtc->pipe, output, true);
+				test_flip(&display,
+					  crtc,
+					  output, true);
 		}
 
 		igt_disallow_hang(display.drm_fd, hang);
@@ -492,7 +505,7 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		errno = 0;
 
 		for_each_crtc_with_single_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, output, crtc->pipe))
+			if (!pipe_output_combo_valid(&display, output, crtc))
 				continue;
 
 			if (!all_pipes && crtc->pipe != active_pipes[0] &&
@@ -501,7 +514,7 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 
 			igt_dynamic_f("pipe-%s", igt_crtc_name(crtc))
 				test_pageflip_modeset_hang(&display, output,
-							   crtc->pipe);
+							   crtc);
 		}
 
 		igt_disallow_hang(display.drm_fd, hang);
@@ -527,7 +540,7 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 
 			for_each_crtc_with_single_output(&display, crtc,
 							 output) {
-				if (!pipe_output_combo_valid(&display, output, crtc->pipe))
+				if (!pipe_output_combo_valid(&display, output, crtc))
 					continue;
 
 				if (!all_pipes && crtc->pipe != active_pipes[0] &&
@@ -538,7 +551,8 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 					if (tests[i].reset)
 						igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 1);
 
-					test_hang(&display, crtc->pipe,
+					test_hang(&display,
+						  crtc,
 						  output,
 						  tests[i].modeset, tests[i].hang_newfb);
 
diff --git a/tests/intel/kms_fence_pin_leak.c b/tests/intel/kms_fence_pin_leak.c
index 3d9ce4fc1563..aad6550f7498 100644
--- a/tests/intel/kms_fence_pin_leak.c
+++ b/tests/intel/kms_fence_pin_leak.c
@@ -130,10 +130,10 @@ static void free_fence_objs(data_t *data)
 		intel_buf_destroy(data->bos[i]);
 }
 
-static void run_single_test(data_t *data, enum pipe pipe, igt_output_t *output)
+static void run_single_test(data_t *data, igt_crtc_t *crtc,
+			    igt_output_t *output)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
 	struct igt_fb fb[2];
@@ -221,7 +221,8 @@ static void run_test(data_t *data)
 		if (!intel_pipe_output_combo_valid(display))
 			continue;
 
-		run_single_test(data, crtc->pipe, output);
+		run_single_test(data, crtc,
+				output);
 
 		return; /* one time ought to be enough */
 	}
diff --git a/tests/intel/kms_flip_scaled_crc.c b/tests/intel/kms_flip_scaled_crc.c
index 0dc594f45fe9..9a0b99e46ddd 100644
--- a/tests/intel/kms_flip_scaled_crc.c
+++ b/tests/intel/kms_flip_scaled_crc.c
@@ -680,10 +680,8 @@ static void free_fbs(data_t *data)
 	igt_remove_fb(data->drm_fd, &data->big_fb);
 }
 
-static void set_lut(data_t *data, enum pipe pipe)
+static void set_lut(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	struct drm_color_lut *lut;
 	drmModeCrtc *drm_crtc;
 	int i, lut_size;
@@ -713,20 +711,15 @@ static void set_lut(data_t *data, enum pipe pipe)
 	free(lut);
 }
 
-static void clear_lut(data_t *data, enum pipe pipe)
+static void clear_lut(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
-
 	igt_crtc_set_prop_value(crtc, IGT_CRTC_GAMMA_LUT, 0);
 }
 
 static void test_flip_to_scaled(data_t *data, uint32_t index,
-				enum pipe pipe, igt_output_t *output,
+				igt_crtc_t *crtc, igt_output_t *output,
 				drmModeModeInfoPtr modetoset, int flags)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary;
 	igt_crc_t small_crc, big_crc;
 	struct drm_event_vblank ev;
@@ -778,7 +771,7 @@ static void test_flip_to_scaled(data_t *data, uint32_t index,
 		      data->big_fb.modifier), "No requested format/modifier on pipe %s\n",
 		      igt_crtc_name(crtc));
 
-	set_lut(data, crtc->pipe);
+	set_lut(data, crtc);
 	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
 	if (data->pipe_crc) {
@@ -833,7 +826,7 @@ static void test_flip_to_scaled(data_t *data, uint32_t index,
 	igt_pipe_crc_free(data->pipe_crc);
 	data->pipe_crc = NULL;
 
-	clear_lut(data, crtc->pipe);
+	clear_lut(data, crtc);
 
 	modetoset = NULL;
 	igt_output_set_crtc(output, NULL);
@@ -860,10 +853,11 @@ static drmModeModeInfoPtr find_mode(data_t *data, igt_output_t *output)
 	return modetoset;
 }
 
-static void run_tests(data_t *data, uint32_t index, enum pipe pipe,
+static void run_tests(data_t *data, uint32_t index, igt_crtc_t *crtc,
 		      igt_output_t * output, drmModeModeInfoPtr modetoset)
 {
-	test_flip_to_scaled(data, index, pipe, output, modetoset, 0);
+	test_flip_to_scaled(data, index, crtc,
+			    output, modetoset, 0);
 
 	/*
 	 * test Nearest Neighbor filter. For scaler indexes see
@@ -871,7 +865,9 @@ static void run_tests(data_t *data, uint32_t index, enum pipe pipe,
 	 * Platform scaling filter property is supported only gen >= 11.
 	 */
 	if (data->gen >= 11)
-		test_flip_to_scaled(data, index, pipe, output, modetoset, 1);
+		test_flip_to_scaled(data, index,
+				    crtc, output,
+				    modetoset, 1);
 }
 
 int igt_main()
@@ -932,8 +928,9 @@ int igt_main()
 						found = true;
 						igt_dynamic_f("pipe-%s-valid-mode",
 							      igt_crtc_name(crtc))
-							run_tests(&data, index,
-								  crtc->pipe,
+							run_tests(&data,
+								  index,
+								  crtc,
 								  output,
 								  modetoset);
 						break;
@@ -953,8 +950,9 @@ int igt_main()
 						modetoset = NULL;
 						igt_dynamic_f("pipe-%s-default-mode",
 							      igt_crtc_name(crtc))
-							run_tests(&data, index,
-								  crtc->pipe,
+							run_tests(&data,
+								  index,
+								  crtc,
 								  output,
 								  modetoset);
 					}
diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
index 5b3cc4a94c99..5e6d1123874e 100644
--- a/tests/kms_atomic.c
+++ b/tests/kms_atomic.c
@@ -438,10 +438,9 @@ plane_primary_overlay_mutable_zpos(data_t *data, igt_output_t *output, igt_plane
 }
 
 static void
-plane_immutable_zpos(data_t *data, igt_output_t *output, enum pipe pipe, int n_planes)
+plane_immutable_zpos(data_t *data, igt_output_t *output, igt_crtc_t *crtc,
+		     int n_planes)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	cairo_t *cr;
 	struct igt_fb fb_ref;
 	drmModeModeInfo *mode;
@@ -671,10 +670,9 @@ static void plane_primary(data_t *data)
  * Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches the
  * free-standing state objects and nothing else.
  */
-static void test_only(data_t *data, igt_output_t *output, enum pipe pipe, uint32_t format)
+static void test_only(data_t *data, igt_output_t *output, igt_crtc_t *crtc,
+		      uint32_t format)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	struct igt_fb fb;
 	uint64_t old_plane_values[IGT_NUM_PLANE_PROPS], old_crtc_values[IGT_NUM_CRTC_PROPS];
 	drmModeModeInfo *mode = igt_output_get_mode(output);
@@ -1382,10 +1380,8 @@ static void atomic_plane_damage(data_t *data)
 	igt_remove_fb(data->drm_fd, &fb_2);
 }
 
-static void atomic_setup(data_t *data, enum pipe pipe, igt_output_t *output)
+static void atomic_setup(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 	igt_display_reset(&data->display);
 	igt_output_set_crtc(output, crtc);
@@ -1406,11 +1402,11 @@ static void atomic_setup(data_t *data, enum pipe pipe, igt_output_t *output)
 		    ATOMIC_RELAX_NONE);
 }
 
-static void atomic_clear(data_t *data, enum pipe pipe, igt_output_t *output)
+static void atomic_clear(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
 	igt_plane_t *plane;
 
-	for_each_plane_on_pipe(&data->display, pipe, plane) {
+	for_each_plane_on_pipe(&data->display, crtc->pipe, plane) {
 		igt_plane_set_fb(plane, NULL);
 		igt_plane_set_position(plane, 0, 0);
 	}
@@ -1428,14 +1424,14 @@ static bool has_mutable_zpos(igt_plane_t *plane)
 }
 
 static bool
-pipe_output_combo_valid(igt_display_t *display,
-			enum pipe pipe, igt_output_t *output)
+pipe_output_combo_valid(igt_display_t *display, igt_crtc_t *crtc,
+			igt_output_t *output)
 {
 	bool ret = true;
 
 	igt_display_reset(display);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	if (!intel_pipe_output_combo_valid(display))
 		ret = false;
 	igt_output_set_crtc(output, NULL);
@@ -1482,15 +1478,19 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 							DRM_PLANE_TYPE_OVERLAY);
 			uint32_t format = plane_get_igt_format(overlay);
 
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			if (!overlay || !format)
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				plane_overlay(&data, output, overlay, format);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1501,13 +1501,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		     "the legacy and atomic interfaces.");
 	igt_subtest_with_dynamic("plane-primary-legacy") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				plane_primary(&data);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1522,10 +1526,12 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 				igt_crtc_get_plane_type(crtc,
 							DRM_PLANE_TYPE_OVERLAY);
 
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 
-			atomic_setup(&data, crtc->pipe, output);
+			atomic_setup(&data,
+				     crtc,
+				     output);
 			if (!overlay)
 				continue;
 			if (!has_mutable_zpos(data.primary) || !has_mutable_zpos(overlay))
@@ -1537,7 +1543,9 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 				      igt_output_name(output)) {
 				plane_primary_overlay_mutable_zpos(&data, output, overlay,
 								   DRM_FORMAT_ARGB8888, DRM_FORMAT_ARGB1555);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1550,16 +1558,21 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
 			int n_planes = crtc->n_planes;
 
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			if (n_planes < 2)
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				plane_immutable_zpos(&data, output,
-						     crtc->pipe, n_planes);
-				atomic_clear(&data, crtc->pipe, output);
+						     crtc,
+						     n_planes);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1572,18 +1585,24 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
 			uint32_t format;
 
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 
-			atomic_setup(&data, crtc->pipe, output);
+			atomic_setup(&data,
+				     crtc,
+				     output);
 			format = plane_get_igt_format(data.primary);
 
 			if (!format)
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_clear(&data, crtc->pipe, output);
-				test_only(&data, output, crtc->pipe, format);
+				atomic_clear(&data,
+					     crtc,
+					     output);
+				test_only(&data, output,
+					  crtc,
+					  format);
 			}
 			if (!all_pipes)
 				break;
@@ -1598,15 +1617,19 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 				igt_crtc_get_plane_type(crtc,
 							DRM_PLANE_TYPE_CURSOR);
 
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			if (!cursor)
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				plane_cursor(&data, output, cursor);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1616,13 +1639,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Test error handling when invalid plane parameters are passed");
 	igt_subtest_with_dynamic("plane-invalid-params") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				plane_invalid_params(&data, output);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1632,13 +1659,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Test error handling when invalid plane fence parameters are passed");
 	igt_subtest_with_dynamic("plane-invalid-params-fence") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				plane_invalid_params_fence(&data, output);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1648,13 +1679,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Test error handling when invalid crtc parameters are passed");
 	igt_subtest_with_dynamic("crtc-invalid-params") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				crtc_invalid_params(&data, output);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1664,13 +1699,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Test error handling when invalid crtc fence parameters are passed");
 	igt_subtest_with_dynamic("crtc-invalid-params-fence") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				crtc_invalid_params_fence(&data, output);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1682,13 +1721,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		     "allow us to create.");
 	igt_subtest_with_dynamic("atomic-invalid-params") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
-				atomic_setup(&data, crtc->pipe, output);
+				atomic_setup(&data,
+					     crtc,
+					     output);
 				atomic_invalid_params(&data, output);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
@@ -1698,17 +1741,21 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Simple test cases to use FB_DAMAGE_CLIPS plane property");
 	igt_subtest_with_dynamic("atomic-plane-damage") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 
-			atomic_setup(&data, crtc->pipe, output);
+			atomic_setup(&data,
+				     crtc,
+				     output);
 
 			if (!igt_plane_has_prop(data.primary, IGT_PLANE_FB_DAMAGE_CLIPS))
 				continue;
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
 				atomic_plane_damage(&data);
-				atomic_clear(&data, crtc->pipe, output);
+				atomic_clear(&data,
+					     crtc,
+					     output);
 			}
 			if (!all_pipes)
 				break;
diff --git a/tests/kms_atomic_interruptible.c b/tests/kms_atomic_interruptible.c
index 4b29a196d807..b9d36ba54527 100644
--- a/tests/kms_atomic_interruptible.c
+++ b/tests/kms_atomic_interruptible.c
@@ -111,7 +111,8 @@ static drmEventContext drm_events = {
 	.page_flip_handler = ev_page_flip
 };
 
-static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t *output,
+static void run_plane_test(igt_display_t *display, igt_crtc_t *crtc,
+			   igt_output_t *output,
 			   enum plane_test_type test_type, unsigned plane_type)
 {
 	drmModeModeInfo *mode;
@@ -120,7 +121,7 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 	int block;
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(pipe), igt_output_name(output));
+		 igt_crtc_name(crtc), igt_output_name(output));
 
 	/*
 	 * Make sure we start with everything disabled to force a real modeset.
@@ -130,7 +131,7 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 	igt_display_reset(display);
 	igt_display_commit2(display, COMMIT_ATOMIC);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	plane = igt_output_get_plane_type(output, plane_type);
@@ -297,7 +298,7 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 
 	/* The mode is unset by the forked helper, force a refresh here */
 	if (test_type == test_legacy_modeset || test_type == test_atomic_modeset)
-		igt_crtc_refresh(igt_crtc_for_pipe(display, pipe), true);
+		igt_crtc_refresh(crtc, true);
 
 	igt_plane_set_fb(plane, NULL);
 	igt_plane_set_fb(primary, NULL);
@@ -306,14 +307,14 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 	igt_remove_fb(display->drm_fd, &fb);
 }
 
-static bool pipe_output_combo_valid(igt_display_t *display,
-				    enum pipe pipe, igt_output_t *output)
+static bool pipe_output_combo_valid(igt_display_t *display, igt_crtc_t *crtc,
+				    igt_output_t *output)
 {
 	bool ret = true;
 
 	igt_display_reset(display);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	if (!intel_pipe_output_combo_valid(display))
 		ret = false;
 	igt_output_set_crtc(output, NULL);
@@ -342,12 +343,14 @@ int igt_main()
 	igt_describe("Tests the interrupt properties of legacy modeset");
 	igt_subtest_with_dynamic("legacy-setmode") {
 		for_each_crtc_with_valid_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_plane_test(&display, crtc->pipe, output,
+				run_plane_test(&display,
+					       crtc,
+					       output,
 					       test_legacy_modeset,
 					       DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -357,12 +360,14 @@ int igt_main()
 	igt_describe("Tests the interrupt properties of atomic modeset");
 	igt_subtest_with_dynamic("atomic-setmode") {
 		for_each_crtc_with_valid_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_plane_test(&display, crtc->pipe, output,
+				run_plane_test(&display,
+					       crtc,
+					       output,
 					       test_atomic_modeset,
 					       DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -372,12 +377,14 @@ int igt_main()
 	igt_describe("Tests the interrupt properties for DPMS");
 	igt_subtest_with_dynamic("legacy-dpms") {
 		for_each_crtc_with_valid_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_plane_test(&display, crtc->pipe, output,
+				run_plane_test(&display,
+					       crtc,
+					       output,
 					       test_legacy_dpms,
 					       DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -387,12 +394,14 @@ int igt_main()
 	igt_describe("Tests the interrupt properties for pageflip");
 	igt_subtest_with_dynamic("legacy-pageflip") {
 		for_each_crtc_with_valid_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_plane_test(&display, crtc->pipe, output,
+				run_plane_test(&display,
+					       crtc,
+					       output,
 					       test_pageflip,
 					       DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -402,12 +411,14 @@ int igt_main()
 	igt_describe("Tests the interrupt properties for cursor");
 	igt_subtest_with_dynamic("legacy-cursor") {
 		for_each_crtc_with_valid_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_plane_test(&display, crtc->pipe, output,
+				run_plane_test(&display,
+					       crtc,
+					       output,
 					       test_setcursor,
 					       DRM_PLANE_TYPE_CURSOR);
 			break;
@@ -417,12 +428,14 @@ int igt_main()
 	igt_describe("Tests the interrupt properties for primary plane");
 	igt_subtest_with_dynamic("universal-setplane-primary") {
 		for_each_crtc_with_valid_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_plane_test(&display, crtc->pipe, output,
+				run_plane_test(&display,
+					       crtc,
+					       output,
 					       test_setplane,
 					       DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -432,12 +445,14 @@ int igt_main()
 	igt_describe("Tests the interrupt properties for cursor plane");
 	igt_subtest_with_dynamic("universal-setplane-cursor") {
 		for_each_crtc_with_valid_output(&display, crtc, output) {
-			if (!pipe_output_combo_valid(&display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_plane_test(&display, crtc->pipe, output,
+				run_plane_test(&display,
+					       crtc,
+					       output,
 					       test_setplane,
 					       DRM_PLANE_TYPE_CURSOR);
 			break;
diff --git a/tests/kms_dither.c b/tests/kms_dither.c
index d308d49abd09..347580e60f4e 100644
--- a/tests/kms_dither.c
+++ b/tests/kms_dither.c
@@ -72,11 +72,8 @@ typedef struct {
 } dither_status_t;
 
 /* Prepare test data. */
-static void prepare_test(data_t *data, igt_output_t *output, enum pipe p)
+static void prepare_test(data_t *data, igt_output_t *output, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
-
 	igt_assert(crtc);
 
 	data->primary =
@@ -86,7 +83,7 @@ static void prepare_test(data_t *data, igt_output_t *output, enum pipe p)
 }
 
 /* Returns the current state of dithering from the crtc debugfs. */
-static dither_status_t get_dither_state(data_t *data, enum pipe pipe)
+static dither_status_t get_dither_state(data_t *data, igt_crtc_t *crtc)
 {
 	char buf[512], tmp[5];
 	char *start_loc;
@@ -106,25 +103,24 @@ static dither_status_t get_dither_state(data_t *data, enum pipe pipe)
 	igt_assert_eq(sscanf(start_loc, ", dither=%s", tmp), 1);
 	status.dither = !strcmp(tmp, "yes,");
 
-	status.bpc = igt_get_pipe_current_bpc(data->drm_fd, pipe);
+	status.bpc = igt_get_pipe_current_bpc(data->drm_fd, crtc->pipe);
 
 	return status;
 }
 
-static void test_dithering(data_t *data, enum pipe pipe,
+static void test_dithering(data_t *data, igt_crtc_t *crtc,
 			   igt_output_t *output,
 			   int fb_bpc, int fb_format,
 			   int output_bpc)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	dither_status_t status;
 	int bpc, ret;
 	bool constraint;
 
 	igt_info("Dithering test execution on %s PIPE_%s\n",
 			output->name, igt_crtc_name(crtc));
-	prepare_test(data, output, crtc->pipe);
+	prepare_test(data, output, crtc);
 
 	igt_assert(igt_create_fb(data->drm_fd, 512, 512, fb_format,
 				 DRM_FORMAT_MOD_LINEAR, &data->fb));
@@ -156,7 +152,8 @@ static void test_dithering(data_t *data, enum pipe pipe,
 	 * If fb_bpc is greater than output_bpc, Dithering should be enabled
 	 * Else disabled
 	 */
-	status = get_dither_state(data, crtc->pipe);
+	status = get_dither_state(data,
+				  crtc);
 
 	igt_info("FB BPC:%d, Panel BPC:%d, Pipe BPC:%d, Expected Dither:%s, Actual result:%s\n",
 		  fb_bpc, output_bpc, status.bpc,
@@ -232,9 +229,11 @@ run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc)
 			igt_dynamic_f("pipe-%s-%s",
 					      igt_crtc_name(crtc),
 					      output->name)
-				test_dithering(data, crtc->pipe, output,
-							   fb_bpc,
-							   fb_format, output_bpc);
+				test_dithering(data,
+					       crtc,
+					       output,
+					       fb_bpc,
+					       fb_format, output_bpc);
 
 			/* One pipe is enough */
 			break;
diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c
index 723336c7ba35..bc78d9a6f41d 100644
--- a/tests/kms_panel_fitting.c
+++ b/tests/kms_panel_fitting.c
@@ -68,11 +68,11 @@ static void cleanup_crtc(data_t *data)
 	igt_remove_fb(data->drm_fd, &data->fb2);
 }
 
-static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe,
-			igt_plane_t *plane, drmModeModeInfo *mode, enum igt_commit_style s)
+static void prepare_crtc(data_t *data, igt_output_t *output, igt_crtc_t *crtc,
+			 igt_plane_t *plane, drmModeModeInfo *mode,
+			 enum igt_commit_style s)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 
 	igt_output_override_mode(output, mode);
 	igt_output_set_crtc(output, crtc);
@@ -104,13 +104,13 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe,
 }
 
 static void
-test_panel_fitting_legacy(data_t *d, igt_display_t *display,
-			  enum pipe pipe, igt_output_t *output)
+test_panel_fitting_legacy(data_t *d, igt_display_t *display, igt_crtc_t *crtc,
+			  igt_output_t *output)
 {
 	drmModeModeInfo *mode, native_mode;
 	bool is_plane_scaling_active = true;
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 
 	mode = igt_output_get_mode(output);
 	native_mode = *mode;
@@ -129,18 +129,22 @@ test_panel_fitting_legacy(data_t *d, igt_display_t *display,
 		mode->vdisplay = 480;
 	}
 	d->plane1 = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
-	prepare_crtc(d, output, pipe, d->plane1, mode, COMMIT_LEGACY);
+	prepare_crtc(d, output, crtc, d->plane1,
+		     mode, COMMIT_LEGACY);
 
 	/* disable panel fitting */
-	prepare_crtc(d, output, pipe, d->plane1, &native_mode, COMMIT_LEGACY);
+	prepare_crtc(d, output, crtc, d->plane1,
+		     &native_mode, COMMIT_LEGACY);
 
 	/* enable panel fitting */
 	mode->hdisplay = 800;
 	mode->vdisplay = 600;
-	prepare_crtc(d, output, pipe, d->plane1, mode, COMMIT_LEGACY);
+	prepare_crtc(d, output, crtc, d->plane1,
+		     mode, COMMIT_LEGACY);
 
 	/* disable panel fitting */
-	prepare_crtc(d, output, pipe, d->plane1, &native_mode, COMMIT_LEGACY);
+	prepare_crtc(d, output, crtc, d->plane1,
+		     &native_mode, COMMIT_LEGACY);
 
 	/* set up fb2->plane2 mapping. */
 	d->plane2 = igt_output_get_plane_type(output, DRM_PLANE_TYPE_OVERLAY);
@@ -166,7 +170,7 @@ test_panel_fitting_legacy(data_t *d, igt_display_t *display,
 		 */
 		if (IS_GEN8(devid) ||
 			(IS_GEN7(devid) && !IS_IVYBRIDGE(devid)) ||
-			(IS_GEN9(devid) && pipe == PIPE_C)) {
+			(IS_GEN9(devid) && crtc->pipe == PIPE_C)) {
 			is_plane_scaling_active = false;
 		}
 	}
@@ -191,11 +195,13 @@ test_panel_fitting_legacy(data_t *d, igt_display_t *display,
 	/* enable panel fitting along with sprite scaling */
 	mode->hdisplay = 1024;
 	mode->vdisplay = 768;
-	prepare_crtc(d, output, pipe, d->plane1, mode, COMMIT_LEGACY);
+	prepare_crtc(d, output, crtc, d->plane1,
+		     mode, COMMIT_LEGACY);
 }
 
 static void
-test_panel_fitting_fastset(igt_display_t *display, enum pipe pipe, igt_output_t *output)
+test_panel_fitting_fastset(igt_display_t *display, igt_crtc_t *crtc,
+			   igt_output_t *output)
 {
 	igt_plane_t *primary, *sprite;
 	drmModeModeInfo mode;
@@ -203,7 +209,7 @@ test_panel_fitting_fastset(igt_display_t *display, enum pipe pipe, igt_output_t
 
 	mode = *igt_output_get_mode(output);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	sprite = igt_output_get_plane_type(output, DRM_PLANE_TYPE_OVERLAY);
@@ -276,10 +282,12 @@ static void test_panel_fitting(data_t *data, enum test_type type)
 		igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), output->name) {
 			if (type == TEST_ATOMIC)
 				test_panel_fitting_fastset(display,
-							   crtc->pipe, output);
+							   crtc,
+							   output);
 			if (type == TEST_LEGACY)
 				test_panel_fitting_legacy(data, display,
-							  crtc->pipe, output);
+							  crtc,
+							  output);
 		}
 	}
 }
diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index 8c928754b469..f7b6ec2937c2 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -96,11 +96,11 @@ static struct {
 	{ .r = 0.0, .g = 1.0, .b = 1.0 },
 };
 
-static bool simulation_constraint(enum pipe pipe)
+static bool simulation_constraint(igt_crtc_t *crtc)
 {
 	if (igt_run_in_simulation() && !extended &&
-	    pipe != active_pipes[0] &&
-	    pipe != active_pipes[last_pipe])
+	    crtc->pipe != active_pipes[0] &&
+	    crtc->pipe != active_pipes[last_pipe])
 		return true;
 
 	return false;
@@ -127,11 +127,10 @@ enum {
 	TEST_HANG = 1 << 3,
 };
 
-static void test_read_crc(data_t *data, enum pipe pipe,
+static void test_read_crc(data_t *data, igt_crtc_t *crtc,
 			  igt_output_t *output, unsigned flags)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
 	igt_crc_t *crcs = NULL;
@@ -235,11 +234,11 @@ static void test_read_crc(data_t *data, enum pipe pipe,
  *
  *   No CRC mismatch should happen
  */
-static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output,
+static void test_compare_crc(data_t *data, igt_crtc_t *crtc,
+			     igt_output_t *output,
 			     uint32_t plane_format)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
 	igt_crc_t ref_crc, crc;
@@ -291,11 +290,10 @@ static void test_compare_crc(data_t *data, enum pipe pipe, igt_output_t *output,
 	igt_remove_fb(data->drm_fd, &fb1);
 }
 
-static void test_disable_crc_after_crtc(data_t *data, enum pipe pipe,
+static void test_disable_crc_after_crtc(data_t *data, igt_crtc_t *crtc,
 					igt_output_t *output)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_pipe_crc_t *pipe_crc;
 	drmModeModeInfo *mode;
 	igt_crc_t crc[2];
@@ -338,14 +336,14 @@ static void test_disable_crc_after_crtc(data_t *data, enum pipe pipe,
 	igt_remove_fb(data->drm_fd, &data->fb);
 }
 
-static bool pipe_output_combo_valid(igt_display_t *display,
-				    enum pipe pipe, igt_output_t *output)
+static bool pipe_output_combo_valid(igt_display_t *display, igt_crtc_t *crtc,
+				    igt_output_t *output)
 {
 	bool ret = true;
 
 	igt_display_reset(display);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	if (!intel_pipe_output_combo_valid(display))
 		ret = false;
 	igt_output_set_crtc(output, NULL);
@@ -424,10 +422,10 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		igt_subtest_with_dynamic(tests[i].name) {
 			for_each_crtc_with_single_output(&data.display, crtc,
 							 output) {
-				if (simulation_constraint(crtc->pipe))
+				if (simulation_constraint(crtc))
 					continue;
 
-				if(!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+				if(!pipe_output_combo_valid(&data.display, crtc, output))
 					continue;
 
 				igt_dynamic_f("pipe-%s-%s",
@@ -437,7 +435,7 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 						enum igt_suspend_test test = SUSPEND_TEST_NONE;
 
 						test_read_crc(&data,
-							      crtc->pipe,
+							      crtc,
 							      output, 0);
 
 						/* rtcwake cmd is not supported on MTK devices */
@@ -448,23 +446,23 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 									      test);
 
 						test_read_crc(&data,
-							      crtc->pipe,
+							      crtc,
 							      output, 0);
 					} else if (tests[i].flags & TEST_HANG) {
 						igt_hang_t hang = igt_allow_hang(data.drm_fd, 0, 0);
 
 						test_read_crc(&data,
-							      crtc->pipe,
+							      crtc,
 							      output, 0);
 						igt_force_gpu_reset(data.drm_fd);
 						test_read_crc(&data,
-							      crtc->pipe,
+							      crtc,
 							      output, 0);
 
 						igt_disallow_hang(data.drm_fd, hang);
 					} else {
 						test_read_crc(&data,
-							      crtc->pipe,
+							      crtc,
 							      output,
 							      tests[i].flags);
 					}
@@ -477,15 +475,16 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		     "does not cause issues.");
 	igt_subtest_with_dynamic("disable-crc-after-crtc") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (simulation_constraint(crtc->pipe))
+			if (simulation_constraint(crtc))
 				continue;
 
-			if(!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if(!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      output->name)
-				test_disable_crc_after_crtc(&data, crtc->pipe,
+				test_disable_crc_after_crtc(&data,
+							    crtc,
 							    output);
 		}
 	}
@@ -493,15 +492,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Basic sanity check for CRC mismatches with XR24 format");
 	igt_subtest_with_dynamic("compare-crc-sanitycheck-xr24") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (simulation_constraint(crtc->pipe))
+			if (simulation_constraint(crtc))
 				continue;
 
-			if(!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if(!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      output->name)
-				test_compare_crc(&data, crtc->pipe, output,
+				test_compare_crc(&data,
+						 crtc,
+						 output,
 						 DRM_FORMAT_XRGB8888);
 		}
 	}
@@ -509,15 +510,17 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_describe("Basic sanity check for CRC mismatches with NV12 format");
 	igt_subtest_with_dynamic("compare-crc-sanitycheck-nv12") {
 		for_each_crtc_with_single_output(&data.display, crtc, output) {
-			if (simulation_constraint(crtc->pipe))
+			if (simulation_constraint(crtc))
 				continue;
 
-			if(!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+			if(!pipe_output_combo_valid(&data.display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      output->name)
-				test_compare_crc(&data, crtc->pipe, output,
+				test_compare_crc(&data,
+						 crtc,
+						 output,
 						 DRM_FORMAT_NV12);
 		}
 	}
diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c
index d57b4cc818b7..3055dd3b0fe8 100644
--- a/tests/kms_rmfb.c
+++ b/tests/kms_rmfb.c
@@ -74,11 +74,11 @@ struct rmfb_data {
  * so test this and make sure it works.
  */
 static void
-test_rmfb(struct rmfb_data *data, igt_output_t *output, enum pipe pipe, bool reopen)
+test_rmfb(struct rmfb_data *data, igt_output_t *output, igt_crtc_t *crtc,
+	  bool reopen)
 {
 	struct igt_fb fb, argb_fb;
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 	igt_plane_t *plane;
 	drmModeCrtc *drm_crtc;
@@ -189,7 +189,9 @@ run_rmfb_test(struct rmfb_data *data, bool reopen)
 
 		igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 			      igt_output_name(output))
-			test_rmfb(data, output, crtc->pipe, reopen);
+			test_rmfb(data, output,
+				  crtc,
+				  reopen);
 	}
 }
 
diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c
index 5b0d6485ebb3..b6a04d33338a 100644
--- a/tests/kms_scaling_modes.c
+++ b/tests/kms_scaling_modes.c
@@ -54,7 +54,8 @@ typedef struct data {
 	int drm_fd;
 } data_t;
 
-static void test_scaling_mode_on_output(igt_display_t *display, enum pipe pipe,
+static void test_scaling_mode_on_output(igt_display_t *display,
+					igt_crtc_t *crtc,
 					igt_output_t *output, uint32_t flags)
 {
 	igt_plane_t *primary, *sprite;
@@ -62,7 +63,7 @@ static void test_scaling_mode_on_output(igt_display_t *display, enum pipe pipe,
 	struct igt_fb red, blue;
 	int ret;
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	mode = *igt_output_get_mode(output);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
@@ -128,7 +129,8 @@ static void test_scaling_mode(data_t *data, uint32_t flags)
 
 		igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 			      igt_output_name(output))
-			test_scaling_mode_on_output(display, crtc->pipe,
+			test_scaling_mode_on_output(display,
+						    crtc,
 						    output, flags);
 	}
 }
diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
index 7844658d8337..67b61e1d2ea0 100644
--- a/tests/kms_universal_plane.c
+++ b/tests/kms_universal_plane.c
@@ -91,11 +91,10 @@ typedef struct {
 } gen9_test_t;
 
 static void
-functional_test_init(functional_test_t *test, igt_output_t *output, enum pipe pipe)
+functional_test_init(functional_test_t *test, igt_output_t *output,
+		     igt_crtc_t *crtc)
 {
 	data_t *data = test->data;
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 
 	test->pipe_crc = igt_crtc_crc_new(crtc,
@@ -158,16 +157,16 @@ functional_test_fini(functional_test_t *test, igt_output_t *output)
  *   - Enable CRTC, grab CRC:6 (should be same as CRC:2)
  */
 static void
-functional_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+functional_test_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
 	functional_test_t test = { .data = data };
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary, *sprite;
 	int num_primary = 0, num_cursor = 0;
 	int i;
 
-	functional_test_init(&test, output, crtc->pipe);
+	functional_test_init(&test, output,
+			     crtc);
 
 	/*
 	 * Make sure we have no more than one primary or cursor plane per crtc.
@@ -347,11 +346,9 @@ functional_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 }
 
 static void
-sanity_test_init(sanity_test_t *test, igt_output_t *output, enum pipe pipe)
+sanity_test_init(sanity_test_t *test, igt_output_t *output, igt_crtc_t *crtc)
 {
 	data_t *data = test->data;
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 
 	igt_output_set_crtc(output, crtc);
@@ -399,10 +396,8 @@ sanity_test_fini(sanity_test_t *test, igt_output_t *output)
  *   - Primary plane tries to scale up
  */
 static void
-sanity_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+sanity_test_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	sanity_test_t test = { .data = data };
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
@@ -412,7 +407,8 @@ sanity_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 	igt_output_set_crtc(output, crtc);
 	mode = igt_output_get_mode(output);
 
-	sanity_test_init(&test, output, crtc->pipe);
+	sanity_test_init(&test, output,
+			 crtc);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
@@ -494,11 +490,10 @@ sanity_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 }
 
 static void
-pageflip_test_init(pageflip_test_t *test, igt_output_t *output, enum pipe pipe)
+pageflip_test_init(pageflip_test_t *test, igt_output_t *output,
+		   igt_crtc_t *crtc)
 {
 	data_t *data = test->data;
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 
 	igt_output_set_crtc(output, crtc);
@@ -527,10 +522,8 @@ pageflip_test_fini(pageflip_test_t *test, igt_output_t *output)
 }
 
 static void
-pageflip_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+pageflip_test_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	pageflip_test_t test = { .data = data };
 	igt_plane_t *primary;
 	struct timeval timeout = { .tv_sec = 0, .tv_usec = 500 };
@@ -541,7 +534,8 @@ pageflip_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	igt_output_set_crtc(output, crtc);
 
-	pageflip_test_init(&test, output, crtc->pipe);
+	pageflip_test_init(&test, output,
+			   crtc);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
@@ -639,10 +633,9 @@ intel_gem_fb_count(data_t *data)
 }
 
 static void
-cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+cursor_leak_test_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_plane_t *primary, *cursor;
 	drmModeModeInfo *mode;
 	struct igt_fb background_fb;
@@ -734,11 +727,9 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 }
 
 static void
-gen9_test_init(gen9_test_t *test, igt_output_t *output, enum pipe pipe)
+gen9_test_init(gen9_test_t *test, igt_output_t *output, igt_crtc_t *crtc)
 {
 	data_t *data = test->data;
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 
 	igt_output_set_crtc(output, crtc);
@@ -785,10 +776,8 @@ gen9_test_fini(gen9_test_t *test, igt_output_t *output)
  * windowing)
  */
 static void
-pageflip_win_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
+pageflip_win_test_pipe(data_t *data, igt_crtc_t *crtc, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	gen9_test_t test = { .data = data };
 	igt_plane_t *primary;
 
@@ -796,7 +785,7 @@ pageflip_win_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	igt_output_set_crtc(output, crtc);
 
-	gen9_test_init(&test, output, crtc->pipe);
+	gen9_test_init(&test, output, crtc);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
@@ -830,14 +819,14 @@ pageflip_win_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 }
 
 static bool
-pipe_output_combo_valid(igt_display_t *display,
-			enum pipe pipe, igt_output_t *output)
+pipe_output_combo_valid(igt_display_t *display, igt_crtc_t *crtc,
+			igt_output_t *output)
 {
 	bool ret = true;
 
 	igt_display_reset(display);
 
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 	if (!intel_pipe_output_combo_valid(display))
 		ret = false;
 	igt_output_set_crtc(output, NULL);
@@ -854,24 +843,28 @@ run_tests(data_t *data)
 	igt_describe("Check the switching between different primary plane fbs with CRTC off");
 	igt_subtest_with_dynamic("universal-plane-functional") {
 		for_each_crtc_with_single_output(&data->display, crtc, output) {
-			if (!pipe_output_combo_valid(&data->display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data->display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				functional_test_pipe(data, crtc->pipe, output);
+				functional_test_pipe(data,
+						     crtc,
+						     output);
 		}
 	}
 
 	igt_describe("Test for scale-up or scale-down using universal plane API without covering CRTC");
 	igt_subtest_with_dynamic("universal-plane-sanity") {
 		for_each_crtc_with_single_output(&data->display, crtc, output) {
-			if (!pipe_output_combo_valid(&data->display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data->display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				sanity_test_pipe(data, crtc->pipe, output);
+				sanity_test_pipe(data,
+						 crtc,
+						 output);
 		}
 	}
 
@@ -879,24 +872,27 @@ run_tests(data_t *data)
 		     " and pageflip execution");
 	igt_subtest_with_dynamic("disable-primary-vs-flip") {
 		for_each_crtc_with_single_output(&data->display, crtc, output) {
-			if (!pipe_output_combo_valid(&data->display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data->display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				pageflip_test_pipe(data, crtc->pipe, output);
+				pageflip_test_pipe(data,
+						   crtc,
+						   output);
 		}
 	}
 
 	igt_describe("Check for cursor leaks after performing cursor operations");
 	igt_subtest_with_dynamic("cursor-fb-leak") {
 		for_each_crtc_with_single_output(&data->display, crtc, output) {
-			if (!pipe_output_combo_valid(&data->display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data->display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				cursor_leak_test_pipe(data, crtc->pipe,
+				cursor_leak_test_pipe(data,
+						      crtc,
 						      output);
 		}
 	}
@@ -905,12 +901,13 @@ run_tests(data_t *data)
 	igt_subtest_with_dynamic("universal-plane-pageflip-windowed") {
 		igt_require(is_intel_device(data->drm_fd) && data->display_ver >= 9);
 		for_each_crtc_with_single_output(&data->display, crtc, output) {
-			if (!pipe_output_combo_valid(&data->display, crtc->pipe, output))
+			if (!pipe_output_combo_valid(&data->display, crtc, output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				pageflip_win_test_pipe(data, crtc->pipe,
+				pageflip_win_test_pipe(data,
+						       crtc,
 						       output);
 		}
 	}
-- 
2.52.0


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

* ✗ Xe.CI.BAT: failure for tests/kms: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (16 preceding siblings ...)
  2026-02-11 16:34 ` [PATCH i-g-t 17/17] tests/kms: " Ville Syrjala
@ 2026-02-11 17:35 ` Patchwork
  2026-02-11 17:47 ` ✓ i915.CI.BAT: success " Patchwork
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2026-02-11 17:35 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: Use igt_crtc_t instead of enum pipe
URL   : https://patchwork.freedesktop.org/series/161505/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8751_BAT -> XEIGTPW_14542_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_14542_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_14542_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (12 -> 12)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in XEIGTPW_14542_BAT:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_peer2peer@write@write-gpua-system-gpub-vram01-p2p:
    - bat-bmg-3:          [PASS][1] -> [INCOMPLETE][2] +1 other test incomplete
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/bat-bmg-3/igt@xe_peer2peer@write@write-gpua-system-gpub-vram01-p2p.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/bat-bmg-3/igt@xe_peer2peer@write@write-gpua-system-gpub-vram01-p2p.html

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

  Here are the changes found in XEIGTPW_14542_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
    - bat-bmg-2:          NOTRUN -> [SKIP][3] ([Intel XE#2229])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/bat-bmg-2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - bat-bmg-2:          [ABORT][4] -> [PASS][5]
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/bat-bmg-2/igt@core_hotunplug@unbind-rebind.html

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


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

  * IGT: IGT_8751 -> IGTPW_14542

  IGTPW_14542: 14542
  IGT_8751: af788251f1ef729d17c802aec2c4547b52059e58 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4544-2938ce73d01357a5816ed7dbd041154b58635a37: 2938ce73d01357a5816ed7dbd041154b58635a37

== Logs ==

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

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

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

* ✓ i915.CI.BAT: success for tests/kms: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (17 preceding siblings ...)
  2026-02-11 17:35 ` ✗ Xe.CI.BAT: failure for " Patchwork
@ 2026-02-11 17:47 ` Patchwork
  2026-02-12  6:18 ` ✗ i915.CI.Full: failure " Patchwork
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2026-02-11 17:47 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: Use igt_crtc_t instead of enum pipe
URL   : https://patchwork.freedesktop.org/series/161505/
State : success

== Summary ==

CI Bug Log - changes from IGT_8751 -> IGTPW_14542
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/index.html

Participating hosts (43 -> 41)
------------------------------

  Missing    (2): bat-dg2-13 fi-snb-2520m 

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

  Here are the changes found in IGTPW_14542 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [PASS][1] -> [DMESG-FAIL][2] ([i915#12061]) +1 other test dmesg-fail
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/bat-mtlp-8/igt@i915_selftest@live.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/bat-mtlp-8/igt@i915_selftest@live.html

  
#### Possible fixes ####

  * igt@i915_selftest@live:
    - bat-dg2-8:          [DMESG-FAIL][3] ([i915#12061]) -> [PASS][4] +1 other test pass
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/bat-dg2-8/igt@i915_selftest@live.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/bat-dg2-8/igt@i915_selftest@live.html

  * igt@i915_selftest@live@perf:
    - bat-arlh-2:         [INCOMPLETE][5] -> [PASS][6] +1 other test pass
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/bat-arlh-2/igt@i915_selftest@live@perf.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/bat-arlh-2/igt@i915_selftest@live@perf.html

  * igt@i915_selftest@live@workarounds:
    - bat-dg2-9:          [DMESG-FAIL][7] ([i915#12061]) -> [PASS][8] +1 other test pass
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/bat-dg2-9/igt@i915_selftest@live@workarounds.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/bat-dg2-9/igt@i915_selftest@live@workarounds.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061


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

  * CI: CI-20190529 -> None
  * IGT: IGT_8751 -> IGTPW_14542

  CI-20190529: 20190529
  CI_DRM_17976: 2938ce73d01357a5816ed7dbd041154b58635a37 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_14542: 14542
  IGT_8751: af788251f1ef729d17c802aec2c4547b52059e58 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/index.html

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

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

* ✗ i915.CI.Full: failure for tests/kms: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (18 preceding siblings ...)
  2026-02-11 17:47 ` ✓ i915.CI.BAT: success " Patchwork
@ 2026-02-12  6:18 ` Patchwork
  2026-02-12  9:42 ` [PATCH i-g-t 00/17] " Jani Nikula
  2026-02-13  2:09 ` ✗ Xe.CI.FULL: failure for " Patchwork
  21 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2026-02-12  6:18 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: Use igt_crtc_t instead of enum pipe
URL   : https://patchwork.freedesktop.org/series/161505/
State : failure

== Summary ==

CI Bug Log - changes from IGT_8751_full -> IGTPW_14542_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_14542_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_14542_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/index.html

Participating hosts (9 -> 9)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_14542_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  
#### Warnings ####

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg1:          [CRASH][2] ([i915#5493]) -> [CRASH][3]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-13/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@gem_lmem_swapping@smem-oom@lmem0.html

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

  Here are the changes found in IGTPW_14542_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_bad_reloc@negative-reloc-bltcopy:
    - shard-mtlp:         NOTRUN -> [SKIP][4] ([i915#3281])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-2/igt@gem_bad_reloc@negative-reloc-bltcopy.html
    - shard-dg2:          NOTRUN -> [SKIP][5] ([i915#3281])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-7/igt@gem_bad_reloc@negative-reloc-bltcopy.html

  * igt@gem_bad_reloc@negative-reloc-lut:
    - shard-rkl:          NOTRUN -> [SKIP][6] ([i915#3281]) +9 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@gem_bad_reloc@negative-reloc-lut.html

  * igt@gem_basic@multigpu-create-close:
    - shard-tglu-1:       NOTRUN -> [SKIP][7] ([i915#7697])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@gem_basic@multigpu-create-close.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-rkl:          NOTRUN -> [SKIP][8] ([i915#3555] / [i915#9323])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_ccs@suspend-resume:
    - shard-rkl:          NOTRUN -> [SKIP][9] ([i915#9323])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@gem_ccs@suspend-resume.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-rkl:          NOTRUN -> [SKIP][10] ([i915#7697])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-rkl:          NOTRUN -> [SKIP][11] ([i915#6335])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-glk:          NOTRUN -> [INCOMPLETE][12] ([i915#13356]) +1 other test incomplete
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk9/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_ctx_isolation@preservation-s3@vecs0:
    - shard-rkl:          NOTRUN -> [ABORT][13] ([i915#15131])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-1/igt@gem_ctx_isolation@preservation-s3@vecs0.html

  * igt@gem_ctx_sseu@engines:
    - shard-tglu:         NOTRUN -> [SKIP][14] ([i915#280])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-4/igt@gem_ctx_sseu@engines.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-tglu-1:       NOTRUN -> [SKIP][15] ([i915#280])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_exec_balancer@bonded-sync:
    - shard-dg2:          NOTRUN -> [SKIP][16] ([i915#4771])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@gem_exec_balancer@bonded-sync.html
    - shard-dg1:          NOTRUN -> [SKIP][17] ([i915#4771])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@gem_exec_balancer@bonded-sync.html
    - shard-mtlp:         NOTRUN -> [SKIP][18] ([i915#4771])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-1/igt@gem_exec_balancer@bonded-sync.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-tglu-1:       NOTRUN -> [SKIP][19] ([i915#4525]) +1 other test skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_balancer@parallel-keep-submit-fence:
    - shard-rkl:          NOTRUN -> [SKIP][20] ([i915#4525])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@gem_exec_balancer@parallel-keep-submit-fence.html
    - shard-tglu:         NOTRUN -> [SKIP][21] ([i915#4525]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-8/igt@gem_exec_balancer@parallel-keep-submit-fence.html

  * igt@gem_exec_flush@basic-uc-set-default:
    - shard-dg1:          NOTRUN -> [SKIP][22] ([i915#3539])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@gem_exec_flush@basic-uc-set-default.html

  * igt@gem_exec_reloc@basic-concurrent0:
    - shard-rkl:          NOTRUN -> [SKIP][23] ([i915#14544] / [i915#3281])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_exec_reloc@basic-concurrent0.html

  * igt@gem_exec_reloc@basic-write-read-noreloc:
    - shard-dg1:          NOTRUN -> [SKIP][24] ([i915#3281]) +2 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@gem_exec_reloc@basic-write-read-noreloc.html

  * igt@gem_exec_schedule@reorder-wide:
    - shard-dg1:          NOTRUN -> [SKIP][25] ([i915#4812])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@gem_exec_schedule@reorder-wide.html

  * igt@gem_exec_suspend@basic-s3:
    - shard-rkl:          [PASS][26] -> [INCOMPLETE][27] ([i915#13356]) +1 other test incomplete
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@gem_exec_suspend@basic-s3.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_huc_copy@huc-copy:
    - shard-glk:          NOTRUN -> [SKIP][28] ([i915#2190])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk9/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-multi:
    - shard-tglu:         NOTRUN -> [SKIP][29] ([i915#4613]) +1 other test skip
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-3/igt@gem_lmem_swapping@heavy-multi.html
    - shard-mtlp:         NOTRUN -> [SKIP][30] ([i915#4613])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@gem_lmem_swapping@heavy-multi.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - shard-rkl:          NOTRUN -> [SKIP][31] ([i915#4613]) +2 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_lmem_swapping@random:
    - shard-glk:          NOTRUN -> [SKIP][32] ([i915#4613]) +5 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk9/igt@gem_lmem_swapping@random.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][33] ([i915#4613]) +2 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_mmap@big-bo:
    - shard-dg2:          NOTRUN -> [SKIP][34] ([i915#4083]) +2 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@gem_mmap@big-bo.html

  * igt@gem_mmap_gtt@basic-read-write-distinct:
    - shard-dg2:          NOTRUN -> [SKIP][35] ([i915#4077]) +2 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@gem_mmap_gtt@basic-read-write-distinct.html

  * igt@gem_mmap_gtt@cpuset-medium-copy-xy:
    - shard-dg1:          NOTRUN -> [SKIP][36] ([i915#4077]) +5 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@gem_mmap_gtt@cpuset-medium-copy-xy.html

  * igt@gem_mmap_gtt@hang-busy:
    - shard-mtlp:         NOTRUN -> [SKIP][37] ([i915#4077]) +2 other tests skip
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@gem_mmap_gtt@hang-busy.html

  * igt@gem_mmap_wc@write-read:
    - shard-dg1:          NOTRUN -> [SKIP][38] ([i915#4083]) +2 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@gem_mmap_wc@write-read.html
    - shard-mtlp:         NOTRUN -> [SKIP][39] ([i915#4083]) +2 other tests skip
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-6/igt@gem_mmap_wc@write-read.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-tglu:         NOTRUN -> [WARN][40] ([i915#2658])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-5/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pwrite@basic-random:
    - shard-rkl:          NOTRUN -> [SKIP][41] ([i915#3282]) +4 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@gem_pwrite@basic-random.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-rkl:          NOTRUN -> [SKIP][42] ([i915#13717])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@gem_pxp@hw-rejects-pxp-context.html
    - shard-tglu:         NOTRUN -> [SKIP][43] ([i915#13398])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-4/igt@gem_pxp@hw-rejects-pxp-context.html
    - shard-mtlp:         NOTRUN -> [SKIP][44] ([i915#13398])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-2/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_pxp@regular-baseline-src-copy-readible:
    - shard-dg2:          NOTRUN -> [SKIP][45] ([i915#4270])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@gem_pxp@regular-baseline-src-copy-readible.html
    - shard-dg1:          NOTRUN -> [SKIP][46] ([i915#4270])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@gem_pxp@regular-baseline-src-copy-readible.html

  * igt@gem_pxp@verify-pxp-execution-after-suspend-resume:
    - shard-rkl:          [PASS][47] -> [ABORT][48] ([i915#15131])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-1/igt@gem_pxp@verify-pxp-execution-after-suspend-resume.html

  * igt@gem_readwrite@new-obj:
    - shard-mtlp:         NOTRUN -> [SKIP][49] ([i915#3282])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-1/igt@gem_readwrite@new-obj.html
    - shard-dg2:          NOTRUN -> [SKIP][50] ([i915#3282])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-1/igt@gem_readwrite@new-obj.html
    - shard-dg1:          NOTRUN -> [SKIP][51] ([i915#3282])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@gem_readwrite@new-obj.html

  * igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
    - shard-dg2:          NOTRUN -> [SKIP][52] ([i915#5190] / [i915#8428])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@gem_render_copy@yf-tiled-to-vebox-x-tiled.html
    - shard-mtlp:         NOTRUN -> [SKIP][53] ([i915#8428])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-3/igt@gem_render_copy@yf-tiled-to-vebox-x-tiled.html

  * igt@gem_set_tiling_vs_blt@tiled-to-tiled:
    - shard-rkl:          NOTRUN -> [SKIP][54] ([i915#8411])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html

  * igt@gem_set_tiling_vs_blt@tiled-to-untiled:
    - shard-dg2:          NOTRUN -> [SKIP][55] ([i915#4079])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
    - shard-dg1:          NOTRUN -> [SKIP][56] ([i915#4079]) +1 other test skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-12/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html
    - shard-mtlp:         NOTRUN -> [SKIP][57] ([i915#4079])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html

  * igt@gem_softpin@evict-snoop:
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#14544]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_softpin@evict-snoop.html
    - shard-tglu-1:       NOTRUN -> [SKIP][59] +18 other tests skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@gem_softpin@evict-snoop.html

  * igt@gem_softpin@noreloc-s3:
    - shard-rkl:          [PASS][60] -> [INCOMPLETE][61] ([i915#13809])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@gem_softpin@noreloc-s3.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@access-control:
    - shard-mtlp:         NOTRUN -> [SKIP][62] ([i915#3297]) +1 other test skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-5/igt@gem_userptr_blits@access-control.html

  * igt@gem_userptr_blits@coherency-unsync:
    - shard-rkl:          NOTRUN -> [SKIP][63] ([i915#3297]) +1 other test skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@gem_userptr_blits@coherency-unsync.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-dg2:          NOTRUN -> [SKIP][64] ([i915#3297]) +1 other test skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-1/igt@gem_userptr_blits@dmabuf-unsync.html
    - shard-rkl:          NOTRUN -> [SKIP][65] ([i915#14544] / [i915#3297])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_userptr_blits@dmabuf-unsync.html
    - shard-dg1:          NOTRUN -> [SKIP][66] ([i915#3297]) +2 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@gem_userptr_blits@dmabuf-unsync.html
    - shard-tglu:         NOTRUN -> [SKIP][67] ([i915#3297]) +3 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-tglu-1:       NOTRUN -> [SKIP][68] ([i915#3297])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@sd-probe:
    - shard-dg2:          NOTRUN -> [SKIP][69] ([i915#3297] / [i915#4958])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-1/igt@gem_userptr_blits@sd-probe.html
    - shard-dg1:          NOTRUN -> [SKIP][70] ([i915#3297] / [i915#4958])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@gem_userptr_blits@sd-probe.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-snb:          NOTRUN -> [SKIP][71] +99 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-snb1/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@basic-rejected-ctx-param:
    - shard-tglu:         NOTRUN -> [SKIP][72] ([i915#2527] / [i915#2856]) +1 other test skip
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@gen9_exec_parse@basic-rejected-ctx-param.html

  * igt@gen9_exec_parse@bb-start-param:
    - shard-tglu-1:       NOTRUN -> [SKIP][73] ([i915#2527] / [i915#2856])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@gen9_exec_parse@bb-start-param.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2:          NOTRUN -> [SKIP][74] ([i915#2856])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@gen9_exec_parse@unaligned-access.html
    - shard-dg1:          NOTRUN -> [SKIP][75] ([i915#2527]) +1 other test skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@gen9_exec_parse@unaligned-access.html
    - shard-mtlp:         NOTRUN -> [SKIP][76] ([i915#2856])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-7/igt@gen9_exec_parse@unaligned-access.html

  * igt@gen9_exec_parse@valid-registers:
    - shard-rkl:          NOTRUN -> [SKIP][77] ([i915#2527]) +3 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@gen9_exec_parse@valid-registers.html

  * igt@i915_drm_fdinfo@all-busy-check-all:
    - shard-dg1:          NOTRUN -> [SKIP][78] ([i915#14123])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@i915_drm_fdinfo@all-busy-check-all.html

  * igt@i915_module_load@fault-injection:
    - shard-dg1:          NOTRUN -> [ABORT][79] ([i915#11815] / [i915#15481]) +1 other test abort
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@i915_module_load@fault-injection.html

  * igt@i915_module_load@fault-injection@i915_driver_mmio_probe:
    - shard-dg1:          NOTRUN -> [INCOMPLETE][80] ([i915#15481])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@i915_module_load@fault-injection@i915_driver_mmio_probe.html

  * igt@i915_module_load@fault-injection@intel_connector_register:
    - shard-tglu:         NOTRUN -> [ABORT][81] ([i915#15342]) +1 other test abort
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-8/igt@i915_module_load@fault-injection@intel_connector_register.html

  * igt@i915_module_load@fault-injection@uc_fw_rsa_data_create:
    - shard-tglu:         NOTRUN -> [SKIP][82] ([i915#15479]) +4 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-8/igt@i915_module_load@fault-injection@uc_fw_rsa_data_create.html

  * igt@i915_module_load@reload-no-display:
    - shard-tglu:         [PASS][83] -> [DMESG-WARN][84] ([i915#13029] / [i915#14545])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-tglu-4/igt@i915_module_load@reload-no-display.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-2/igt@i915_module_load@reload-no-display.html

  * igt@i915_pm_freq_api@freq-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][85] ([i915#8399])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@i915_pm_freq_api@freq-suspend.html

  * igt@i915_pm_rps@min-max-config-loaded:
    - shard-dg2:          NOTRUN -> [SKIP][86] ([i915#11681] / [i915#6621])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-1/igt@i915_pm_rps@min-max-config-loaded.html
    - shard-dg1:          NOTRUN -> [SKIP][87] ([i915#11681] / [i915#6621])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@i915_pm_rps@min-max-config-loaded.html
    - shard-mtlp:         NOTRUN -> [SKIP][88] ([i915#11681] / [i915#6621])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-1/igt@i915_pm_rps@min-max-config-loaded.html

  * igt@i915_power@sanity:
    - shard-rkl:          NOTRUN -> [SKIP][89] ([i915#7984])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@i915_power@sanity.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - shard-dg1:          [PASS][90] -> [DMESG-WARN][91] ([i915#4391] / [i915#4423])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-16/igt@i915_suspend@basic-s2idle-without-i915.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-dg2:          [PASS][92] -> [FAIL][93] ([i915#5956]) +1 other test fail
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-1/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-tglu-1:       NOTRUN -> [SKIP][94] ([i915#1769] / [i915#3555])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
    - shard-snb:          NOTRUN -> [SKIP][95] ([i915#1769])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-snb7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-glk:          NOTRUN -> [SKIP][96] ([i915#1769])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk9/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-tglu-1:       NOTRUN -> [SKIP][97] ([i915#5286]) +2 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#5286]) +5 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
    - shard-dg1:          NOTRUN -> [SKIP][99] ([i915#4538] / [i915#5286]) +2 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
    - shard-tglu:         NOTRUN -> [SKIP][100] ([i915#5286]) +4 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html

  * igt@kms_big_fb@linear-64bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][101] ([i915#3638]) +3 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_big_fb@linear-64bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-64bpp-rotate-90:
    - shard-mtlp:         NOTRUN -> [SKIP][102] +3 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@kms_big_fb@x-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-dg2:          NOTRUN -> [SKIP][103] ([i915#4538] / [i915#5190]) +1 other test skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
    - shard-dg1:          NOTRUN -> [SKIP][104] ([i915#3638]) +2 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-17/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][105] +14 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][106] ([i915#4538])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][107] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@kms_ccs@bad-aux-stride-y-tiled-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-3:
    - shard-dg2:          NOTRUN -> [SKIP][108] ([i915#10307] / [i915#6095]) +105 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-dp-3.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][109] ([i915#6095]) +4 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-6/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][110] ([i915#12313])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][111] ([i915#14544] / [i915#6095]) +2 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-mc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][112] ([i915#6095]) +52 other tests skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-7/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][113] ([i915#12313]) +1 other test skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-7/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
    - shard-dg1:          NOTRUN -> [SKIP][114] ([i915#12313]) +1 other test skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-17/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
    - shard-tglu:         NOTRUN -> [SKIP][115] ([i915#12313]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-6/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html
    - shard-mtlp:         NOTRUN -> [SKIP][116] ([i915#12313]) +1 other test skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-6/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][117] ([i915#6095]) +29 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-4/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][118] ([i915#6095]) +60 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][119] ([i915#14694] / [i915#15582])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk1/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][120] ([i915#15582]) +1 other test incomplete
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-dg1:          NOTRUN -> [SKIP][121] ([i915#6095]) +199 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html
    - shard-glk:          NOTRUN -> [INCOMPLETE][122] ([i915#15582]) +1 other test incomplete
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk5/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][123] ([i915#14098] / [i915#14544] / [i915#6095]) +1 other test skip
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][124] ([i915#12313]) +4 other tests skip
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][125] ([i915#14098] / [i915#6095]) +41 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][126] ([i915#6095]) +29 other tests skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_ccs@missing-ccs-buffer-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-1.html

  * igt@kms_cdclk@mode-transition:
    - shard-rkl:          NOTRUN -> [SKIP][127] ([i915#3742])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_cdclk@mode-transition.html
    - shard-tglu:         NOTRUN -> [SKIP][128] ([i915#3742])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_edid@hdmi-edid-read:
    - shard-dg1:          NOTRUN -> [SKIP][129] ([i915#11151] / [i915#7828]) +4 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-12/igt@kms_chamelium_edid@hdmi-edid-read.html
    - shard-tglu:         NOTRUN -> [SKIP][130] ([i915#11151] / [i915#7828]) +7 other tests skip
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-3/igt@kms_chamelium_edid@hdmi-edid-read.html

  * igt@kms_chamelium_frames@dp-crc-single:
    - shard-tglu-1:       NOTRUN -> [SKIP][131] ([i915#11151] / [i915#7828]) +4 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_chamelium_frames@dp-crc-single.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-rkl:          NOTRUN -> [SKIP][132] ([i915#11151] / [i915#14544] / [i915#7828])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_chamelium_frames@hdmi-crc-multiple:
    - shard-dg2:          NOTRUN -> [SKIP][133] ([i915#11151] / [i915#7828]) +2 other tests skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@kms_chamelium_frames@hdmi-crc-multiple.html
    - shard-rkl:          NOTRUN -> [SKIP][134] ([i915#11151] / [i915#7828]) +4 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_chamelium_frames@hdmi-crc-multiple.html
    - shard-mtlp:         NOTRUN -> [SKIP][135] ([i915#11151] / [i915#7828]) +2 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-2/igt@kms_chamelium_frames@hdmi-crc-multiple.html

  * igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-3:
    - shard-dg2:          NOTRUN -> [FAIL][136] ([i915#7173]) +1 other test fail
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-3.html

  * igt@kms_content_protection@content-type-change:
    - shard-rkl:          NOTRUN -> [SKIP][137] ([i915#6944] / [i915#9424])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_content_protection@content-type-change.html

  * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
    - shard-rkl:          NOTRUN -> [SKIP][138] ([i915#15330])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html

  * igt@kms_content_protection@dp-mst-type-0-suspend-resume:
    - shard-dg1:          NOTRUN -> [SKIP][139] ([i915#15330])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][140] ([i915#15330] / [i915#3116])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@lic-type-0-hdcp14:
    - shard-dg2:          NOTRUN -> [SKIP][141] ([i915#6944])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-7/igt@kms_content_protection@lic-type-0-hdcp14.html
    - shard-dg1:          NOTRUN -> [SKIP][142] ([i915#6944])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-12/igt@kms_content_protection@lic-type-0-hdcp14.html
    - shard-tglu:         NOTRUN -> [SKIP][143] ([i915#6944])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-8/igt@kms_content_protection@lic-type-0-hdcp14.html
    - shard-mtlp:         NOTRUN -> [SKIP][144] ([i915#6944])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-1/igt@kms_content_protection@lic-type-0-hdcp14.html

  * igt@kms_content_protection@lic-type-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][145] ([i915#6944] / [i915#9424])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_content_protection@lic-type-1.html

  * igt@kms_content_protection@suspend-resume:
    - shard-rkl:          NOTRUN -> [SKIP][146] ([i915#6944]) +1 other test skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_content_protection@suspend-resume.html

  * igt@kms_content_protection@type1:
    - shard-tglu:         NOTRUN -> [SKIP][147] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-3/igt@kms_content_protection@type1.html

  * igt@kms_content_protection@uevent@pipe-a-dp-3:
    - shard-dg2:          NOTRUN -> [FAIL][148] ([i915#1339] / [i915#7173])
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_content_protection@uevent@pipe-a-dp-3.html

  * igt@kms_cursor_crc@cursor-onscreen-128x42:
    - shard-tglu:         [PASS][149] -> [FAIL][150] ([i915#13566]) +3 other tests fail
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-tglu-7/igt@kms_cursor_crc@cursor-onscreen-128x42.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-8/igt@kms_cursor_crc@cursor-onscreen-128x42.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [FAIL][151] ([i915#13566]) +2 other tests fail
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-2:
    - shard-rkl:          [PASS][152] -> [FAIL][153] ([i915#13566]) +1 other test fail
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-2.html
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_cursor_crc@cursor-random-256x85@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][154] ([i915#13049])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-tglu:         NOTRUN -> [SKIP][155] ([i915#3555]) +5 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x32:
    - shard-tglu-1:       NOTRUN -> [SKIP][156] ([i915#3555])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html

  * igt@kms_cursor_crc@cursor-sliding-256x85:
    - shard-tglu-1:       NOTRUN -> [FAIL][157] ([i915#13566]) +3 other tests fail
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-256x85.html

  * igt@kms_cursor_crc@cursor-sliding-512x170:
    - shard-tglu-1:       NOTRUN -> [SKIP][158] ([i915#13049])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_cursor_crc@cursor-sliding-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-dg1:          NOTRUN -> [SKIP][159] ([i915#13049])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@kms_cursor_crc@cursor-sliding-512x512.html
    - shard-tglu:         NOTRUN -> [SKIP][160] ([i915#13049])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-toggle:
    - shard-dg2:          NOTRUN -> [SKIP][161] ([i915#13046] / [i915#5354])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html
    - shard-mtlp:         NOTRUN -> [SKIP][162] ([i915#9809])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-5/igt@kms_cursor_legacy@cursora-vs-flipb-toggle.html

  * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
    - shard-rkl:          NOTRUN -> [SKIP][163] ([i915#9067])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-dg2:          NOTRUN -> [SKIP][164] ([i915#4103] / [i915#4213])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
    - shard-rkl:          NOTRUN -> [SKIP][165] ([i915#4103])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
    - shard-dg1:          NOTRUN -> [SKIP][166] ([i915#4103] / [i915#4213])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
    - shard-tglu:         NOTRUN -> [SKIP][167] ([i915#4103])
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
    - shard-mtlp:         NOTRUN -> [SKIP][168] ([i915#4213])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][169] ([i915#9723])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_dp_link_training@non-uhbr-sst:
    - shard-tglu-1:       NOTRUN -> [SKIP][170] ([i915#13749])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_dp_link_training@non-uhbr-sst.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-dg2:          [PASS][171] -> [SKIP][172] ([i915#13707])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-11/igt@kms_dp_linktrain_fallback@dp-fallback.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-dg1:          NOTRUN -> [SKIP][173] ([i915#3840] / [i915#9053])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
    - shard-tglu:         NOTRUN -> [SKIP][174] ([i915#3840] / [i915#9053])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][175] ([i915#9878])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk5/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_feature_discovery@chamelium:
    - shard-tglu:         NOTRUN -> [SKIP][176] ([i915#2065] / [i915#4854])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-4/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-2x:
    - shard-rkl:          NOTRUN -> [SKIP][177] ([i915#1839])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_feature_discovery@display-2x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-rkl:          NOTRUN -> [SKIP][178] ([i915#9337])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr1:
    - shard-tglu-1:       NOTRUN -> [SKIP][179] ([i915#658])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-absolute-wf_vblank-interruptible:
    - shard-tglu-1:       NOTRUN -> [SKIP][180] ([i915#3637] / [i915#9934]) +4 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-dg2:          NOTRUN -> [SKIP][181] ([i915#9934])
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_flip@2x-dpms-vs-vblank-race.html
    - shard-mtlp:         NOTRUN -> [SKIP][182] ([i915#3637] / [i915#9934])
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-4/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop:
    - shard-tglu:         NOTRUN -> [SKIP][183] ([i915#9934])
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-2/igt@kms_flip@2x-flip-vs-dpms-on-nop.html

  * igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1:
    - shard-snb:          [PASS][184] -> [TIMEOUT][185] ([i915#14033]) +1 other test timeout
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-snb7/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-snb5/igt@kms_flip@2x-flip-vs-suspend@ab-vga1-hdmi-a1.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-dg1:          NOTRUN -> [SKIP][186] ([i915#9934]) +2 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@kms_flip@2x-modeset-vs-vblank-race.html
    - shard-tglu:         NOTRUN -> [SKIP][187] ([i915#3637] / [i915#9934]) +4 other tests skip
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-2/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][188] ([i915#9934]) +4 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][189] ([i915#12745] / [i915#4839])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk10/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][190] ([i915#12745])
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk10/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][191] ([i915#15643])
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
    - shard-dg1:          NOTRUN -> [SKIP][192] ([i915#15643])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling:
    - shard-dg2:          NOTRUN -> [SKIP][193] ([i915#15643] / [i915#5190])
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][194] ([i915#15643])
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
    - shard-dg2:          NOTRUN -> [SKIP][195] ([i915#15643])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
    - shard-tglu:         NOTRUN -> [SKIP][196] ([i915#15643]) +2 other tests skip
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
    - shard-mtlp:         NOTRUN -> [SKIP][197] ([i915#15643]) +1 other test skip
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling:
    - shard-rkl:          NOTRUN -> [SKIP][198] ([i915#14544] / [i915#15643])
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][199] ([i915#8708])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-3/igt@kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][200] ([i915#10056])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk10/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][201] ([i915#15102]) +1 other test skip
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt:
    - shard-rkl:          NOTRUN -> [SKIP][202] ([i915#15102]) +4 other tests skip
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-render:
    - shard-dg2:          NOTRUN -> [SKIP][203] ([i915#15102]) +2 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
    - shard-rkl:          NOTRUN -> [SKIP][204] ([i915#14544] / [i915#15102] / [i915#3023]) +1 other test skip
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt:
    - shard-glk10:        NOTRUN -> [SKIP][205] +99 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk10/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-mtlp:         NOTRUN -> [SKIP][206] ([i915#1825]) +5 other tests skip
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html
    - shard-dg2:          NOTRUN -> [SKIP][207] ([i915#8708]) +2 other tests skip
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
    - shard-tglu-1:       NOTRUN -> [SKIP][208] ([i915#15102]) +11 other tests skip
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
    - shard-dg2:          NOTRUN -> [SKIP][209] ([i915#15102] / [i915#3458]) +4 other tests skip
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move:
    - shard-tglu:         NOTRUN -> [SKIP][210] ([i915#15102]) +17 other tests skip
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-1p-rte:
    - shard-rkl:          NOTRUN -> [SKIP][211] ([i915#15102] / [i915#3023]) +16 other tests skip
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-1p-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][212] ([i915#8708]) +4 other tests skip
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-12/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-pwrite:
    - shard-rkl:          NOTRUN -> [SKIP][213] ([i915#14544] / [i915#1825]) +3 other tests skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][214] ([i915#1825]) +28 other tests skip
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-onoff:
    - shard-dg2:          NOTRUN -> [SKIP][215] ([i915#5354]) +3 other tests skip
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-rgb565-draw-render:
    - shard-dg1:          NOTRUN -> [SKIP][216] ([i915#15102] / [i915#3458]) +7 other tests skip
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-rgb565-draw-render.html

  * igt@kms_getfb@getfb-handle-zero:
    - shard-dg1:          [PASS][217] -> [DMESG-WARN][218] ([i915#4423]) +2 other tests dmesg-warn
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-13/igt@kms_getfb@getfb-handle-zero.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@kms_getfb@getfb-handle-zero.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglu-1:       NOTRUN -> [SKIP][219] ([i915#13030])
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-dg1:          NOTRUN -> [SKIP][220] ([i915#3555] / [i915#8228])
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-17/igt@kms_hdr@invalid-metadata-sizes.html
    - shard-tglu:         NOTRUN -> [SKIP][221] ([i915#3555] / [i915#8228])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-4/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][222] ([i915#3555] / [i915#8228])
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-dg2:          [PASS][223] -> [SKIP][224] ([i915#3555] / [i915#8228]) +1 other test skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-11/igt@kms_hdr@static-toggle-suspend.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][225] ([i915#15459])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-dg1:          NOTRUN -> [SKIP][226] ([i915#15458])
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@kms_joiner@basic-force-ultra-joiner.html
    - shard-tglu:         NOTRUN -> [SKIP][227] ([i915#15458]) +1 other test skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-2/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][228] ([i915#14544] / [i915#15458])
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_panel_fitting@legacy:
    - shard-tglu-1:       NOTRUN -> [SKIP][229] ([i915#6301])
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping:
    - shard-dg1:          NOTRUN -> [SKIP][230] ([i915#15608] / [i915#15609] / [i915#8825]) +1 other test skip
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping@pipe-b-plane-5:
    - shard-dg1:          NOTRUN -> [SKIP][231] ([i915#15608]) +25 other tests skip
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-14/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier-source-clamping@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier@pipe-a-plane-0:
    - shard-dg2:          NOTRUN -> [SKIP][232] ([i915#15608]) +8 other tests skip
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier@pipe-a-plane-0.html

  * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier@pipe-b-plane-3:
    - shard-mtlp:         NOTRUN -> [SKIP][233] ([i915#15608]) +4 other tests skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier@pipe-b-plane-3.html

  * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier@pipe-b-plane-5:
    - shard-dg2:          NOTRUN -> [SKIP][234] ([i915#15608] / [i915#8825]) +1 other test skip
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier@pipe-b-plane-5.html
    - shard-mtlp:         NOTRUN -> [SKIP][235] ([i915#15608] / [i915#8825]) +1 other test skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
    - shard-rkl:          NOTRUN -> [SKIP][236] ([i915#15608] / [i915#15609] / [i915#8825]) +2 other tests skip
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping@pipe-b-plane-5:
    - shard-rkl:          NOTRUN -> [SKIP][237] ([i915#15609] / [i915#8825]) +2 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier@pipe-b-plane-7:
    - shard-dg1:          NOTRUN -> [SKIP][238] ([i915#15608] / [i915#8825]) +3 other tests skip
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier@pipe-b-plane-7.html
    - shard-tglu:         NOTRUN -> [SKIP][239] ([i915#15608] / [i915#8825]) +3 other tests skip
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-5/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier@pipe-b-plane-7.html

  * igt@kms_plane@pixel-format-4-tiled-modifier-source-clamping@pipe-a-plane-7:
    - shard-tglu:         NOTRUN -> [SKIP][240] ([i915#15609]) +2 other tests skip
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-8/igt@kms_plane@pixel-format-4-tiled-modifier-source-clamping@pipe-a-plane-7.html

  * igt@kms_plane@pixel-format-4-tiled-modifier@pipe-b-plane-5:
    - shard-rkl:          NOTRUN -> [SKIP][241] ([i915#15608] / [i915#8825]) +1 other test skip
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_plane@pixel-format-4-tiled-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping@pipe-a-plane-7:
    - shard-tglu-1:       NOTRUN -> [SKIP][242] ([i915#15609]) +3 other tests skip
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier-source-clamping@pipe-a-plane-7.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping:
    - shard-dg2:          NOTRUN -> [SKIP][243] ([i915#15608] / [i915#15609] / [i915#8825])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-a-plane-5:
    - shard-dg2:          NOTRUN -> [SKIP][244] ([i915#15609])
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-a-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-a-plane-7:
    - shard-dg1:          NOTRUN -> [SKIP][245] ([i915#15609]) +1 other test skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-a-plane-7.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-b-plane-5:
    - shard-dg2:          NOTRUN -> [SKIP][246] ([i915#15609] / [i915#8825])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-b-plane-5.html
    - shard-mtlp:         NOTRUN -> [SKIP][247] ([i915#15609]) +1 other test skip
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-4/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-b-plane-7:
    - shard-dg1:          NOTRUN -> [SKIP][248] ([i915#15609] / [i915#8825]) +1 other test skip
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-b-plane-7.html
    - shard-tglu:         NOTRUN -> [SKIP][249] ([i915#15609] / [i915#8825]) +2 other tests skip
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier-source-clamping@pipe-b-plane-7.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping@pipe-a-plane-0:
    - shard-rkl:          NOTRUN -> [SKIP][250] ([i915#15608]) +16 other tests skip
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping@pipe-a-plane-0.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping@pipe-a-plane-5:
    - shard-rkl:          NOTRUN -> [SKIP][251] ([i915#15609]) +2 other tests skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping@pipe-a-plane-5.html

  * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping:
    - shard-tglu:         NOTRUN -> [SKIP][252] ([i915#15608] / [i915#15609] / [i915#8825]) +2 other tests skip
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-3/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping@pipe-b-plane-3:
    - shard-tglu:         NOTRUN -> [SKIP][253] ([i915#15608]) +31 other tests skip
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-3/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping@pipe-b-plane-3.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping:
    - shard-tglu-1:       NOTRUN -> [SKIP][254] ([i915#15608] / [i915#15609] / [i915#8825]) +1 other test skip
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping@pipe-b-plane-3:
    - shard-tglu-1:       NOTRUN -> [SKIP][255] ([i915#15608]) +11 other tests skip
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping@pipe-b-plane-3.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping@pipe-b-plane-7:
    - shard-tglu-1:       NOTRUN -> [SKIP][256] ([i915#15609] / [i915#8825]) +1 other test skip
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping@pipe-b-plane-7.html

  * igt@kms_plane@plane-panning-bottom-right-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][257] ([i915#13026]) +1 other test incomplete
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk3/igt@kms_plane@plane-panning-bottom-right-suspend.html

  * igt@kms_plane_cursor@overlay:
    - shard-rkl:          [PASS][258] -> [FAIL][259] ([i915#15530] / [i915#15532])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-7/igt@kms_plane_cursor@overlay.html
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_plane_cursor@overlay.html

  * igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-128:
    - shard-rkl:          NOTRUN -> [FAIL][260] ([i915#15532]) +1 other test fail
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-128.html

  * igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-64:
    - shard-rkl:          NOTRUN -> [FAIL][261] ([i915#15530])
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-1-size-64.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-tglu-1:       NOTRUN -> [SKIP][262] ([i915#13958])
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-rkl:          NOTRUN -> [SKIP][263] ([i915#13958]) +1 other test skip
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-dg2:          [PASS][264] -> [SKIP][265] ([i915#6953] / [i915#9423])
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-11/igt@kms_plane_scaling@intel-max-src-size.html
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@kms_plane_scaling@intel-max-src-size.html
    - shard-tglu-1:       NOTRUN -> [SKIP][266] ([i915#6953])
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b:
    - shard-rkl:          NOTRUN -> [SKIP][267] ([i915#15329]) +3 other tests skip
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html
    - shard-dg1:          NOTRUN -> [SKIP][268] ([i915#15329]) +4 other tests skip
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][269] ([i915#15329]) +4 other tests skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-9/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a:
    - shard-rkl:          NOTRUN -> [SKIP][270] ([i915#14544] / [i915#15329]) +3 other tests skip
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25:
    - shard-mtlp:         NOTRUN -> [SKIP][271] ([i915#15329] / [i915#6953])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25@pipe-b:
    - shard-mtlp:         NOTRUN -> [SKIP][272] ([i915#15329]) +3 other tests skip
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25@pipe-b.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-rkl:          NOTRUN -> [SKIP][273] ([i915#5354])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_pm_backlight@bad-brightness.html
    - shard-tglu:         NOTRUN -> [SKIP][274] ([i915#9812])
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-tglu-1:       NOTRUN -> [SKIP][275] ([i915#9812])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-rkl:          NOTRUN -> [SKIP][276] ([i915#9685]) +1 other test skip
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_pm_dc@dc6-psr.html
    - shard-tglu:         NOTRUN -> [SKIP][277] ([i915#9685])
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-6/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-dg1:          NOTRUN -> [SKIP][278] ([i915#8430])
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_pm_lpsp@screens-disabled.html
    - shard-tglu:         NOTRUN -> [SKIP][279] ([i915#8430])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-dg1:          [PASS][280] -> [SKIP][281] ([i915#15073])
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-14/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-17/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-rkl:          [PASS][282] -> [SKIP][283] ([i915#15073]) +2 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-glk:          NOTRUN -> [INCOMPLETE][284] ([i915#10553])
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk6/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-glk10:        NOTRUN -> [SKIP][285] ([i915#11520]) +1 other test skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk10/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
    - shard-mtlp:         NOTRUN -> [SKIP][286] ([i915#12316])
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-4/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][287] ([i915#11520]) +17 other tests skip
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk9/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf:
    - shard-tglu-1:       NOTRUN -> [SKIP][288] ([i915#11520]) +1 other test skip
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
    - shard-rkl:          NOTRUN -> [SKIP][289] ([i915#11520]) +5 other tests skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
    - shard-snb:          NOTRUN -> [SKIP][290] ([i915#11520]) +2 other tests skip
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-snb6/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
    - shard-dg1:          NOTRUN -> [SKIP][291] ([i915#11520]) +3 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-17/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html
    - shard-tglu:         NOTRUN -> [SKIP][292] ([i915#11520]) +4 other tests skip
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-5/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf:
    - shard-dg2:          NOTRUN -> [SKIP][293] ([i915#11520]) +4 other tests skip
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-5/igt@kms_psr2_sf@psr2-overlay-plane-update-continuous-sf.html

  * igt@kms_psr@fbc-psr-cursor-plane-move:
    - shard-dg2:          NOTRUN -> [SKIP][294] ([i915#1072] / [i915#9732]) +4 other tests skip
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@kms_psr@fbc-psr-cursor-plane-move.html

  * igt@kms_psr@fbc-psr-cursor-plane-move@edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][295] ([i915#9688]) +4 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-4/igt@kms_psr@fbc-psr-cursor-plane-move@edp-1.html

  * igt@kms_psr@fbc-psr-no-drrs:
    - shard-tglu:         NOTRUN -> [SKIP][296] ([i915#9732]) +15 other tests skip
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-9/igt@kms_psr@fbc-psr-no-drrs.html

  * igt@kms_psr@fbc-psr2-cursor-mmap-gtt:
    - shard-glk:          NOTRUN -> [SKIP][297] +442 other tests skip
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk3/igt@kms_psr@fbc-psr2-cursor-mmap-gtt.html

  * igt@kms_psr@pr-primary-blt:
    - shard-rkl:          NOTRUN -> [SKIP][298] ([i915#1072] / [i915#14544] / [i915#9732])
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_psr@pr-primary-blt.html

  * igt@kms_psr@psr-cursor-render:
    - shard-rkl:          NOTRUN -> [SKIP][299] ([i915#1072] / [i915#9732]) +15 other tests skip
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_psr@psr-cursor-render.html

  * igt@kms_psr@psr2-cursor-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][300] ([i915#1072] / [i915#9732]) +10 other tests skip
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-12/igt@kms_psr@psr2-cursor-mmap-gtt.html

  * igt@kms_psr@psr2-sprite-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][301] ([i915#9732]) +10 other tests skip
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_psr@psr2-sprite-mmap-gtt.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-glk:          NOTRUN -> [INCOMPLETE][302] ([i915#15492])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk9/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
    - shard-dg2:          NOTRUN -> [SKIP][303] ([i915#5190])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
    - shard-mtlp:         NOTRUN -> [SKIP][304] ([i915#5289])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-2/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-tglu:         NOTRUN -> [SKIP][305] ([i915#5289]) +2 other tests skip
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-rkl:          NOTRUN -> [SKIP][306] ([i915#5289]) +1 other test skip
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_selftest@drm_framebuffer:
    - shard-tglu-1:       NOTRUN -> [ABORT][307] ([i915#13179]) +1 other test abort
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_selftest@drm_framebuffer.html

  * igt@kms_setmode@basic:
    - shard-snb:          [PASS][308] -> [FAIL][309] ([i915#15106]) +2 other tests fail
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-snb1/igt@kms_setmode@basic.html
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-snb4/igt@kms_setmode@basic.html
    - shard-tglu:         [PASS][310] -> [FAIL][311] ([i915#15106]) +2 other tests fail
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-tglu-10/igt@kms_setmode@basic.html
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-4/igt@kms_setmode@basic.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-rkl:          NOTRUN -> [SKIP][312] ([i915#3555]) +7 other tests skip
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_setmode@basic@pipe-a-hdmi-a-1:
    - shard-rkl:          [PASS][313] -> [FAIL][314] ([i915#15106]) +2 other tests fail
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@kms_setmode@basic@pipe-a-hdmi-a-1.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_setmode@basic@pipe-a-hdmi-a-1.html

  * igt@kms_setmode@invalid-clone-single-crtc:
    - shard-dg2:          NOTRUN -> [SKIP][315] ([i915#3555])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@kms_setmode@invalid-clone-single-crtc.html
    - shard-dg1:          NOTRUN -> [SKIP][316] ([i915#3555]) +3 other tests skip
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_setmode@invalid-clone-single-crtc.html
    - shard-mtlp:         NOTRUN -> [SKIP][317] ([i915#3555] / [i915#8809])
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-3/igt@kms_setmode@invalid-clone-single-crtc.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-glk:          NOTRUN -> [FAIL][318] ([i915#10959])
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk9/igt@kms_tiled_display@basic-test-pattern.html
    - shard-rkl:          NOTRUN -> [SKIP][319] ([i915#8623])
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@ts-continuation-dpms-suspend:
    - shard-rkl:          [PASS][320] -> [INCOMPLETE][321] ([i915#12276])
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@kms_vblank@ts-continuation-dpms-suspend.html
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_vblank@ts-continuation-dpms-suspend.html

  * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][322] ([i915#12276])
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][323] ([i915#12276])
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk1/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vrr@flip-basic:
    - shard-rkl:          NOTRUN -> [SKIP][324] ([i915#15243] / [i915#3555]) +1 other test skip
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_vrr@flip-basic.html

  * igt@kms_vrr@flip-basic-fastset:
    - shard-tglu-1:       NOTRUN -> [SKIP][325] ([i915#9906])
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@kms_vrr@flip-basic-fastset.html

  * igt@kms_vrr@flip-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][326] ([i915#14544] / [i915#15243] / [i915#3555])
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@flipline:
    - shard-mtlp:         NOTRUN -> [SKIP][327] ([i915#3555] / [i915#8808])
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-5/igt@kms_vrr@flipline.html
    - shard-dg2:          NOTRUN -> [SKIP][328] ([i915#15243] / [i915#3555])
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_vrr@flipline.html

  * igt@kms_vrr@negative-basic:
    - shard-rkl:          NOTRUN -> [SKIP][329] ([i915#3555] / [i915#9906])
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_vrr@negative-basic.html
    - shard-mtlp:         [PASS][330] -> [FAIL][331] ([i915#15420]) +1 other test fail
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-mtlp-4/igt@kms_vrr@negative-basic.html
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-1/igt@kms_vrr@negative-basic.html

  * igt@perf_pmu@event-wait:
    - shard-mtlp:         NOTRUN -> [SKIP][332] ([i915#8807])
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-3/igt@perf_pmu@event-wait.html

  * igt@perf_pmu@event-wait@rcs0:
    - shard-dg2:          NOTRUN -> [SKIP][333] +4 other tests skip
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-5/igt@perf_pmu@event-wait@rcs0.html
    - shard-dg1:          NOTRUN -> [SKIP][334] +15 other tests skip
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-12/igt@perf_pmu@event-wait@rcs0.html
    - shard-mtlp:         NOTRUN -> [SKIP][335] ([i915#3555] / [i915#8807])
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-3/igt@perf_pmu@event-wait@rcs0.html

  * igt@perf_pmu@frequency:
    - shard-dg2:          NOTRUN -> [FAIL][336] ([i915#12549] / [i915#6806]) +1 other test fail
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@perf_pmu@frequency.html
    - shard-dg1:          NOTRUN -> [FAIL][337] ([i915#12549] / [i915#6806]) +1 other test fail
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-16/igt@perf_pmu@frequency.html

  * igt@perf_pmu@module-unload:
    - shard-tglu:         NOTRUN -> [FAIL][338] ([i915#14433])
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-6/igt@perf_pmu@module-unload.html

  * igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem:
    - shard-dg1:          NOTRUN -> [SKIP][339] ([i915#14121]) +1 other test skip
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-17/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html

  * igt@prime_vgem@fence-write-hang:
    - shard-tglu:         NOTRUN -> [SKIP][340] +46 other tests skip
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-3/igt@prime_vgem@fence-write-hang.html
    - shard-mtlp:         NOTRUN -> [SKIP][341] ([i915#3708])
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@prime_vgem@fence-write-hang.html
    - shard-dg2:          NOTRUN -> [SKIP][342] ([i915#3708])
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-1/igt@prime_vgem@fence-write-hang.html
    - shard-rkl:          NOTRUN -> [SKIP][343] ([i915#14544] / [i915#3708])
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@prime_vgem@fence-write-hang.html
    - shard-dg1:          NOTRUN -> [SKIP][344] ([i915#3708])
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@prime_vgem@fence-write-hang.html

  * igt@sriov_basic@bind-unbind-vf@vf-1:
    - shard-tglu-1:       NOTRUN -> [FAIL][345] ([i915#12910]) +9 other tests fail
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-1/igt@sriov_basic@bind-unbind-vf@vf-1.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-dg2:          NOTRUN -> [SKIP][346] ([i915#9917])
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@sriov_basic@enable-vfs-autoprobe-off.html
    - shard-rkl:          NOTRUN -> [SKIP][347] ([i915#9917]) +1 other test skip
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@sriov_basic@enable-vfs-autoprobe-off.html
    - shard-dg1:          NOTRUN -> [SKIP][348] ([i915#9917])
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@sriov_basic@enable-vfs-autoprobe-off@numvfs-6:
    - shard-tglu:         NOTRUN -> [FAIL][349] ([i915#12910]) +9 other tests fail
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-10/igt@sriov_basic@enable-vfs-autoprobe-off@numvfs-6.html
    - shard-mtlp:         NOTRUN -> [FAIL][350] ([i915#12910]) +9 other tests fail
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-3/igt@sriov_basic@enable-vfs-autoprobe-off@numvfs-6.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - shard-rkl:          [INCOMPLETE][351] ([i915#13356]) -> [PASS][352]
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@gem_ctx_isolation@preservation-s3@bcs0.html
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-1/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_exec_endless@dispatch@ccs0:
    - shard-dg2:          [TIMEOUT][353] ([i915#3778] / [i915#7016]) -> [PASS][354] +1 other test pass
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-4/igt@gem_exec_endless@dispatch@ccs0.html
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@gem_exec_endless@dispatch@ccs0.html

  * igt@gem_lmem_swapping@smem-oom:
    - shard-dg2:          [FAIL][355] -> [PASS][356]
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-8/igt@gem_lmem_swapping@smem-oom.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@gem_lmem_swapping@smem-oom.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2:          [CRASH][357] ([i915#5493]) -> [PASS][358]
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-8/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-6/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_pxp@create-regular-context-1:
    - shard-rkl:          [SKIP][359] ([i915#4270]) -> [PASS][360]
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@gem_pxp@create-regular-context-1.html
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@gem_pxp@create-regular-context-1.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-rkl:          [ABORT][361] ([i915#15131]) -> [PASS][362]
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-1/igt@gem_workarounds@suspend-resume-context.html
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@gem_workarounds@suspend-resume-context.html

  * igt@i915_module_load@load:
    - shard-rkl:          ([PASS][363], [PASS][364], [PASS][365], [PASS][366], [PASS][367], [PASS][368], [PASS][369], [PASS][370], [PASS][371], [PASS][372], [PASS][373], [PASS][374], [PASS][375], [PASS][376], [PASS][377], [PASS][378], [PASS][379], [PASS][380], [PASS][381], [PASS][382], [PASS][383], [PASS][384], [SKIP][385]) ([i915#14785]) -> ([PASS][386], [PASS][387], [PASS][388], [PASS][389], [PASS][390], [PASS][391], [PASS][392], [PASS][393], [PASS][394], [PASS][395], [PASS][396], [PASS][397], [PASS][398], [PASS][399], [PASS][400], [PASS][401], [PASS][402], [PASS][403], [PASS][404], [PASS][405], [PASS][406], [PASS][407], [PASS][408], [PASS][409], [PASS][410])
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-7/igt@i915_module_load@load.html
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-7/igt@i915_module_load@load.html
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@i915_module_load@load.html
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@i915_module_load@load.html
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@i915_module_load@load.html
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@i915_module_load@load.html
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@i915_module_load@load.html
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-2/igt@i915_module_load@load.html
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@i915_module_load@load.html
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@i915_module_load@load.html
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@i915_module_load@load.html
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-7/igt@i915_module_load@load.html
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@i915_module_load@load.html
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@i915_module_load@load.html
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-1/igt@i915_module_load@load.html
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-2/igt@i915_module_load@load.html
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@i915_module_load@load.html
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@i915_module_load@load.html
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@i915_module_load@load.html
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@i915_module_load@load.html
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-2/igt@i915_module_load@load.html
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@i915_module_load@load.html
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@i915_module_load@load.html
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@i915_module_load@load.html
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@i915_module_load@load.html
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@i915_module_load@load.html
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@i915_module_load@load.html
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@i915_module_load@load.html
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@i915_module_load@load.html
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@i915_module_load@load.html
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@i915_module_load@load.html
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@i915_module_load@load.html
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@i915_module_load@load.html
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-1/igt@i915_module_load@load.html
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@i915_module_load@load.html
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-1/igt@i915_module_load@load.html
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@i915_module_load@load.html
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@i915_module_load@load.html
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@i915_module_load@load.html
   [402]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@i915_module_load@load.html
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@i915_module_load@load.html
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@i915_module_load@load.html
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@i915_module_load@load.html
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@i915_module_load@load.html
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@i915_module_load@load.html
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@i915_module_load@load.html
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@i915_module_load@load.html
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@i915_module_load@load.html

  * igt@i915_module_load@reload-no-display:
    - shard-dg2:          [DMESG-WARN][411] ([i915#13029] / [i915#14545]) -> [PASS][412]
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-3/igt@i915_module_load@reload-no-display.html
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@i915_module_load@reload-no-display.html
    - shard-dg1:          [DMESG-WARN][413] ([i915#13029] / [i915#14545]) -> [PASS][414]
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-16/igt@i915_module_load@reload-no-display.html
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@i915_module_load@reload-no-display.html

  * igt@i915_selftest@live@workarounds:
    - shard-dg2:          [DMESG-FAIL][415] ([i915#12061]) -> [PASS][416] +1 other test pass
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-3/igt@i915_selftest@live@workarounds.html
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-8/igt@i915_selftest@live@workarounds.html

  * igt@i915_suspend@sysfs-reader:
    - shard-rkl:          [INCOMPLETE][417] ([i915#4817]) -> [PASS][418]
   [417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@i915_suspend@sysfs-reader.html
   [418]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@i915_suspend@sysfs-reader.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-mtlp:         [FAIL][419] ([i915#5138]) -> [PASS][420]
   [419]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [420]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-8/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          [INCOMPLETE][421] ([i915#15582]) -> [PASS][422]
   [421]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-glk6/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html
   [422]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk1/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-sliding-128x42:
    - shard-rkl:          [FAIL][423] ([i915#13566]) -> [PASS][424] +3 other tests pass
   [423]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@kms_cursor_crc@cursor-sliding-128x42.html
   [424]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@kms_cursor_crc@cursor-sliding-128x42.html

  * igt@kms_hdmi_inject@inject-4k:
    - shard-mtlp:         [SKIP][425] -> [PASS][426]
   [425]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-mtlp-1/igt@kms_hdmi_inject@inject-4k.html
   [426]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-2/igt@kms_hdmi_inject@inject-4k.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-rkl:          [SKIP][427] ([i915#6953]) -> [PASS][428]
   [427]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@kms_plane_scaling@intel-max-src-size.html
   [428]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-1/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-rkl:          [SKIP][429] ([i915#15073]) -> [PASS][430]
   [429]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
   [430]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-dg2:          [SKIP][431] ([i915#15073]) -> [PASS][432]
   [431]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-3/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
   [432]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
    - shard-rkl:          [SKIP][433] ([i915#14544] / [i915#15073]) -> [PASS][434]
   [433]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
   [434]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-dg1:          [SKIP][435] ([i915#15073]) -> [PASS][436]
   [435]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-14/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [436]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-12/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-1:
    - shard-glk:          [INCOMPLETE][437] ([i915#12276]) -> [PASS][438]
   [437]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-glk9/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-1.html
   [438]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk1/igt@kms_vblank@ts-continuation-suspend@pipe-a-hdmi-a-1.html

  
#### Warnings ####

  * igt@api_intel_bb@object-reloc-purge-cache:
    - shard-rkl:          [SKIP][439] ([i915#14544] / [i915#8411]) -> [SKIP][440] ([i915#8411])
   [439]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@api_intel_bb@object-reloc-purge-cache.html
   [440]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@api_intel_bb@object-reloc-purge-cache.html

  * igt@gem_ccs@block-copy-compressed:
    - shard-rkl:          [SKIP][441] ([i915#14544] / [i915#3555] / [i915#9323]) -> [SKIP][442] ([i915#3555] / [i915#9323])
   [441]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gem_ccs@block-copy-compressed.html
   [442]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@gem_ccs@block-copy-compressed.html

  * igt@gem_ccs@large-ctrl-surf-copy:
    - shard-rkl:          [SKIP][443] ([i915#13008]) -> [SKIP][444] ([i915#13008] / [i915#14544])
   [443]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@gem_ccs@large-ctrl-surf-copy.html
   [444]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_ccs@large-ctrl-surf-copy.html

  * igt@gem_ctx_isolation@preservation-s3:
    - shard-rkl:          [INCOMPLETE][445] ([i915#13356]) -> [ABORT][446] ([i915#15131])
   [445]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@gem_ctx_isolation@preservation-s3.html
   [446]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-1/igt@gem_ctx_isolation@preservation-s3.html

  * igt@gem_ctx_sseu@mmap-args:
    - shard-rkl:          [SKIP][447] ([i915#280]) -> [SKIP][448] ([i915#14544] / [i915#280])
   [447]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@gem_ctx_sseu@mmap-args.html
   [448]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_ctx_sseu@mmap-args.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-rkl:          [SKIP][449] ([i915#14544] / [i915#4525]) -> [SKIP][450] ([i915#4525])
   [449]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gem_exec_balancer@parallel-contexts.html
   [450]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_reloc@basic-gtt-wc:
    - shard-rkl:          [SKIP][451] ([i915#3281]) -> [SKIP][452] ([i915#14544] / [i915#3281]) +1 other test skip
   [451]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@gem_exec_reloc@basic-gtt-wc.html
   [452]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-wc.html

  * igt@gem_exec_reloc@basic-wc-cpu:
    - shard-rkl:          [SKIP][453] ([i915#14544] / [i915#3281]) -> [SKIP][454] ([i915#3281]) +3 other tests skip
   [453]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gem_exec_reloc@basic-wc-cpu.html
   [454]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@gem_exec_reloc@basic-wc-cpu.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-rkl:          [SKIP][455] ([i915#14544] / [i915#4613] / [i915#7582]) -> [SKIP][456] ([i915#4613] / [i915#7582])
   [455]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gem_lmem_evict@dontneed-evict-race.html
   [456]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@heavy-verify-random-ccs:
    - shard-rkl:          [SKIP][457] ([i915#14544] / [i915#4613]) -> [SKIP][458] ([i915#4613]) +1 other test skip
   [457]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-random-ccs.html
   [458]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@gem_lmem_swapping@heavy-verify-random-ccs.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-rkl:          [SKIP][459] ([i915#4613]) -> [SKIP][460] ([i915#14544] / [i915#4613])
   [459]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@gem_lmem_swapping@parallel-multi.html
   [460]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_partial_pwrite_pread@write-snoop:
    - shard-rkl:          [SKIP][461] ([i915#14544] / [i915#3282]) -> [SKIP][462] ([i915#3282]) +1 other test skip
   [461]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gem_partial_pwrite_pread@write-snoop.html
   [462]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@gem_partial_pwrite_pread@write-snoop.html

  * igt@gem_pread@snoop:
    - shard-rkl:          [SKIP][463] ([i915#3282]) -> [SKIP][464] ([i915#14544] / [i915#3282])
   [463]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@gem_pread@snoop.html
   [464]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gem_pread@snoop.html

  * igt@gem_userptr_blits@unsync-overlap:
    - shard-rkl:          [SKIP][465] ([i915#14544] / [i915#3297]) -> [SKIP][466] ([i915#3297]) +1 other test skip
   [465]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gem_userptr_blits@unsync-overlap.html
   [466]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@gem_userptr_blits@unsync-overlap.html

  * igt@gen9_exec_parse@batch-without-end:
    - shard-rkl:          [SKIP][467] ([i915#2527]) -> [SKIP][468] ([i915#14544] / [i915#2527])
   [467]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@gen9_exec_parse@batch-without-end.html
   [468]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@gen9_exec_parse@batch-without-end.html

  * igt@gen9_exec_parse@secure-batches:
    - shard-rkl:          [SKIP][469] ([i915#14544] / [i915#2527]) -> [SKIP][470] ([i915#2527])
   [469]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@gen9_exec_parse@secure-batches.html
   [470]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@gen9_exec_parse@secure-batches.html

  * igt@i915_module_load@resize-bar:
    - shard-rkl:          [SKIP][471] ([i915#6412]) -> [SKIP][472] ([i915#14544] / [i915#6412])
   [471]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@i915_module_load@resize-bar.html
   [472]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@i915_module_load@resize-bar.html

  * igt@i915_pm_freq_api@freq-suspend:
    - shard-rkl:          [SKIP][473] ([i915#14544] / [i915#8399]) -> [SKIP][474] ([i915#8399])
   [473]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@i915_pm_freq_api@freq-suspend.html
   [474]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@i915_pm_freq_api@freq-suspend.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-0:
    - shard-rkl:          [SKIP][475] ([i915#14544] / [i915#5286]) -> [SKIP][476] ([i915#5286])
   [475]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html
   [476]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-rkl:          [SKIP][477] ([i915#5286]) -> [SKIP][478] ([i915#14544] / [i915#5286]) +2 other tests skip
   [477]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
   [478]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-rkl:          [SKIP][479] ([i915#14544] / [i915#3638]) -> [SKIP][480] ([i915#3638]) +1 other test skip
   [479]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html
   [480]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

  * igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs:
    - shard-rkl:          [SKIP][481] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][482] ([i915#14098] / [i915#6095]) +5 other tests skip
   [481]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs.html
   [482]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][483] ([i915#14544] / [i915#6095]) -> [SKIP][484] ([i915#6095]) +2 other tests skip
   [483]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2.html
   [484]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@kms_ccs@bad-pixel-format-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][485] ([i915#6095]) -> [SKIP][486] ([i915#14544] / [i915#6095]) +5 other tests skip
   [485]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2.html
   [486]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs:
    - shard-glk:          [INCOMPLETE][487] ([i915#15582]) -> [INCOMPLETE][488] ([i915#14694] / [i915#15582])
   [487]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-glk6/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html
   [488]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-glk1/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs:
    - shard-dg1:          [SKIP][489] ([i915#4423] / [i915#6095]) -> [SKIP][490] ([i915#6095])
   [489]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-13/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html
   [490]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-18/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs:
    - shard-rkl:          [SKIP][491] ([i915#14098] / [i915#6095]) -> [SKIP][492] ([i915#14098] / [i915#14544] / [i915#6095]) +7 other tests skip
   [491]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-2/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html
   [492]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-rkl:          [SKIP][493] ([i915#3742]) -> [SKIP][494] ([i915#14544] / [i915#3742])
   [493]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@kms_cdclk@mode-transition-all-outputs.html
   [494]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_chamelium_color@degamma:
    - shard-rkl:          [SKIP][495] -> [SKIP][496] ([i915#14544]) +6 other tests skip
   [495]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@kms_chamelium_color@degamma.html
   [496]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_chamelium_color@degamma.html

  * igt@kms_chamelium_edid@hdmi-edid-read:
    - shard-rkl:          [SKIP][497] ([i915#11151] / [i915#7828]) -> [SKIP][498] ([i915#11151] / [i915#14544] / [i915#7828]) +1 other test skip
   [497]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-2/igt@kms_chamelium_edid@hdmi-edid-read.html
   [498]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_chamelium_edid@hdmi-edid-read.html

  * igt@kms_chamelium_hpd@dp-hpd-fast:
    - shard-dg1:          [SKIP][499] ([i915#11151] / [i915#7828]) -> [SKIP][500] ([i915#11151] / [i915#4423] / [i915#7828])
   [499]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-12/igt@kms_chamelium_hpd@dp-hpd-fast.html
   [500]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_chamelium_hpd@dp-hpd-fast.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - shard-rkl:          [SKIP][501] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][502] ([i915#11151] / [i915#7828]) +4 other tests skip
   [501]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-fast.html
   [502]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_content_protection@mei-interface:
    - shard-dg1:          [SKIP][503] ([i915#6944] / [i915#9424]) -> [SKIP][504] ([i915#9433])
   [503]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg1-17/igt@kms_content_protection@mei-interface.html
   [504]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg1-13/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@suspend-resume:
    - shard-dg2:          [SKIP][505] ([i915#6944]) -> [FAIL][506] ([i915#7173]) +1 other test fail
   [505]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-6/igt@kms_content_protection@suspend-resume.html
   [506]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_content_protection@suspend-resume.html

  * igt@kms_content_protection@uevent:
    - shard-dg2:          [SKIP][507] ([i915#6944] / [i915#7118] / [i915#9424]) -> [FAIL][508] ([i915#1339] / [i915#7173])
   [507]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-3/igt@kms_content_protection@uevent.html
   [508]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-11/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-random-max-size:
    - shard-rkl:          [SKIP][509] ([i915#3555]) -> [SKIP][510] ([i915#14544] / [i915#3555]) +2 other tests skip
   [509]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@kms_cursor_crc@cursor-random-max-size.html
   [510]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_cursor_crc@cursor-random-max-size.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x170:
    - shard-rkl:          [SKIP][511] ([i915#13049] / [i915#14544]) -> [SKIP][512] ([i915#13049])
   [511]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html
   [512]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-32x10:
    - shard-rkl:          [SKIP][513] ([i915#14544] / [i915#3555]) -> [SKIP][514] ([i915#3555]) +1 other test skip
   [513]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_cursor_crc@cursor-sliding-32x10.html
   [514]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-32x10.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          [SKIP][515] ([i915#13049]) -> [SKIP][516] ([i915#13049] / [i915#14544])
   [515]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-512x512.html
   [516]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-rkl:          [SKIP][517] ([i915#14544]) -> [SKIP][518] +8 other tests skip
   [517]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html
   [518]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_feature_discovery@chamelium:
    - shard-rkl:          [SKIP][519] ([i915#14544] / [i915#4854]) -> [SKIP][520] ([i915#4854])
   [519]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_feature_discovery@chamelium.html
   [520]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_feature_discovery@chamelium.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-rkl:          [SKIP][521] ([i915#9934]) -> [SKIP][522] ([i915#14544] / [i915#9934]) +1 other test skip
   [521]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html
   [522]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-flip-vs-fences:
    - shard-rkl:          [SKIP][523] ([i915#14544] / [i915#9934]) -> [SKIP][524] ([i915#9934]) +3 other tests skip
   [523]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_flip@2x-flip-vs-fences.html
   [524]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_flip@2x-flip-vs-fences.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
    - shard-rkl:          [SKIP][525] ([i915#14544] / [i915#15643]) -> [SKIP][526] ([i915#15643])
   [525]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html
   [526]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-rkl:          [SKIP][527] ([i915#1825]) -> [SKIP][528] ([i915#14544] / [i915#1825]) +6 other tests skip
   [527]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [528]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite:
    - shard-rkl:          [SKIP][529] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][530] ([i915#15102] / [i915#3023]) +2 other tests skip
   [529]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html
   [530]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-rkl:          [SKIP][531] ([i915#14544] / [i915#1825]) -> [SKIP][532] ([i915#1825]) +14 other tests skip
   [531]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html
   [532]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu:
    - shard-rkl:          [SKIP][533] ([i915#15102] / [i915#3023]) -> [SKIP][534] ([i915#14544] / [i915#15102] / [i915#3023]) +3 other tests skip
   [533]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html
   [534]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-pwrite:
    - shard-rkl:          [SKIP][535] ([i915#14544] / [i915#15102]) -> [SKIP][536] ([i915#15102])
   [535]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-pwrite.html
   [536]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite:
    - shard-rkl:          [SKIP][537] ([i915#15102]) -> [SKIP][538] ([i915#14544] / [i915#15102])
   [537]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite.html
   [538]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render:
    - shard-dg2:          [SKIP][539] ([i915#15102] / [i915#3458]) -> [SKIP][540] ([i915#10433] / [i915#15102] / [i915#3458]) +2 other tests skip
   [539]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html
   [540]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
    - shard-dg2:          [SKIP][541] ([i915#10433] / [i915#15102] / [i915#3458]) -> [SKIP][542] ([i915#15102] / [i915#3458]) +3 other tests skip
   [541]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html
   [542]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-mtlp:         [SKIP][543] ([i915#1187] / [i915#12713]) -> [SKIP][544] ([i915#12713])
   [543]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-mtlp-1/igt@kms_hdr@brightness-with-hdr.html
   [544]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-mtlp-6/igt@kms_hdr@brightness-with-hdr.html
    - shard-dg2:          [SKIP][545] ([i915#13331]) -> [SKIP][546] ([i915#12713])
   [545]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-dg2-11/igt@kms_hdr@brightness-with-hdr.html
   [546]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-dg2-3/igt@kms_hdr@brightness-with-hdr.html
    - shard-tglu:         [SKIP][547] ([i915#1187] / [i915#12713]) -> [SKIP][548] ([i915#12713])
   [547]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-tglu-2/igt@kms_hdr@brightness-with-hdr.html
   [548]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-tglu-7/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@invalid-hdr:
    - shard-rkl:          [SKIP][549] ([i915#14544] / [i915#3555] / [i915#8228]) -> [SKIP][550] ([i915#3555] / [i915#8228])
   [549]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_hdr@invalid-hdr.html
   [550]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-2/igt@kms_hdr@invalid-hdr.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-rkl:          [SKIP][551] ([i915#14544] / [i915#15458]) -> [SKIP][552] ([i915#15458])
   [551]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html
   [552]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-rkl:          [SKIP][553] ([i915#6301]) -> [SKIP][554] ([i915#14544] / [i915#6301])
   [553]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@kms_panel_fitting@atomic-fastset.html
   [554]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier@pipe-a-plane-0:
    - shard-rkl:          [SKIP][555] ([i915#14544] / [i915#15608]) -> [SKIP][556] ([i915#15608])
   [555]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier@pipe-a-plane-0.html
   [556]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier@pipe-a-plane-0.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier@pipe-b-plane-5:
    - shard-rkl:          [SKIP][557] ([i915#14544] / [i915#15608] / [i915#8825]) -> [SKIP][558] ([i915#15608] / [i915#8825]) +1 other test skip
   [557]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier@pipe-b-plane-5.html
   [558]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier@pipe-b-plane-5.html

  * igt@kms_plane_multiple@tiling-4:
    - shard-rkl:          [SKIP][559] ([i915#14259]) -> [SKIP][560] ([i915#14259] / [i915#14544])
   [559]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@kms_plane_multiple@tiling-4.html
   [560]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_plane_multiple@tiling-4.html

  * igt@kms_pm_backlight@fade:
    - shard-rkl:          [SKIP][561] ([i915#5354]) -> [SKIP][562] ([i915#14544] / [i915#5354])
   [561]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-3/igt@kms_pm_backlight@fade.html
   [562]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_pm_backlight@fade.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-rkl:          [SKIP][563] ([i915#14544] / [i915#15073]) -> [SKIP][564] ([i915#15073])
   [563]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp.html
   [564]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-rkl:          [SKIP][565] ([i915#11520] / [i915#14544]) -> [SKIP][566] ([i915#11520]) +5 other tests skip
   [565]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
   [566]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf:
    - shard-rkl:          [SKIP][567] ([i915#11520]) -> [SKIP][568] ([i915#11520] / [i915#14544])
   [567]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf.html
   [568]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-sf.html

  * igt@kms_psr@fbc-psr2-sprite-render:
    - shard-rkl:          [SKIP][569] ([i915#1072] / [i915#9732]) -> [SKIP][570] ([i915#1072] / [i915#14544] / [i915#9732]) +7 other tests skip
   [569]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-1/igt@kms_psr@fbc-psr2-sprite-render.html
   [570]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_psr@fbc-psr2-sprite-render.html

  * igt@kms_psr@psr2-cursor-blt:
    - shard-rkl:          [SKIP][571] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][572] ([i915#1072] / [i915#9732]) +10 other tests skip
   [571]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_psr@psr2-cursor-blt.html
   [572]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-3/igt@kms_psr@psr2-cursor-blt.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-rkl:          [SKIP][573] ([i915#14544] / [i915#9685]) -> [SKIP][574] ([i915#9685])
   [573]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [574]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-rkl:          [SKIP][575] ([i915#5289]) -> [SKIP][576] ([i915#14544] / [i915#5289])
   [575]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-5/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html
   [576]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-6/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@perf@mi-rpc:
    - shard-rkl:          [SKIP][577] ([i915#14544] / [i915#2434]) -> [SKIP][578] ([i915#2434])
   [577]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@perf@mi-rpc.html
   [578]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-4/igt@perf@mi-rpc.html

  * igt@perf_pmu@rc6-all-gts:
    - shard-rkl:          [SKIP][579] ([i915#14544] / [i915#8516]) -> [SKIP][580] ([i915#8516])
   [579]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8751/shard-rkl-6/igt@perf_pmu@rc6-all-gts.html
   [580]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/shard-rkl-8/igt@perf_pmu@rc6-all-gts.html

  
  [i915#10056]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10056
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#10959]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10959
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
  [i915#1187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1187
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
  [i915#12549]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12549
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
  [i915#13008]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13008
  [i915#13026]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13026
  [i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
  [i915#13030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13030
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13179
  [i915#13331]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13331
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#1339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1339
  [i915#13398]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13398
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13809
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14033]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14033
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14121
  [i915#14123]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14123
  [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259
  [i915#14433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14433
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545
  [i915#14694]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14694
  [i915#14785]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14785
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15106]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15106
  [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
  [i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
  [i915#15329]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15329
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342
  [i915#15420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15420
  [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
  [i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459
  [i915#15479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15479
  [i915#15481]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15481
  [i915#15492]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15492
  [i915#15530]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15530
  [i915#15532]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15532
  [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582
  [i915#15608]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15608
  [i915#15609]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15609
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
  [i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3778]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3778
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4391]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4391
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
  [i915#4958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4958
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
  [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335
  [i915#6412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6412
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
  [i915#6806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6806
  [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7016]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7016
  [i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7582
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
  [i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8807]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8807
  [i915#8808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8808
  [i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
  [i915#8825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8825
  [i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
  [i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
  [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
  [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
  [i915#9433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9433
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
  [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
  [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
  [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * CI: CI-20190529 -> None
  * IGT: IGT_8751 -> IGTPW_14542

  CI-20190529: 20190529
  CI_DRM_17976: 2938ce73d01357a5816ed7dbd041154b58635a37 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_14542: 14542
  IGT_8751: af788251f1ef729d17c802aec2c4547b52059e58 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14542/index.html

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

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

* Re: [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (19 preceding siblings ...)
  2026-02-12  6:18 ` ✗ i915.CI.Full: failure " Patchwork
@ 2026-02-12  9:42 ` Jani Nikula
  2026-02-13  2:09 ` ✗ Xe.CI.FULL: failure for " Patchwork
  21 siblings, 0 replies; 23+ messages in thread
From: Jani Nikula @ 2026-02-12  9:42 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 11 Feb 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Convert a bunch of tests to use 'igt_crtc_t' instead of
> 'enum pipe'.
>
> Afterwards there are still quite a few unconverted tests
> left that will need stringer cocci magic or manual conversion...

Read through it all, it's mostly straightforward and mechanic, but I'm
also trusting the compiler here quite a bit.

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

I also realize I think there now remains igt_require_pipe(crtc->pipe)
checks on crtc that originate from for_each_crtc() which will always be
valid. More future cleanup, but there's no functional impact.

BR,
Jani.


-- 
Jani Nikula, Intel

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

* ✗ Xe.CI.FULL: failure for tests/kms: Use igt_crtc_t instead of enum pipe
  2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (20 preceding siblings ...)
  2026-02-12  9:42 ` [PATCH i-g-t 00/17] " Jani Nikula
@ 2026-02-13  2:09 ` Patchwork
  21 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2026-02-13  2:09 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: Use igt_crtc_t instead of enum pipe
URL   : https://patchwork.freedesktop.org/series/161505/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8751_FULL -> XEIGTPW_14542_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_14542_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_14542_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

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

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in XEIGTPW_14542_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-bmg:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-8/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@xe_exec_system_allocator@process-many-mmap-remap:
    - shard-bmg:          [PASS][2] -> [ABORT][3]
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-8/igt@xe_exec_system_allocator@process-many-mmap-remap.html
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-3/igt@xe_exec_system_allocator@process-many-mmap-remap.html

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

  Here are the changes found in XEIGTPW_14542_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_async_flips@async-flip-with-page-flip-events-linear:
    - shard-lnl:          [PASS][4] -> [FAIL][5] ([Intel XE#5993]) +3 other tests fail
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-lnl-1/igt@kms_async_flips@async-flip-with-page-flip-events-linear.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-1/igt@kms_async_flips@async-flip-with-page-flip-events-linear.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#2370])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_big_fb@linear-32bpp-rotate-270:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#2327]) +3 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-1/igt@kms_big_fb@linear-32bpp-rotate-270.html

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-lnl:          NOTRUN -> [SKIP][8] ([Intel XE#1407])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#7059])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-3/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#1124]) +9 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-270:
    - shard-lnl:          NOTRUN -> [SKIP][11] ([Intel XE#1124]) +2 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-7/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p:
    - shard-lnl:          NOTRUN -> [SKIP][12] ([Intel XE#2191])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-6/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#2314] / [Intel XE#2894])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-9/igt@kms_bw@connected-linear-tiling-3-displays-2160x1440p.html

  * igt@kms_bw@linear-tiling-2-displays-2160x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#367]) +1 other test skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html

  * igt@kms_bw@linear-tiling-2-displays-2560x1440p:
    - shard-lnl:          NOTRUN -> [SKIP][15] ([Intel XE#367])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-7/igt@kms_bw@linear-tiling-2-displays-2560x1440p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][16] ([Intel XE#2669]) +3 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-1/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs@pipe-a-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-b-dp-1:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-b-dp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
    - shard-lnl:          NOTRUN -> [SKIP][18] ([Intel XE#3432])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-2/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#3432])
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs:
    - shard-lnl:          NOTRUN -> [SKIP][20] ([Intel XE#2887]) +3 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-1/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2887]) +10 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_cdclk@mode-transition:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#2724])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-7/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k:
    - shard-lnl:          NOTRUN -> [SKIP][23] ([Intel XE#373]) +1 other test skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-1/igt@kms_chamelium_edid@hdmi-edid-stress-resolution-non-4k.html

  * igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#2252]) +7 other tests skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html

  * igt@kms_chamelium_sharpness_filter@filter-basic:
    - shard-lnl:          NOTRUN -> [SKIP][25] ([Intel XE#6507])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_chamelium_sharpness_filter@filter-basic.html

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

  * igt@kms_content_protection@dp-mst-type-0-hdcp14:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#6974])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-8/igt@kms_content_protection@dp-mst-type-0-hdcp14.html
    - shard-lnl:          NOTRUN -> [SKIP][28] ([Intel XE#6974])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@kms_content_protection@dp-mst-type-0-hdcp14.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-lnl:          NOTRUN -> [SKIP][29] ([Intel XE#307] / [Intel XE#6974])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_content_protection@dp-mst-type-1.html

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

  * igt@kms_cursor_crc@cursor-offscreen-32x10:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#2320])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-9/igt@kms_cursor_crc@cursor-offscreen-32x10.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-lnl:          NOTRUN -> [SKIP][32] ([Intel XE#2321])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-2/igt@kms_cursor_crc@cursor-onscreen-512x170.html
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#2321])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-10/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_legacy@single-bo:
    - shard-bmg:          [PASS][34] -> [DMESG-WARN][35] ([Intel XE#5354]) +1 other test dmesg-warn
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-3/igt@kms_cursor_legacy@single-bo.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-10/igt@kms_cursor_legacy@single-bo.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#1508])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

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

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#2244])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-9/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_feature_discovery@psr2:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#2374])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-6/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-flip-vs-suspend:
    - shard-bmg:          [PASS][40] -> [INCOMPLETE][41] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-1/igt@kms_flip@2x-flip-vs-suspend.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-6/igt@kms_flip@2x-flip-vs-suspend.html

  * igt@kms_flip@2x-nonexisting-fb:
    - shard-lnl:          NOTRUN -> [SKIP][42] ([Intel XE#1421]) +1 other test skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_flip@2x-nonexisting-fb.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-bmg:          [PASS][43] -> [DMESG-WARN][44] ([Intel XE#3428]) +1 other test dmesg-warn
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-3/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-3/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#7178])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling:
    - shard-lnl:          NOTRUN -> [SKIP][46] ([Intel XE#1397] / [Intel XE#1745]) +1 other test skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-default-mode:
    - shard-lnl:          NOTRUN -> [SKIP][47] ([Intel XE#1397]) +1 other test skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling:
    - shard-lnl:          NOTRUN -> [SKIP][48] ([Intel XE#7178])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#7179])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-1/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html
    - shard-lnl:          NOTRUN -> [SKIP][50] ([Intel XE#7179])
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-3/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][51] ([Intel XE#2311]) +24 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-10/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#4141]) +6 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt:
    - shard-lnl:          NOTRUN -> [SKIP][53] ([Intel XE#7061]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt.html
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#7061]) +2 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-render:
    - shard-lnl:          NOTRUN -> [SKIP][55] ([Intel XE#651]) +4 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#2352]) +1 other test skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-lnl:          NOTRUN -> [SKIP][57] ([Intel XE#656]) +9 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#2313]) +29 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          NOTRUN -> [SKIP][59] ([Intel XE#1503])
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@kms_hdr@invalid-hdr.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#6911]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-6/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-lnl:          NOTRUN -> [SKIP][61] ([Intel XE#6900]) +1 other test skip
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-1/igt@kms_joiner@basic-ultra-joiner.html

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

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#2486])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-1/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-a-plane-0:
    - shard-bmg:          NOTRUN -> [SKIP][64] ([Intel XE#7130]) +30 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-a-plane-0.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-b-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#7111] / [Intel XE#7130]) +9 other tests skip
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#7111] / [Intel XE#7130] / [Intel XE#7131])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping@pipe-a-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][67] ([Intel XE#7131])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping@pipe-a-plane-5.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping@pipe-b-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][68] ([Intel XE#7111] / [Intel XE#7131])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier-source-clamping@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier@pipe-b-plane-5:
    - shard-lnl:          NOTRUN -> [SKIP][69] ([Intel XE#7130]) +6 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@kms_plane@pixel-format-yf-tiled-modifier@pipe-b-plane-5.html

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

  * igt@kms_plane_multiple@tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][71] ([Intel XE#5020])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-8/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-modifiers:
    - shard-lnl:          NOTRUN -> [SKIP][72] ([Intel XE#6886]) +3 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-modifiers.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#6886]) +4 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-bmg:          NOTRUN -> [SKIP][74] ([Intel XE#2392])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-9/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_dc@deep-pkgc:
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#2505])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-7/igt@kms_pm_dc@deep-pkgc.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area:
    - shard-lnl:          NOTRUN -> [SKIP][76] ([Intel XE#1406] / [Intel XE#2893] / [Intel XE#4608]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][77] ([Intel XE#1406] / [Intel XE#4608]) +3 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [SKIP][78] ([Intel XE#1406] / [Intel XE#1489]) +7 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-bmg:          NOTRUN -> [SKIP][79] ([Intel XE#1406] / [Intel XE#2387])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-7/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@pr-cursor-plane-move:
    - shard-lnl:          NOTRUN -> [SKIP][80] ([Intel XE#1406]) +2 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-7/igt@kms_psr@pr-cursor-plane-move.html

  * igt@kms_psr@psr2-primary-page-flip:
    - shard-bmg:          NOTRUN -> [SKIP][81] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +9 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@kms_psr@psr2-primary-page-flip.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-lnl:          NOTRUN -> [SKIP][82] ([Intel XE#3414] / [Intel XE#3904])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
    - shard-bmg:          NOTRUN -> [SKIP][83] ([Intel XE#2330]) +1 other test skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-8/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270:
    - shard-bmg:          NOTRUN -> [SKIP][84] ([Intel XE#3414] / [Intel XE#3904])
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-270.html

  * igt@kms_scaling_modes@scaling-mode-center:
    - shard-bmg:          NOTRUN -> [SKIP][85] ([Intel XE#2413])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-6/igt@kms_scaling_modes@scaling-mode-center.html

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

  * igt@kms_sharpness_filter@filter-toggle:
    - shard-bmg:          NOTRUN -> [SKIP][87] ([Intel XE#6503])
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-3/igt@kms_sharpness_filter@filter-toggle.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          NOTRUN -> [SKIP][88] ([Intel XE#2426])
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tv_load_detect@load-detect:
    - shard-lnl:          NOTRUN -> [SKIP][89] ([Intel XE#330])
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@kms_tv_load_detect@load-detect.html

  * igt@kms_vrr@flipline:
    - shard-bmg:          NOTRUN -> [SKIP][90] ([Intel XE#1499])
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-1/igt@kms_vrr@flipline.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          NOTRUN -> [SKIP][91] ([Intel XE#2168])
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-10/igt@kms_vrr@lobf.html

  * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
    - shard-lnl:          NOTRUN -> [SKIP][92] ([Intel XE#1091] / [Intel XE#2849])
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html

  * igt@xe_eudebug@basic-vm-access-userptr-faultable:
    - shard-lnl:          NOTRUN -> [SKIP][93] ([Intel XE#4837]) +3 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-3/igt@xe_eudebug@basic-vm-access-userptr-faultable.html

  * igt@xe_eudebug@connect-user:
    - shard-bmg:          NOTRUN -> [SKIP][94] ([Intel XE#4837]) +8 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-6/igt@xe_eudebug@connect-user.html

  * igt@xe_eudebug_online@writes-caching-sram-bb-sram-target-sram:
    - shard-bmg:          NOTRUN -> [SKIP][95] ([Intel XE#4837] / [Intel XE#6665])
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-10/igt@xe_eudebug_online@writes-caching-sram-bb-sram-target-sram.html

  * igt@xe_evict@evict-beng-cm-threads-small:
    - shard-lnl:          NOTRUN -> [SKIP][96] ([Intel XE#688]) +3 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@xe_evict@evict-beng-cm-threads-small.html

  * igt@xe_evict@evict-small-multi-queue:
    - shard-bmg:          NOTRUN -> [SKIP][97] ([Intel XE#7140])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@xe_evict@evict-small-multi-queue.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][98] ([Intel XE#2322]) +6 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race:
    - shard-lnl:          NOTRUN -> [SKIP][99] ([Intel XE#1392]) +1 other test skip
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-6/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate:
    - shard-lnl:          NOTRUN -> [SKIP][100] ([Intel XE#7136]) +2 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm:
    - shard-bmg:          NOTRUN -> [SKIP][101] ([Intel XE#7136]) +13 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm.html

  * igt@xe_exec_multi_queue@many-execs-priority:
    - shard-lnl:          NOTRUN -> [SKIP][102] ([Intel XE#6874]) +8 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@xe_exec_multi_queue@many-execs-priority.html

  * igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority:
    - shard-bmg:          NOTRUN -> [SKIP][103] ([Intel XE#6874]) +19 other tests skip
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-priority.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-basic:
    - shard-lnl:          NOTRUN -> [SKIP][104] ([Intel XE#7138]) +2 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-2/igt@xe_exec_threads@threads-multi-queue-mixed-basic.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][105] ([Intel XE#7138]) +6 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-mixed-userptr-invalidate.html

  * igt@xe_mmap@small-bar:
    - shard-bmg:          NOTRUN -> [SKIP][106] ([Intel XE#586])
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-7/igt@xe_mmap@small-bar.html

  * igt@xe_multigpu_svm@mgpu-latency-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][107] ([Intel XE#6964]) +2 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-1/igt@xe_multigpu_svm@mgpu-latency-prefetch.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-bmg:          NOTRUN -> [SKIP][108] ([Intel XE#1420])
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-5/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pat@pat-index-xelp:
    - shard-bmg:          NOTRUN -> [SKIP][109] ([Intel XE#2245])
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-8/igt@xe_pat@pat-index-xelp.html

  * igt@xe_pm@d3cold-i2c:
    - shard-bmg:          NOTRUN -> [SKIP][110] ([Intel XE#5694])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-9/igt@xe_pm@d3cold-i2c.html

  * igt@xe_pm@s3-d3cold-basic-exec:
    - shard-lnl:          NOTRUN -> [SKIP][111] ([Intel XE#2284] / [Intel XE#366])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-6/igt@xe_pm@s3-d3cold-basic-exec.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq:
    - shard-bmg:          NOTRUN -> [SKIP][112] ([Intel XE#4733]) +3 other tests skip
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-3/igt@xe_pxp@pxp-stale-bo-bind-post-termination-irq.html

  * igt@xe_query@multigpu-query-invalid-size:
    - shard-lnl:          NOTRUN -> [SKIP][113] ([Intel XE#944])
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-8/igt@xe_query@multigpu-query-invalid-size.html

  * igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled:
    - shard-lnl:          NOTRUN -> [SKIP][114] ([Intel XE#7174]) +1 other test skip
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@xe_sriov_admin@bulk-sched-priority-vfs-disabled.html

  * igt@xe_sriov_flr@flr-each-isolation:
    - shard-bmg:          [PASS][115] -> [FAIL][116] ([Intel XE#6569])
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-3/igt@xe_sriov_flr@flr-each-isolation.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@xe_sriov_flr@flr-each-isolation.html

  * igt@xe_sriov_flr@flr-twice:
    - shard-lnl:          NOTRUN -> [SKIP][117] ([Intel XE#4273])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-4/igt@xe_sriov_flr@flr-twice.html

  
#### Possible fixes ####

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
    - shard-bmg:          [DMESG-WARN][118] ([Intel XE#5354]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-8/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-1/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html

  * igt@kms_vblank@ts-continuation-dpms-rpm:
    - shard-lnl:          [SKIP][120] -> [PASS][121] +2 other tests pass
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-lnl-6/igt@kms_vblank@ts-continuation-dpms-rpm.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-1/igt@kms_vblank@ts-continuation-dpms-rpm.html

  * igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset:
    - shard-bmg:          [ABORT][122] ([Intel XE#7169]) -> [PASS][123]
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-1/igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-7/igt@xe_exec_system_allocator@threads-many-large-execqueues-malloc-mlock-nomemset.html

  * igt@xe_pm@s2idle-mocs:
    - shard-lnl:          [ABORT][124] ([Intel XE#7169]) -> [PASS][125]
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-lnl-6/igt@xe_pm@s2idle-mocs.html
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-lnl-5/igt@xe_pm@s2idle-mocs.html

  
#### Warnings ####

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
    - shard-bmg:          [INCOMPLETE][126] ([Intel XE#2594]) -> [SKIP][127] ([Intel XE#7178])
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][128] ([Intel XE#2509]) -> [SKIP][129] ([Intel XE#2426])
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-9/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-bmg:          [ABORT][130] ([Intel XE#5466]) -> [ABORT][131] ([Intel XE#5466] / [Intel XE#6652])
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8751/shard-bmg-9/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14542/shard-bmg-4/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

  
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
  [Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
  [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [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#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
  [Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
  [Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
  [Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [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#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/330
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3428
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4090]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4090
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
  [Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
  [Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
  [Intel XE#5694]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5694
  [Intel XE#586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/586
  [Intel XE#5993]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5993
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6507]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6507
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6900
  [Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7111]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7111
  [Intel XE#7130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7130
  [Intel XE#7131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7131
  [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
  [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
  [Intel XE#7169]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7169
  [Intel XE#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * IGT: IGT_8751 -> IGTPW_14542

  IGTPW_14542: 14542
  IGT_8751: af788251f1ef729d17c802aec2c4547b52059e58 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-4544-2938ce73d01357a5816ed7dbd041154b58635a37: 2938ce73d01357a5816ed7dbd041154b58635a37

== Logs ==

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

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

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

end of thread, other threads:[~2026-02-13  2:09 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-11 16:33 [PATCH i-g-t 00/17] tests/kms: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 01/17] tests/kms_plane_alpha_blend: " Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 02/17] tests/kms: Remove unused 'pipe' function parameters Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 03/17] tests/kms: Remove const qualifier from " Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 04/17] tests/intel/kms_busy: Use 'enum pipe' instead of 'int' Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 05/17] tests/kms_atomic_interruptible: s/crtc/drm_crtc/ Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 06/17] tests/intel/kms_psr2_su: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 07/17] tests/intel/kms_dsc*: " Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 08/17] tests/kms_cursor_legacy: " Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 09/17] tests/kms_color*: " Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 10/17] tests/kms_atomic_transition: " Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 11/17] tests/kms_plane: " Ville Syrjala
2026-02-11 16:33 ` [PATCH i-g-t 12/17] tests/intel/kms_pipe_b_c_ivb: " Ville Syrjala
2026-02-11 16:34 ` [PATCH i-g-t 13/17] tests/kms_vrr: " Ville Syrjala
2026-02-11 16:34 ` [PATCH i-g-t 14/17] tests/kms_display_modes: " Ville Syrjala
2026-02-11 16:34 ` [PATCH i-g-t 15/17] tests/kms_rotation_crc: " Ville Syrjala
2026-02-11 16:34 ` [PATCH i-g-t 16/17] tests/kms_properties: " Ville Syrjala
2026-02-11 16:34 ` [PATCH i-g-t 17/17] tests/kms: " Ville Syrjala
2026-02-11 17:35 ` ✗ Xe.CI.BAT: failure for " Patchwork
2026-02-11 17:47 ` ✓ i915.CI.BAT: success " Patchwork
2026-02-12  6:18 ` ✗ i915.CI.Full: failure " Patchwork
2026-02-12  9:42 ` [PATCH i-g-t 00/17] " Jani Nikula
2026-02-13  2:09 ` ✗ Xe.CI.FULL: failure for " Patchwork

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