public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions
@ 2026-02-20 14:01 Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 01/21] tests/intel/kms_flip_scaled_crc: Remove unused 'enum pipe pipe' Ville Syrjala
                   ` (24 more replies)
  0 siblings, 25 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert more tests to track/pass around igt_crtc_t instead of
enum pipe.

This gets rid of most 'enum pipe' typed variables under tests/.
The remaining ones are:
* active_pipes[] array
  - kms_vblank
  - kms_plane_alpha_blend
  - kms_pipe_crc_basic
  - kms_cursor_edge_walk
  - kms_cursor_crc
* uninitialized on stack enum pipe passed to
  intel_fbc_supported_on_chipset()
  - kms_psr
* incorrect pipe usage for igt_debugfs_crtc_dir()
  - kms_frontbuffer_tracking
* the big mess that still needs to be sorted:
  - kms_joiner*

Additionally a lot of crtc->pipe usage still remains:
- some will disappear once all external igt_kms functions get
  converted to igt_crtc_t. I still plan to send at least one
  cocci series for that
- some need to be converted to crtc->crtc_index for correctness
- some are used for local array indexing which probably should also
  be converted to crtc_index (or some other sensible thing)
- what should remain in the end are the actual crtc->pipe vs. PIPE_?
  comparisons used for hardware specific quirks and whatnot

Ville Syrjälä (21):
  tests/intel/kms_flip_scaled_crc: Remove unused 'enum pipe pipe'
  tests/kms_concurrent: Actually run the test over all connected crtcs
  tests/amdgpu/amd_abm: Don't use uninitialized 'pipe'
  tests/kms: Use 'enum pipe' over int'
  lib/kms: Add igt_crtc_for_crtc_id()
  tests/kms_lease: Use igt_crtc_t instead of enum pipe
  tests/kms_lease: Pass lease_t to prepare_crtc()
  tests/intel/kms_frontbuffer_tracking: Use igt_crtc_t instead of enum
    pipe
  tests/kms_plane_scaling: Use igt_crtc_t instead of enum pipe
  tests/drm_read: Use igt_crtc_t instead of enum pipe
  tests/intel/kms_psr2_sf: Convert pipes[] to crtcs[]
  tests/kms_vblank: Use igt_crtc_t instead of enum pipe
  tests/kms_plane_multiple: Use igt_crtc_t instead of enum pipe
  tests/kms_tiled_display: Use igt_crtc_t instead of enum pipe
  tests/intel/kms_psr: Use igt_crtc_t instead of enum pipe
  tests/kms_prime: Use igt_crtc_t instead of enum pipe
  tests/chamelium: Use igt_crtc_t instead of enum pipe
  tests/kms: Use igt_crtc_t instead of enum pipe, part 1
  tests/kms: Use igt_crtc_t instead of enum pipe, part 2
  tests/kms: Use igt_crtc_t instead of enum pipe, part 3
  tests/kms: Use igt_crtc_t instead of enum pipe, part 4

 lib/igt_kms.c                                 |  12 ++
 lib/igt_kms.h                                 |   1 +
 tests/amdgpu/amd_abm.c                        |  34 +++---
 tests/amdgpu/amd_bypass.c                     |   7 +-
 tests/amdgpu/amd_color.c                      |   7 +-
 tests/amdgpu/amd_cursor_overlay.c             |  28 ++---
 tests/amdgpu/amd_dp_dsc.c                     |  12 +-
 tests/amdgpu/amd_hotplug.c                    |   4 +-
 tests/amdgpu/amd_ilr.c                        |   8 +-
 tests/amdgpu/amd_link_settings.c              |   8 +-
 tests/amdgpu/amd_mall.c                       |   4 +-
 tests/amdgpu/amd_max_bpc.c                    |   6 +-
 tests/amdgpu/amd_mem_leak.c                   |   4 +-
 tests/amdgpu/amd_odm.c                        |   4 +-
 tests/amdgpu/amd_plane.c                      |  14 +--
 tests/amdgpu/amd_psr.c                        |  23 ++--
 tests/amdgpu/amd_replay.c                     |   7 +-
 tests/amdgpu/amd_subvp.c                      |   4 +-
 tests/chamelium/kms_chamelium_edid.c          |  13 +-
 tests/chamelium/kms_chamelium_helper.c        |  10 +-
 tests/chamelium/kms_chamelium_helper.h        |   2 +-
 tests/chamelium/kms_chamelium_hpd.c           |   8 +-
 .../kms_chamelium_sharpness_filter.c          |  35 +++---
 tests/drm_read.c                              |  36 +++---
 tests/intel/kms_big_fb.c                      |  28 ++---
 tests/intel/kms_ccs.c                         |   8 +-
 tests/intel/kms_cdclk.c                       |  16 ++-
 tests/intel/kms_dirtyfb.c                     |  25 ++--
 tests/intel/kms_dp_linktrain_fallback.c       |  11 +-
 tests/intel/kms_fb_coherency.c                |   8 +-
 tests/intel/kms_fbc_dirty_rect.c              |  17 ++-
 tests/intel/kms_flip_scaled_crc.c             |   1 -
 tests/intel/kms_flip_tiling.c                 |  12 +-
 tests/intel/kms_frontbuffer_tracking.c        |  99 +++++++--------
 tests/intel/kms_mmap_write_crc.c              |   8 +-
 tests/intel/kms_pipe_stress.c                 |  65 +++++-----
 tests/intel/kms_pm_lpsp.c                     |   7 +-
 tests/intel/kms_psr.c                         |  10 +-
 tests/intel/kms_psr2_sf.c                     |  93 +++++++-------
 tests/intel/kms_pwrite_crc.c                  |   8 +-
 tests/intel/kms_sharpness_filter.c            |  25 ++--
 tests/intel/perf_pmu.c                        |  10 +-
 tests/intel/prime_mmap_kms.c                  |   6 +-
 tests/kms_async_flips.c                       |  13 +-
 tests/kms_bw.c                                |   2 -
 tests/kms_concurrent.c                        |  45 +++----
 tests/kms_content_protection.c                |   5 +-
 tests/kms_cursor_crc.c                        |  66 +++++-----
 tests/kms_cursor_edge_walk.c                  |  13 +-
 tests/kms_hdr.c                               |  32 ++---
 tests/kms_invalid_mode.c                      |   7 +-
 tests/kms_lease.c                             |  35 +++---
 tests/kms_plane_cursor.c                      |  20 ++-
 tests/kms_plane_lowres.c                      |  11 +-
 tests/kms_plane_multiple.c                    |  88 ++++++++------
 tests/kms_plane_scaling.c                     | 114 +++++++++---------
 tests/kms_prime.c                             |  14 +--
 tests/kms_sequence.c                          |  12 +-
 tests/kms_tiled_display.c                     |  14 +--
 tests/kms_vblank.c                            |  55 +++++----
 tests/nouveau_crc.c                           |  31 +++--
 tests/vmwgfx/vmw_prime.c                      |  10 +-
 tools/amd_hdmi_compliance.c                   |   4 +-
 tools/intel_hdcp.c                            |   4 +-
 64 files changed, 652 insertions(+), 691 deletions(-)

-- 
2.52.0


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

* [PATCH i-g-t 01/21] tests/intel/kms_flip_scaled_crc: Remove unused 'enum pipe pipe'
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 02/21] tests/kms_concurrent: Actually run the test over all connected crtcs Ville Syrjala
                   ` (23 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

kms_flip_scaled_crc has a data.pipe member that it never uses
for anythinh. Nuke it.

 #include "scripts/iterators.cocci"

@find_pipe@
typedef igt_crtc_t;
typedef igt_display_t;
identifier PIPE;
type T;
@@
T {
  ...
  enum pipe PIPE;
  ...
};

@use_pipe depends on find_pipe@
identifier find_pipe.PIPE;
find_pipe.T S;
find_pipe.T *P;
@@
(
S.PIPE
|
P->PIPE
)

@remove_pipe depends on find_pipe && !use_pipe@
identifier find_pipe.PIPE;
type find_pipe.T;
@@
T {
  ...
-  enum pipe PIPE;
  ...
};

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/intel/kms_flip_scaled_crc.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tests/intel/kms_flip_scaled_crc.c b/tests/intel/kms_flip_scaled_crc.c
index 9a0b99e46ddd..83674d5c267f 100644
--- a/tests/intel/kms_flip_scaled_crc.c
+++ b/tests/intel/kms_flip_scaled_crc.c
@@ -143,7 +143,6 @@ typedef struct {
 	int drm_fd;
 	igt_display_t display;
 	igt_output_t *output;
-	enum pipe pipe;
 	uint32_t gen;
 	struct igt_fb small_fb;
 	struct igt_fb big_fb;
-- 
2.52.0


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

* [PATCH i-g-t 02/21] tests/kms_concurrent: Actually run the test over all connected crtcs
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 01/21] tests/intel/kms_flip_scaled_crc: Remove unused 'enum pipe pipe' Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 03/21] tests/amdgpu/amd_abm: Don't use uninitialized 'pipe' Ville Syrjala
                   ` (22 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev; +Cc: Swati Sharma, Karthik B S

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

Currently kms_concurrent uses for_each_valid_output_on_pipe() with an
uninitialized pipe (meaning it probably contains stack garbage). The
actual intention seems to have been to use
for_each_pipe_with_valid_output(). It's even mentioned in the offending
commit message, but the actual code was never changed to match.

We no longer have for_each_pipe_with_valid_output() so we have to switch
over to for_each_crtc_with_valid_output(), which also means we end up
doing the pipe->crtc conversion in one go.

 #include "scripts/iterators.cocci"

@@
iterator name for_each_valid_output_on_pipe;
iterator name for_each_crtc_with_valid_output;
expression DISPLAY, OUTPUT;
identifier PIPE;
type T;
@@
- T PIPE;
+ igt_crtc_t *crtc;
<+... when != PIPE = ...
- for_each_valid_output_on_pipe(DISPLAY, PIPE, OUTPUT)
+ for_each_crtc_with_valid_output(DISPLAY, crtc, OUTPUT)
{
<...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...>
}
...+>

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

Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Fixes: 6958319123d9 ("tests/kms_concurrent: remove pipe dependency in subtest name")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_concurrent.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index bbc988aa2000..f31992a514a0 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -344,24 +344,24 @@ run_test(data_t *data, enum pipe pipe, igt_output_t *output)
 static void
 run_tests_for_pipe(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 
 	igt_describe("Test atomic mode setting concurrently with multiple planes and screen "
 		     "resolution.");
 	igt_subtest_with_dynamic("multi-plane-atomic-lowres") {
-		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+		for_each_crtc_with_valid_output(&data->display, crtc, output) {
 			igt_display_reset(&data->display);
 
 			igt_output_set_crtc(output,
-					    igt_crtc_for_pipe(display, pipe));
+					    crtc);
 			if (!intel_pipe_output_combo_valid(&data->display))
 				continue;
 
-			igt_require(igt_crtc_for_pipe(display, pipe)->n_planes > 0);
-			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
-				run_test(data, pipe, output);
+			igt_require(crtc->n_planes > 0);
+			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
+				      igt_output_name(output))
+				run_test(data, crtc->pipe, output);
 		}
 	}
 }
-- 
2.52.0


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

* [PATCH i-g-t 03/21] tests/amdgpu/amd_abm: Don't use uninitialized 'pipe'
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 01/21] tests/intel/kms_flip_scaled_crc: Remove unused 'enum pipe pipe' Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 02/21] tests/kms_concurrent: Actually run the test over all connected crtcs Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 04/21] tests/kms: Use 'enum pipe' over int' Ville Syrjala
                   ` (21 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev; +Cc: George Zhang, Tom Chung

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

The for_each_valid_output_on_pipe() loops in amd_abm use an
uninitialized 'pipe' variable. Not entirely sure what the intention
was with the change to for_each_valid_output_on_pipe(), but eg.
set_abm_level() gets called from those loops and it operates on
data->pipe_id instead of whatever stack garbage pipe the loop
happens to use. So let's assume the intention was to use the same
fixed pipe for everything and just pass data->pipe_id to
for_each_valid_output_on_pipe().

 #include "scripts/iterators.cocci"

@@
iterator name for_each_valid_output_on_pipe;
expression DISPLAY, OUTPUT;
identifier PIPE;
type T;
@@
- T PIPE;
<+... when != PIPE = ...
  for_each_valid_output_on_pipe(DISPLAY,
-	PIPE,
+	data->pipe_id,
	OUTPUT)
	{...}
...+>

Cc: George Zhang <george.zhang@amd.com>
Cc: Tom Chung <chiahsuan.chung@amd.com>
Fixes: 1235576931b5 ("tests/amdgpu/amd_abm: Fixed tests to only run on one output per pipe")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/amdgpu/amd_abm.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/tests/amdgpu/amd_abm.c b/tests/amdgpu/amd_abm.c
index 110dd89e3ac2..159f6c7c69e9 100644
--- a/tests/amdgpu/amd_abm.c
+++ b/tests/amdgpu/amd_abm.c
@@ -170,10 +170,9 @@ static void test_fini(data_t *data)
 {
 	igt_display_t *display = &data->display;
 	igt_output_t *output;
-	enum pipe pipe;
 
 	/* Disable ABM before exit test */
-	for_each_valid_output_on_pipe(&data->display, pipe, output) {
+	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 		set_abm_level(data, output, 0);
@@ -328,9 +327,8 @@ static void backlight_dpms_cycle(data_t *data)
 	int max_brightness;
 	int pwm_1, pwm_2;
 	igt_output_t *output;
-	enum pipe pipe;
 
-	for_each_valid_output_on_pipe(&data->display, pipe, output) {
+	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
@@ -359,10 +357,9 @@ static void backlight_monotonic_basic(data_t *data)
 	int prev_pwm, pwm;
 	int brightness_step;
 	int brightness;
-	enum pipe pipe;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, pipe, output) {
+	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 		ret = backlight_read_max_brightness(&max_brightness);
@@ -393,10 +390,9 @@ static void backlight_monotonic_abm(data_t *data)
 	int prev_pwm, pwm;
 	int brightness_step;
 	int brightness;
-	enum pipe pipe;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, pipe, output) {
+	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 		ret = backlight_read_max_brightness(&max_brightness);
@@ -426,10 +422,9 @@ static void abm_enabled(data_t *data)
 	int ret, i;
 	int max_brightness;
 	int pwm, prev_pwm, pwm_without_abm;
-	enum pipe pipe;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, pipe, output) {
+	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
@@ -460,10 +455,9 @@ static void abm_gradual(data_t *data)
 	int convergence_delay = 10;
 	int prev_pwm, pwm, curr;
 	int max_brightness;
-	enum pipe pipe;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, pipe, output) {
+	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
-- 
2.52.0


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

* [PATCH i-g-t 04/21] tests/kms: Use 'enum pipe' over int'
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (2 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 03/21] tests/amdgpu/amd_abm: Don't use uninitialized 'pipe' Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 05/21] lib/kms: Add igt_crtc_for_crtc_id() Ville Syrjala
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert a few 'int pipe's tp 'enum pipe pipe's. This will help
subsequent cocci based pipe->crtc conversions.

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

diff --git a/tests/intel/kms_flip_tiling.c b/tests/intel/kms_flip_tiling.c
index 453394343857..54446f2478ae 100644
--- a/tests/intel/kms_flip_tiling.c
+++ b/tests/intel/kms_flip_tiling.c
@@ -67,7 +67,7 @@ static void pipe_crc_free(data_t *data)
 	data->pipe_crc = NULL;
 }
 
-static void pipe_crc_new(data_t *data, int pipe)
+static void pipe_crc_new(data_t *data, enum pipe pipe)
 {
 	igt_display_t *display = &data->display;
 	if (data->pipe_crc)
diff --git a/tests/nouveau_crc.c b/tests/nouveau_crc.c
index 9013b7e53df8..b2f9f3bdd08d 100644
--- a/tests/nouveau_crc.c
+++ b/tests/nouveau_crc.c
@@ -31,7 +31,7 @@ IGT_TEST_DESCRIPTION(
 "such as context flipping.");
 
 typedef struct {
-	int pipe;
+	enum pipe pipe;
 	int drm_fd;
 	int nv_crc_dir;
 	igt_display_t display;
-- 
2.52.0


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

* [PATCH i-g-t 05/21] lib/kms: Add igt_crtc_for_crtc_id()
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (3 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 04/21] tests/kms: Use 'enum pipe' over int' Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 06/21] tests/kms_lease: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Introduce igt_crtc_for_crtc_id() as a helper to return the
appropriate igt_crtc_t* for a given KMS CRTC ID. This will
be useful for kms_lease which will need to match the CRTCs
between the lessor and lessee (each has a different view of
the same KMS objects, and thus also different igt_display_t).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 12 ++++++++++++
 lib/igt_kms.h |  1 +
 2 files changed, 13 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 5c48796040a2..bec96f2677ad 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -7952,3 +7952,15 @@ bool igt_has_lobf_debugfs(int drmfd, igt_output_t *output)
                                               buf, sizeof(buf));
         return res == 0;
 }
+
+igt_crtc_t *igt_crtc_for_crtc_id(igt_display_t *display, uint32_t crtc_id)
+{
+	igt_crtc_t *crtc;
+
+	for_each_crtc(display, crtc) {
+		if (crtc->crtc_id == crtc_id)
+			return crtc;
+	}
+
+	return NULL;
+}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index dedc3f88055b..5a2dd87b509f 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -582,6 +582,7 @@ static inline igt_crtc_t *igt_crtc_for_pipe(igt_display_t *display, enum pipe pi
 
 	return &display->crtcs[pipe];
 }
+igt_crtc_t *igt_crtc_for_crtc_id(igt_display_t *display, uint32_t crtc_id);
 
 typedef struct _igt_pipe_crc igt_pipe_crc_t;
 igt_pipe_crc_t *igt_crtc_crc_new(igt_crtc_t *crtc, const char *source);
-- 
2.52.0


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

* [PATCH i-g-t 06/21] tests/kms_lease: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (4 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 05/21] lib/kms: Add igt_crtc_for_crtc_id() Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 07/21] tests/kms_lease: Pass lease_t to prepare_crtc() Ville Syrjala
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert kms_lease from 'enum pipe' to 'igt_crtc_t'.

The lessor and lessee each have their own igt_display_t and
igt_crtc_ts. Thus we have to track the igt_crtc_t in the lease_t
structure instead of the previous approach of tracking the pipe
in the shared data_t structure.

The CRTC ID will be the same for both lessor and lessee, so
we can use that to locate the appropriate igt_crtc_t. The
CRTC ID is already being tracked in the data_t structure.

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

diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 39f5e69440b4..045cd62de0d7 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -126,6 +126,7 @@ typedef struct {
 	uint32_t lessee_id;
 	igt_display_t display;
 	struct igt_fb primary_fb;
+	igt_crtc_t *crtc;
 	igt_output_t *output;
 	drmModeModeInfo *mode;
 } lease_t;
@@ -133,7 +134,6 @@ typedef struct {
 typedef struct {
 	lease_t lease;
 	lease_t master;
-	enum pipe pipe;
 	uint32_t crtc_id;
 	uint32_t connector_id;
 	uint32_t plane_id;
@@ -152,8 +152,8 @@ static int prepare_crtc(data_t *data, bool is_master)
 	drmModeModeInfo *mode;
 	lease_t *lease = is_master ? &data->master : &data->lease;
 	igt_display_t *display = &lease->display;
+	igt_crtc_t *crtc = igt_crtc_for_crtc_id(display, data->crtc_id);
 	igt_output_t *output = connector_id_to_output(display, data->connector_id);
-	enum pipe pipe = igt_crtc_for_pipe(display, data->pipe)->pipe;
 	igt_plane_t *primary;
 	int ret;
 
@@ -161,7 +161,7 @@ static int prepare_crtc(data_t *data, bool is_master)
 		return -ENOENT;
 
 	/* select the pipe we want to use */
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	igt_output_set_crtc(output, crtc);
 
 	/* create and set the primary plane fb */
 	mode = igt_output_get_mode(output);
@@ -179,8 +179,9 @@ static int prepare_crtc(data_t *data, bool is_master)
 	if (ret)
 		return ret;
 
-	igt_wait_for_vblank(igt_crtc_for_pipe(display, pipe));
+	igt_wait_for_vblank(crtc);
 
+	lease->crtc = crtc;
 	lease->output = output;
 	lease->mode = mode;
 	return 0;
@@ -308,8 +309,6 @@ static int paint_fb(int drm_fd, struct igt_fb *fb, const char *test_name,
 
 static void simple_lease(data_t *data)
 {
-	enum pipe pipe = data->pipe;
-
 	/* Create a valid lease */
 	igt_assert_eq(make_lease(data), 0);
 
@@ -321,7 +320,7 @@ static void simple_lease(data_t *data)
 	/* Paint something attractive */
 	paint_fb(data->lease.fd, &data->lease.primary_fb, "simple-lease",
 		 data->lease.mode->name, igt_output_name(data->lease.output),
-		 kmstest_pipe_name(pipe));
+		 igt_crtc_name(data->lease.crtc));
 	igt_debug_wait_for_keypress("lease");
 	cleanup_crtc(&data->lease,
 		     connector_id_to_output(&data->lease.display, data->connector_id));
@@ -341,8 +340,6 @@ static void page_flip_implicit_plane(data_t *data)
 	drmModePlaneRes *plane_resources;
 	uint32_t wrong_plane_id = 0;
 	int i;
-	igt_display_t *display;
-	enum pipe pipe = data->pipe;
 
 	/* find a plane which isn't the primary one for us */
 	plane_resources = drmModeGetPlaneResources(data->master.fd);
@@ -374,9 +371,7 @@ static void page_flip_implicit_plane(data_t *data)
 			      data->master.primary_fb.fb_id,
 			      0, NULL));
 
-	display = &data->master.display;
-
-	igt_wait_for_vblank(igt_crtc_for_pipe(display, pipe));
+	igt_wait_for_vblank(data->master.crtc);
 
 	do_or_die(drmModePageFlip(data->lease.fd, data->crtc_id,
 			      data->master.primary_fb.fb_id,
@@ -386,7 +381,7 @@ static void page_flip_implicit_plane(data_t *data)
 	object_ids[mcl.object_count++] = wrong_plane_id;
 	do_or_die(create_lease(data->master.fd, &mcl, &data->lease.fd));
 
-	igt_wait_for_vblank(igt_crtc_for_pipe(display, pipe));
+	igt_wait_for_vblank(data->master.crtc);
 
 	igt_assert_eq(drmModePageFlip(data->lease.fd, data->crtc_id,
 				      data->master.primary_fb.fb_id,
@@ -1290,7 +1285,6 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s", f->name) {
 				for_each_crtc_with_valid_output(display, crtc,
 								output) {
-					data.pipe = crtc->pipe;
 					igt_display_reset(display);
 
 					igt_output_set_crtc(output,
-- 
2.52.0


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

* [PATCH i-g-t 07/21] tests/kms_lease: Pass lease_t to prepare_crtc()
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (5 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 06/21] tests/kms_lease: Use igt_crtc_t instead of enum pipe Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 08/21] tests/intel/kms_frontbuffer_tracking: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

cleanup_crtc() gets passed the appropriate lease_t directly
by the caller, but prepare_crtc() instead takes the same information
as a boolean flag (and picks the appropriate lease_t based on that).
Unify the approach to also pass the appropriate lease_t directly
to prepare_crtc().

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

diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 045cd62de0d7..9f7935e99902 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -147,10 +147,9 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
 	return igt_output_from_connector(display, &connector);
 }
 
-static int prepare_crtc(data_t *data, bool is_master)
+static int prepare_crtc(data_t *data, lease_t *lease)
 {
 	drmModeModeInfo *mode;
-	lease_t *lease = is_master ? &data->master : &data->lease;
 	igt_display_t *display = &lease->display;
 	igt_crtc_t *crtc = igt_crtc_for_crtc_id(display, data->crtc_id);
 	igt_output_t *output = connector_id_to_output(display, data->connector_id);
@@ -315,7 +314,7 @@ static void simple_lease(data_t *data)
 	igt_display_require(&data->lease.display, data->lease.fd);
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(data, false));
+	igt_assert_eq(0, prepare_crtc(data, &data->lease));
 
 	/* Paint something attractive */
 	paint_fb(data->lease.fd, &data->lease.primary_fb, "simple-lease",
@@ -364,7 +363,7 @@ static void page_flip_implicit_plane(data_t *data)
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(data, true));
+	igt_assert_eq(0, prepare_crtc(data, &data->master));
 
 	/* sanity check */
 	do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
@@ -436,7 +435,7 @@ static void setcrtc_implicit_plane(data_t *data)
 	}
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(data, true));
+	igt_assert_eq(0, prepare_crtc(data, &data->master));
 
 	/* sanity check */
 	ret = drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
@@ -477,7 +476,7 @@ static void cursor_implicit_plane(data_t *data)
 	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
 
 	/* Set a mode on the leased output */
-	igt_assert_eq(0, prepare_crtc(data, true));
+	igt_assert_eq(0, prepare_crtc(data, &data->master));
 
 	/* sanity check */
 	do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
@@ -788,7 +787,7 @@ static void lease_revoke(data_t *data)
 	igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
 
 	/* Try to use the leased objects */
-	ret = prepare_crtc(data, false);
+	ret = prepare_crtc(data, &data->lease);
 
 	/* Ensure that the expected error is returned */
 	igt_assert_eq(ret, -ENOENT);
-- 
2.52.0


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

* [PATCH i-g-t 08/21] tests/intel/kms_frontbuffer_tracking: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (6 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 07/21] tests/kms_lease: Pass lease_t to prepare_crtc() Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 09/21] tests/kms_plane_scaling: " Ville Syrjala
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert kms_frontbuffer_tracking from 'enum pipe' to 'igt_crtc_t'.
This is written in its own peculiar style, and getting cocci to
grog it seems very hard, so the conversion was done manually.

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

diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
index 58bc92a39422..ce0a646d4e80 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -1020,7 +1020,7 @@ struct {
 };
 
 struct modeset_params {
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_output_t *output;
 	drmModeModeInfo mode;
 
@@ -1104,7 +1104,7 @@ static drmModeModeInfo *connector_get_mode(igt_output_t *output)
 }
 
 static void init_mode_params(struct modeset_params *params,
-			     igt_output_t *output, enum pipe pipe)
+			     igt_output_t *output, igt_crtc_t *crtc)
 {
 	int i;
 	drmModeModeInfo *mode;
@@ -1112,11 +1112,11 @@ static void init_mode_params(struct modeset_params *params,
 	igt_output_override_mode(output, NULL);
 	mode = connector_get_mode(output);
 
-	params->pipe = pipe;
+	params->crtc = crtc;
 	params->output = output;
 	params->mode = *mode;
 
-	params->primary.plane = igt_crtc_get_plane_type(igt_crtc_for_pipe(&drm.display, pipe),
+	params->primary.plane = igt_crtc_get_plane_type(crtc,
 							DRM_PLANE_TYPE_PRIMARY);
 	params->primary.fb = NULL;
 	params->primary.x = 0;
@@ -1124,7 +1124,7 @@ static void init_mode_params(struct modeset_params *params,
 	params->primary.w = mode->hdisplay;
 	params->primary.h = mode->vdisplay;
 
-	params->cursor.plane = igt_crtc_get_plane_type(igt_crtc_for_pipe(&drm.display, pipe),
+	params->cursor.plane = igt_crtc_get_plane_type(crtc,
 						       DRM_PLANE_TYPE_CURSOR);
 	params->cursor.fb = NULL;
 	params->cursor.x = 0;
@@ -1132,7 +1132,7 @@ static void init_mode_params(struct modeset_params *params,
 	params->cursor.w = 64;
 	params->cursor.h = 64;
 
-	params->sprite.plane = igt_crtc_get_plane_type(igt_crtc_for_pipe(&drm.display, pipe),
+	params->sprite.plane = igt_crtc_get_plane_type(crtc,
 						       DRM_PLANE_TYPE_OVERLAY);
 	igt_require(params->sprite.plane);
 	params->sprite.fb = NULL;
@@ -1158,9 +1158,9 @@ static void init_mode_params(struct modeset_params *params,
 
 static bool find_connector(bool edp_only, bool pipe_a,
 			   igt_output_t *forbidden_output,
-			   enum pipe forbidden_pipe,
+			   igt_crtc_t *forbidden_crtc,
 			   igt_output_t **ret_output,
-			   enum pipe *ret_pipe)
+			   igt_crtc_t **ret_crtc)
 {
 	igt_output_t *output;
 	igt_crtc_t *crtc;
@@ -1174,7 +1174,7 @@ static bool find_connector(bool edp_only, bool pipe_a,
 		if (pipe_a && crtc->pipe != PIPE_A)
 			continue;
 
-		if (output == forbidden_output || crtc->pipe == forbidden_pipe) {
+		if (output == forbidden_output || crtc == forbidden_crtc) {
 			igt_output_set_crtc(output,
 					    crtc);
 			igt_output_override_mode(output, connector_get_mode(output));
@@ -1190,7 +1190,7 @@ static bool find_connector(bool edp_only, bool pipe_a,
 		igt_output_override_mode(output, connector_get_mode(output));
 		if (intel_pipe_output_combo_valid(&drm.display)) {
 			*ret_output = output;
-			*ret_pipe = crtc->pipe;
+			*ret_crtc = crtc;
 			return true;
 		}
 	}
@@ -1201,7 +1201,7 @@ static bool find_connector(bool edp_only, bool pipe_a,
 static bool init_modeset_cached_params(void)
 {
 	igt_output_t *prim_output = NULL, *scnd_output = NULL;
-	enum pipe prim_pipe, scnd_pipe;
+	igt_crtc_t *prim_crtc, *scnd_crtc;
 
 	/*
 	 * We have this problem where PSR is only present on eDP monitors and
@@ -1211,29 +1211,29 @@ static bool init_modeset_cached_params(void)
 	 * TODO: refactor the code in a way that allows us to have different
 	 * sets of prim/scnd structs for different features.
 	 */
-	find_connector(true, true, NULL, PIPE_NONE, &prim_output, &prim_pipe);
+	find_connector(true, true, NULL, NULL, &prim_output, &prim_crtc);
 	if (!prim_output)
-		find_connector(true, false, NULL, PIPE_NONE, &prim_output, &prim_pipe);
+		find_connector(true, false, NULL, NULL, &prim_output, &prim_crtc);
 	if (!prim_output)
-		find_connector(false, true, NULL, PIPE_NONE, &prim_output, &prim_pipe);
+		find_connector(false, true, NULL, NULL, &prim_output, &prim_crtc);
 	if (!prim_output)
-		find_connector(false, false, NULL, PIPE_NONE, &prim_output, &prim_pipe);
+		find_connector(false, false, NULL, NULL, &prim_output, &prim_crtc);
 
 	if (!prim_output)
 		return false;
 
-	find_connector(false, false, prim_output, prim_pipe,
-		       &scnd_output, &scnd_pipe);
+	find_connector(false, false, prim_output, prim_crtc,
+		       &scnd_output, &scnd_crtc);
 
-	init_mode_params(&prim_mode_params, prim_output, prim_pipe);
+	init_mode_params(&prim_mode_params, prim_output, prim_crtc);
 
 	if (!scnd_output) {
-		scnd_mode_params.pipe = PIPE_NONE;
+		scnd_mode_params.crtc = NULL;
 		scnd_mode_params.output = NULL;
 		return true;
 	}
 
-	init_mode_params(&scnd_mode_params, scnd_output, scnd_pipe);
+	init_mode_params(&scnd_mode_params, scnd_output, scnd_crtc);
 	return true;
 }
 
@@ -1520,8 +1520,7 @@ static void __set_prim_plane_for_params(struct modeset_params *params)
 static void __set_mode_for_params(struct modeset_params *params)
 {
 	igt_output_override_mode(params->output, &params->mode);
-	igt_output_set_crtc(params->output,
-			    igt_crtc_for_pipe(params->output->display, params->pipe));
+	igt_output_set_crtc(params->output, params->crtc);
 
 	__set_prim_plane_for_params(params);
 }
@@ -1537,7 +1536,7 @@ static void __debugfs_read_crtc(const char *param, char *buf, int len)
 	int dir;
 	enum pipe pipe;
 
-	pipe = prim_mode_params.pipe;
+	pipe = prim_mode_params.crtc->pipe;
 	dir = igt_debugfs_crtc_dir(drm.fd, pipe, O_DIRECTORY);
 	igt_require_fd(dir);
 	igt_debugfs_simple_read(dir, param, buf, len);
@@ -1686,12 +1685,12 @@ static bool fbc_psr_not_possible(void)
 	return strstr(buf, "FBC disabled: PSR1 enabled (Wa_14016291713)");
 }
 
-static bool fbc_enable_per_plane(int plane_index, enum pipe pipe)
+static bool fbc_enable_per_plane(int plane_index, igt_crtc_t *crtc)
 {
 	char buf[PATH_MAX];
 	char buf_plane[128];
 
-	sprintf(buf_plane, "%d%s", plane_index, kmstest_pipe_name(pipe));
+	sprintf(buf_plane, "%d%s", plane_index, igt_crtc_name(crtc));
 
 	debugfs_read_crtc("i915_fbc_status", buf);
 	return strstr(strstr(buf, "*"), buf_plane);
@@ -1906,7 +1905,7 @@ static bool disable_features(const struct test_mode *t)
 		return false;
 
 	intel_fbc_disable(drm.fd);
-	intel_drrs_disable(drm.fd, prim_mode_params.pipe);
+	intel_drrs_disable(drm.fd, prim_mode_params.crtc->pipe);
 
 	return psr.can_test ? psr_disable(drm.fd, drm.debugfs, NULL) : false;
 }
@@ -1980,14 +1979,13 @@ static void init_blue_crc(enum pixel_format format, enum tiling_type tiling)
 
 	fill_fb(&blue, COLOR_PRIM_BG);
 
-	igt_output_set_crtc(prim_mode_params.output,
-			    igt_crtc_for_pipe(prim_mode_params.output->display, prim_mode_params.pipe));
+	igt_output_set_crtc(prim_mode_params.output, prim_mode_params.crtc);
 	igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode);
 	igt_plane_set_fb(prim_mode_params.primary.plane, &blue);
 	igt_display_commit(&drm.display);
 
 	if (!pipe_crc) {
-		pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(&drm.display, prim_mode_params.pipe),
+		pipe_crc = igt_crtc_crc_new(prim_mode_params.crtc,
 					    IGT_PIPE_CRC_SOURCE_AUTO);
 		igt_assert(pipe_crc);
 	}
@@ -2036,8 +2034,7 @@ static void init_crcs(enum pixel_format format, enum tiling_type tiling,
 					 IGT_DRAW_PWRITE : IGT_DRAW_BLT, r);
 	}
 
-	igt_output_set_crtc(prim_mode_params.output,
-			    igt_crtc_for_pipe(prim_mode_params.output->display, prim_mode_params.pipe));
+	igt_output_set_crtc(prim_mode_params.output, prim_mode_params.crtc);
 	igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode);
 	for (r = 0; r < pattern->n_rects; r++) {
 		igt_plane_set_fb(prim_mode_params.primary.plane, &tmp_fbs[r]);
@@ -2155,7 +2152,7 @@ static void teardown_crcs(void)
 
 static void setup_fbc(void)
 {
-	if (!intel_fbc_supported_on_chipset(drm.fd, prim_mode_params.pipe)) {
+	if (!intel_fbc_supported_on_chipset(drm.fd, prim_mode_params.crtc->pipe)) {
 		igt_info("Can't test FBC: not supported on this chipset\n");
 		return;
 	}
@@ -2195,7 +2192,7 @@ static void setup_drrs(void)
 		return;
 	}
 
-	if (!intel_is_drrs_supported(drm.fd, prim_mode_params.pipe)) {
+	if (!intel_is_drrs_supported(drm.fd, prim_mode_params.crtc->pipe)) {
 		igt_info("Can't test DRRS: Not supported.\n");
 		return;
 	}
@@ -2352,7 +2349,7 @@ static void do_status_assertions(int flags)
 			igt_assert_f(false, "DRRS LOW\n");
 		}
 	} else if (flags & ASSERT_DRRS_INACTIVE) {
-		if (!intel_is_drrs_inactive(drm.fd, prim_mode_params.pipe)) {
+		if (!intel_is_drrs_inactive(drm.fd, prim_mode_params.crtc->pipe)) {
 			drrs_print_status();
 			igt_assert_f(false, "DRRS INACTIVE\n");
 		}
@@ -2363,9 +2360,9 @@ static void do_status_assertions(int flags)
 		igt_require(!fbc_stride_not_supported());
 		igt_require(!fbc_mode_too_large());
 		igt_require(!fbc_psr_not_possible());
-		if (!intel_fbc_wait_until_enabled(drm.fd, prim_mode_params.pipe)) {
+		if (!intel_fbc_wait_until_enabled(drm.fd, prim_mode_params.crtc->pipe)) {
 			igt_assert_f(intel_fbc_is_enabled(drm.fd,
-						    prim_mode_params.pipe,
+						    prim_mode_params.crtc->pipe,
 						    IGT_LOG_WARN),
 				     "FBC disabled\n");
 		}
@@ -2374,7 +2371,7 @@ static void do_status_assertions(int flags)
 			igt_assert(fbc_wait_for_compression());
 	} else if (flags & ASSERT_FBC_DISABLED) {
 		igt_assert(!intel_fbc_wait_until_enabled(drm.fd,
-						   prim_mode_params.pipe));
+						   prim_mode_params.crtc->pipe));
 	}
 
 	if (flags & ASSERT_PSR_ENABLED) {
@@ -2443,10 +2440,8 @@ static void update_modeset_cached_params(enum igt_draw_method method)
 {
 	bool found = false;
 
-	igt_output_set_crtc(prim_mode_params.output,
-			    igt_crtc_for_pipe(prim_mode_params.output->display, prim_mode_params.pipe));
-	igt_output_set_crtc(scnd_mode_params.output,
-			    igt_crtc_for_pipe(scnd_mode_params.output->display, scnd_mode_params.pipe));
+	igt_output_set_crtc(prim_mode_params.output, prim_mode_params.crtc);
+	igt_output_set_crtc(scnd_mode_params.output, scnd_mode_params.crtc);
 
 	found = igt_override_all_active_output_modes_to_fit_bw(&drm.display);
 	igt_require_f(found, "No valid mode combo found.\n");
@@ -2514,7 +2509,7 @@ static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane
 	struct igt_fb fb;
 	uint64_t color;
 
-	igt_info("Testing fbc on plane %i%s\n", plane->index + 1, kmstest_pipe_name(prim_mode_params.pipe));
+	igt_info("Testing fbc on plane %i%s\n", plane->index + 1, igt_crtc_name(prim_mode_params.crtc));
 
 	create_fb(t->format, prim_mode_params.mode.hdisplay, prim_mode_params.mode.vdisplay, t->tiling, t->plane, &fb);
 	color = pick_color(&fb, COLOR_PRIM_BG);
@@ -2530,7 +2525,7 @@ static void set_plane_for_test_fbc(const struct test_mode *t, igt_plane_t *plane
 
 	fbc_update_last_action();
 	do_assertions(ASSERT_FBC_ENABLED | ASSERT_NO_ACTION_CHANGE);
-	igt_assert_f(fbc_enable_per_plane(plane->index + 1, prim_mode_params.pipe), "FBC disabled\n");
+	igt_assert_f(fbc_enable_per_plane(plane->index + 1, prim_mode_params.crtc), "FBC disabled\n");
 
 	igt_remove_fb(drm.fd, &fb);
 	igt_plane_set_fb(plane, NULL);
@@ -2549,7 +2544,7 @@ static bool enable_features_for_test(const struct test_mode *t)
 	if (t->feature & FEATURE_PSR)
 		ret = psr_enable(drm.fd, drm.debugfs, PSR_MODE_1, NULL);
 	if (t->feature & FEATURE_DRRS)
-		intel_drrs_enable(drm.fd, prim_mode_params.pipe);
+		intel_drrs_enable(drm.fd, prim_mode_params.crtc->pipe);
 
 	return ret;
 }
@@ -2769,12 +2764,11 @@ static void plane_fbc_rte_subtest(const struct test_mode *t)
 	do_assertions(ASSERT_FBC_DISABLED | DONT_ASSERT_CRC);
 
 	igt_output_override_mode(prim_mode_params.output, &prim_mode_params.mode);
-	igt_output_set_crtc(prim_mode_params.output,
-			    igt_crtc_for_pipe(prim_mode_params.output->display, prim_mode_params.pipe));
+	igt_output_set_crtc(prim_mode_params.output, prim_mode_params.crtc);
 
 	wanted_crc = &blue_crcs[t->format].crc;
 
-	for_each_plane_on_pipe(&drm.display, prim_mode_params.pipe, plane) {
+	for_each_plane_on_pipe(&drm.display, prim_mode_params.crtc->pipe, plane) {
 		if (!is_valid_plane(plane))
 			continue;
 
@@ -3164,8 +3158,7 @@ static void page_flip_for_params(struct modeset_params *params,
 
 	switch (type) {
 	case FLIP_PAGEFLIP:
-		rc = drmModePageFlip(drm.fd,
-				     igt_crtc_for_pipe(&drm.display, params->pipe)->crtc_id,
+		rc = drmModePageFlip(drm.fd, params->crtc->crtc_id,
 				     params->primary.fb->fb_id,
 				     DRM_MODE_PAGE_FLIP_EVENT, NULL);
 		igt_assert_eq(rc, 0);
@@ -3778,7 +3771,7 @@ static void stridechange_subtest(const struct test_mode *t)
 	 * with the atomic page flip helper, but not with the legacy page flip.
 	 */
 	rc = drmModePageFlip(drm.fd,
-			     igt_crtc_for_pipe(&drm.display, params->pipe)->crtc_id,
+			     params->crtc->crtc_id,
 			     new_fb->fb_id, 0, NULL);
 	igt_assert(rc == -EINVAL || rc == 0);
 	do_assertions(rc ? 0 : DONT_ASSERT_FBC_STATUS);
@@ -4210,7 +4203,7 @@ int igt_main_args("", long_options, help_str, opt_handler, NULL)
 	igt_subtest_group() {
 		igt_subtest_with_dynamic("pipe-fbc-rte") {
 
-			enum pipe default_pipe = prim_mode_params.pipe;
+			igt_crtc_t *default_crtc = prim_mode_params.crtc;
 
 			t.pipes = PIPE_SINGLE;
 			t.feature = FEATURE_FBC;
@@ -4226,7 +4219,7 @@ int igt_main_args("", long_options, help_str, opt_handler, NULL)
 				      "FBC isn't supported on BMG\n");
 
 			for_each_crtc(&drm.display, crtc) {
-				if (crtc->pipe == default_pipe) {
+				if (crtc == default_crtc) {
 					igt_info("pipe-%s: FBC validated in other subtest\n", igt_crtc_name(crtc));
 					continue;
 				}
@@ -4240,7 +4233,7 @@ int igt_main_args("", long_options, help_str, opt_handler, NULL)
 				setup_crcs();
 
 				for_each_valid_output_on_pipe(&drm.display, crtc->pipe, output) {
-					init_mode_params(&prim_mode_params, output, crtc->pipe);
+					init_mode_params(&prim_mode_params, output, crtc);
 					setup_fbc();
 
 					igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
-- 
2.52.0


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

* [PATCH i-g-t 09/21] tests/kms_plane_scaling: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (7 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 08/21] tests/intel/kms_frontbuffer_tracking: Use igt_crtc_t instead of enum pipe Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 10/21] tests/drm_read: " Ville Syrjala
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert kms_frontbuffer_tracking from 'enum pipe' to 'igt_crtc_t'.

There are three noteworthy complications in this one:
- two pipe/crtc usage in test_invalid_num_scalers()
- find_connnected_pipe() return value
- fixed PIPE_A usage in invalid_parameter_tests()

 #include "scripts/iterators.cocci"

@multi_pipe@
typedef igt_crtc_t;
typedef igt_display_t;
identifier DISPLAY;
enum pipe PIPE1, PIPE2;
expression GET_PIPE1, GET_PIPE2;
@@
  igt_display_t *DISPLAY = ...;
+ igt_crtc_t *crtc1;
+ igt_crtc_t *crtc2;
...
- PIPE1 = GET_PIPE1;
+ crtc1 = igt_crtc_for_pipe(DISPLAY, GET_PIPE1);
...
- PIPE2 = GET_PIPE2;
+ crtc2 = igt_crtc_for_pipe(DISPLAY, GET_PIPE2);
<...
(
- igt_crtc_for_pipe(..., PIPE1)
+ crtc1
|
- kmstest_pipe_name(PIPE1)
+ igt_crtc_name(crtc1)
|
- PIPE1
+ crtc1->pipe
|
- igt_crtc_for_pipe(..., PIPE2)
+ crtc2
|
- kmstest_pipe_name(PIPE2)
+ igt_crtc_name(crtc2)
|
- PIPE2
+ crtc2->pipe
)
...>

@@
identifier PIPE;
@@
- enum pipe PIPE;
... when != PIPE

@ret_pipe@
typedef igt_output_t;
typedef igt_crtc_t;
identifier FUNC;
igt_crtc_t *CRTC;
parameter list[N] P;
@@
- enum pipe
+ igt_crtc_t *
FUNC(P)
{
<...
- return CRTC->pipe;
+ return CRTC;
...>
}

@depends on ret_pipe@
identifier ret_pipe.FUNC;
@@
FUNC(...)
+ ->pipe

@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)
	,...)

@depends on ret_pipe@
identifier ret_pipe.FUNC;
expression list[ret_pipe.N] EP;
@@
- igt_crtc_for_pipe(..., FUNC(EP)->pipe)
+ FUNC(EP)

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

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

@fixed_pipe_a@
identifier PIPE, DISPLAY;
@@
igt_display_t *DISPLAY = ...;
...
- enum pipe PIPE = PIPE_A;
+ igt_crtc_t *crtc;
...
igt_fixture() {
+ crtc = igt_crtc_for_pipe(DISPLAY, PIPE_A);
<+... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ crtc
|
- kmstest_pipe_name(PIPE)
+ igt_crtc_name(crtc)
|
- PIPE
+ crtc->pipe
)
...+>
}

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 887914ec8b79..893f2830b446 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -690,13 +690,13 @@ static bool test_format(data_t *data,
 	return true;
 }
 
-static bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
+static bool test_pipe_iteration(data_t *data, igt_crtc_t *crtc, int iteration)
 {
 	if (!is_intel_device(data->drm_fd) ||
 	    data->extended)
 		return true;
 
-	if ((pipe > PIPE_B) && (iteration >= 2))
+	if ((crtc->pipe > PIPE_B) && (iteration >= 2))
 		return false;
 
 	return true;
@@ -714,12 +714,10 @@ static uint32_t
 test_scaler_with_modifier_pipe(data_t *d,
 			       double sf_plane,
 			       bool is_clip_clamp,
-			       bool is_upscale,
-			       enum pipe pipe,
+			       bool is_upscale, igt_crtc_t *crtc,
 			       igt_output_t *output)
 {
 	igt_display_t *display = &d->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	unsigned format = DRM_FORMAT_XRGB8888;
 	igt_plane_t *plane;
 	uint32_t ret;
@@ -754,12 +752,10 @@ static uint32_t
 test_scaler_with_rotation_pipe(data_t *d,
 			       double sf_plane,
 			       bool is_clip_clamp,
-			       bool is_upscale,
-			       enum pipe pipe,
+			       bool is_upscale, igt_crtc_t *crtc,
 			       igt_output_t *output)
 {
 	igt_display_t *display = &d->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	unsigned format = DRM_FORMAT_XRGB8888;
 	uint64_t modifier = DRM_FORMAT_MOD_LINEAR;
 	igt_plane_t *plane;
@@ -794,12 +790,10 @@ test_scaler_with_rotation_pipe(data_t *d,
 static uint32_t
 test_scaler_with_pixel_format_pipe(data_t *d, double sf_plane,
 				   bool is_clip_clamp,
-				   bool is_upscale,
-				   enum pipe pipe,
+				   bool is_upscale, igt_crtc_t *crtc,
 				   igt_output_t *output)
 {
 	igt_display_t *display = &d->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	uint64_t modifier = DRM_FORMAT_MOD_LINEAR;
 	igt_plane_t *plane;
 	uint32_t ret;
@@ -819,7 +813,7 @@ test_scaler_with_pixel_format_pipe(data_t *d, double sf_plane,
 		for (int j = 0; j < plane->drm_plane->count_formats; j++) {
 			uint32_t format = plane->drm_plane->formats[j];
 
-			if (!test_pipe_iteration(d, crtc->pipe, j))
+			if (!test_pipe_iteration(d, crtc, j))
 				continue;
 
 			if (test_format(d, &tested_formats, format) &&
@@ -842,7 +836,7 @@ test_scaler_with_pixel_format_pipe(data_t *d, double sf_plane,
 	return ret;
 }
 
-static enum pipe
+static igt_crtc_t *
 find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 {
 	igt_crtc_t *crtc;
@@ -880,7 +874,7 @@ 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 int
@@ -940,13 +934,11 @@ static void setup_fb(int fd, int width, int height, struct igt_fb *fb)
 
 static uint32_t
 test_planes_scaling_combo(data_t *d, double sf_plane1,
-			  double sf_plane2,
-			  enum pipe pipe,
+			  double sf_plane2, igt_crtc_t *crtc,
 			  igt_output_t *output,
 			  enum scaler_combo_test_type test_type)
 {
 	igt_display_t *display = &d->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	drmModeModeInfo *mode;
 	int n_planes;
 	int w1, h1, w2, h2;
@@ -1014,10 +1006,9 @@ test_planes_scaling_combo(data_t *d, double sf_plane1,
 }
 
 static void
-test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output)
+test_invalid_num_scalers(data_t *d, igt_crtc_t *crtc, igt_output_t *output)
 {
 	igt_display_t *display = &d->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	int width, height;
 	igt_plane_t *plane[3];
 	drmModeModeInfo *mode;
@@ -1084,29 +1075,30 @@ test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output)
 static void test_scaler_with_multi_pipe_plane(data_t *d)
 {
 	igt_display_t *display = &d->display;
+	igt_crtc_t *crtc1;
+	igt_crtc_t *crtc2;
 	igt_output_t *output1, *output2;
 	drmModeModeInfo *mode1, *mode2;
 	igt_plane_t *plane[4];
-	enum pipe pipe1, pipe2;
 	int ret1, ret2;
 
 	cleanup_fbs(d);
 
-	pipe1 = find_connected_pipe(display, false, &output1);
-	pipe2 = find_connected_pipe(display, true, &output2);
+	crtc1 = find_connected_pipe(display, false, &output1);
+	crtc2 = find_connected_pipe(display, true, &output2);
 	igt_skip_on(!output1 || !output2);
 
 	igt_info("Using (pipe %s + %s) and (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(pipe1), igt_output_name(output1),
-		 kmstest_pipe_name(pipe2), igt_output_name(output2));
+		 igt_crtc_name(crtc1), igt_output_name(output1),
+		 igt_crtc_name(crtc2), igt_output_name(output2));
 
 	igt_output_set_crtc(output1,
-			    igt_crtc_for_pipe(display, pipe1));
+			    crtc1);
 	igt_output_set_crtc(output2,
-			    igt_crtc_for_pipe(display, pipe2));
+			    crtc2);
 
-	igt_require(get_num_scalers(display, pipe1) >= 2);
-	igt_require(get_num_scalers(display, pipe2) >= 2);
+	igt_require(get_num_scalers(display, crtc1->pipe) >= 2);
+	igt_require(get_num_scalers(display, crtc2->pipe) >= 2);
 
 	plane[0] = igt_output_get_plane(output1, 0);
 	igt_require(plane[0]);
@@ -1169,7 +1161,7 @@ static void test_scaler_with_multi_pipe_plane(data_t *d)
 static void invalid_parameter_tests(data_t *d)
 {
 	igt_display_t *display = &d->display;
-	enum pipe pipe = PIPE_A;
+	igt_crtc_t *crtc;
 	igt_output_t *output;
 	igt_fb_t fb;
 	igt_plane_t *plane;
@@ -1189,14 +1181,16 @@ static void invalid_parameter_tests(data_t *d)
 	};
 
 	igt_fixture() {
-		output = igt_get_single_output_for_pipe(&d->display, pipe);
+		crtc = igt_crtc_for_pipe(display, PIPE_A);
+		output = igt_get_single_output_for_pipe(&d->display,
+							crtc->pipe);
 		igt_require(output);
 
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, pipe));
+				    crtc);
 		plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
-		igt_require(get_num_scalers(&d->display, pipe) >= 1);
+		igt_require(get_num_scalers(&d->display, crtc->pipe) >= 1);
 
 		igt_create_fb(d->drm_fd, 256, 256,
 			      DRM_FORMAT_XRGB8888,
@@ -1280,11 +1274,10 @@ static drmModeModeInfo *find_mode(data_t *data, igt_output_t *output, const stru
  *		max_dst_w = 8192
  *		max_dst_h = 8192
  */
-static void intel_max_source_size_test(data_t *d, enum pipe pipe, igt_output_t *output,
+static void intel_max_source_size_test(data_t *d, igt_crtc_t *crtc,
+				       igt_output_t *output,
 				       const struct invalid_paramtests *param)
 {
-	igt_display_t *display = &d->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_fb_t fb;
 	igt_plane_t *plane;
 	int rval;
@@ -1327,14 +1320,14 @@ static void intel_max_source_size_test(data_t *d, enum pipe pipe, igt_output_t *
 }
 
 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);
@@ -1388,7 +1381,7 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 					igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
 						for_each_valid_output_on_pipe(&data.display, crtc->pipe, output) {
 							igt_info("Trying on %s\n", igt_output_name(output));
-							if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+							if (!pipe_output_combo_valid(&data.display, crtc, output))
 								continue;
 							if (get_num_scalers(&data.display, crtc->pipe) < 1)
 								continue;
@@ -1397,7 +1390,8 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 									scaler_with_pixel_format_tests[index].sf,
 									false,
 									scaler_with_pixel_format_tests[index].is_upscale,
-									crtc->pipe, output);
+									crtc,
+									output);
 							if (ret == 0)
 								break;
 							igt_info("Required scaling operation not supported on %s trying on next output\n",
@@ -1416,7 +1410,7 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 					igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
 						for_each_valid_output_on_pipe(&data.display, crtc->pipe, output) {
 							igt_info("Trying on %s\n", igt_output_name(output));
-							if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+							if (!pipe_output_combo_valid(&data.display, crtc, output))
 								continue;
 							if (get_num_scalers(&data.display, crtc->pipe) < 1)
 								continue;
@@ -1425,7 +1419,8 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 									scaler_with_rotation_tests[index].sf,
 									false,
 									scaler_with_rotation_tests[index].is_upscale,
-									crtc->pipe, output);
+									crtc,
+									output);
 							if (ret == 0)
 								break;
 							igt_info("Required scaling operation not supported on %s trying on next output\n",
@@ -1444,7 +1439,7 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 					igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
 						for_each_valid_output_on_pipe(&data.display, crtc->pipe, output) {
 							igt_info("Trying on %s\n", igt_output_name(output));
-							if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+							if (!pipe_output_combo_valid(&data.display, crtc, output))
 								continue;
 							if (get_num_scalers(&data.display, crtc->pipe) < 1)
 								continue;
@@ -1453,7 +1448,8 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 									scaler_with_modifiers_tests[index].sf,
 									false,
 									scaler_with_modifiers_tests[index].is_upscale,
-									crtc->pipe, output);
+									crtc,
+									output);
 							if (ret == 0)
 								break;
 							igt_info("Required scaling operation not supported on %s trying on next output\n",
@@ -1471,13 +1467,14 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 				igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
 					for_each_valid_output_on_pipe(&data.display, crtc->pipe, output) {
 						igt_info("Trying on %s\n", igt_output_name(output));
-						if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+						if (!pipe_output_combo_valid(&data.display, crtc, output))
 							continue;
 						if (get_num_scalers(&data.display, crtc->pipe) < 1)
 							continue;
 
 						ret = test_scaler_with_pixel_format_pipe(&data, 0.0, true,
-											 false, crtc->pipe,
+											 false,
+											 crtc,
 											 output);
 						if (ret == 0)
 							break;
@@ -1496,13 +1493,14 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 				igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
 					for_each_valid_output_on_pipe(&data.display, crtc->pipe, output) {
 						igt_info("Trying on %s\n", igt_output_name(output));
-						if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+						if (!pipe_output_combo_valid(&data.display, crtc, output))
 							continue;
 						if (get_num_scalers(&data.display, crtc->pipe) < 1)
 							continue;
 
 						ret = test_scaler_with_rotation_pipe(&data, 0.0, true,
-										     false, crtc->pipe,
+										     false,
+										     crtc,
 										     output);
 						if (ret == 0)
 							break;
@@ -1520,13 +1518,14 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 				igt_dynamic_f("pipe-%s", igt_crtc_name(crtc)) {
 					for_each_valid_output_on_pipe(&data.display, crtc->pipe, output) {
 						igt_info("Trying on %s\n", igt_output_name(output));
-						if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+						if (!pipe_output_combo_valid(&data.display, crtc, output))
 							continue;
 						if (get_num_scalers(&data.display, crtc->pipe) < 1)
 							continue;
 
 						ret = test_scaler_with_modifier_pipe(&data, 0.0, true,
-										     false, crtc->pipe,
+										     false,
+										     crtc,
 										     output);
 						if (ret == 0)
 							break;
@@ -1546,14 +1545,15 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 						for_each_valid_output_on_pipe(&data.display, crtc->pipe, output) {
 							igt_info("Trying on %s\n",
 								 igt_output_name(output));
-							if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
+							if (!pipe_output_combo_valid(&data.display, crtc, output))
 								continue;
 							if (get_num_scalers(&data.display, crtc->pipe) < 2)
 								continue;
 							ret = test_planes_scaling_combo(&data,
 								scaler_with_2_planes_tests[index].sf_plane1,
 								scaler_with_2_planes_tests[index].sf_plane2,
-								crtc->pipe, output,
+								crtc,
+								output,
 								scaler_with_2_planes_tests[index].test_type);
 							if (ret == 0)
 								break;
@@ -1581,7 +1581,9 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 						if (find_mode(&data, output, &intel_paramtests[index]))
 							igt_dynamic_f("pipe-%s-%s",
 								      igt_crtc_name(crtc), igt_output_name(output))
-								intel_max_source_size_test(&data, crtc->pipe, output,
+								intel_max_source_size_test(&data,
+											   crtc,
+											   output,
 											   &intel_paramtests[index]);
 						else
 							igt_info("Unable to find the lowest " \
@@ -1599,14 +1601,16 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_describe("Negative test for number of scalers per pipe.");
 		igt_subtest_with_dynamic("invalid-num-scalers") {
 			for_each_crtc_with_valid_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;
 				if (get_num_scalers(&data.display, crtc->pipe) < 1)
 						continue;
 
 				igt_dynamic_f("pipe-%s-%s-invalid-num-scalers",
 					      igt_crtc_name(crtc), igt_output_name(output))
-					test_invalid_num_scalers(&data, crtc->pipe, output);
+					test_invalid_num_scalers(&data,
+								 crtc,
+								 output);
 			}
 		}
 	}
-- 
2.52.0


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

* [PATCH i-g-t 10/21] tests/drm_read: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (8 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 09/21] tests/kms_plane_scaling: " Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 11/21] tests/intel/kms_psr2_sf: Convert pipes[] to crtcs[] Ville Syrjala
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert drm_read from 'enum pipe' to 'igt_crtc_t'.

The pipe usage in igt_main() creates a slight complication
is this one.

 #include "scripts/iterators.cocci"

@clean_igt_main@
identifier PIPE;
identifier CRTC;
@@
- enum pipe PIPE;
+ igt_crtc_t *CRTC;
...
igt_fixture() {
...
- igt_crtc_t *CRTC;
<...
(
- PIPE = CRTC->pipe;
|
- PIPE
+ CRTC->pipe
)
...>
}
<...
- PIPE
+ CRTC->pipe
...>

@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/drm_read.c | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/tests/drm_read.c b/tests/drm_read.c
index e745e98534bd..23b9ebe0faa3 100644
--- a/tests/drm_read.c
+++ b/tests/drm_read.c
@@ -77,9 +77,9 @@ static void assert_empty(int fd)
 	do_or_die(poll(&pfd, 1, 0));
 }
 
-static void generate_event(int fd, enum pipe pipe)
+static void generate_event(int fd, igt_crtc_t *crtc)
 {
-	igt_assert(kmstest_get_vblank(fd, pipe, DRM_VBLANK_EVENT));
+	igt_assert(kmstest_get_vblank(fd, crtc->pipe, DRM_VBLANK_EVENT));
 }
 
 static void wait_for_event(int fd)
@@ -132,7 +132,7 @@ static void test_invalid_buffer(int in)
 	teardown(fd);
 }
 
-static void test_fault_buffer(int in, enum pipe pipe)
+static void test_fault_buffer(int in, igt_crtc_t *crtc)
 {
 	int fd = setup(in, 0);
 	struct drm_mode_map_dumb arg;
@@ -146,7 +146,7 @@ static void test_fault_buffer(int in, enum pipe pipe)
 	buf = mmap(0, 4096, PROT_WRITE, MAP_SHARED, fd, arg.offset);
 	igt_assert(buf != MAP_FAILED);
 
-	generate_event(fd, pipe);
+	generate_event(fd, crtc);
 
 	alarm(1);
 
@@ -168,13 +168,13 @@ static void test_empty(int in, int nonblock, int expected)
 	teardown(fd);
 }
 
-static void test_short_buffer(int in, int nonblock, enum pipe pipe)
+static void test_short_buffer(int in, int nonblock, igt_crtc_t *crtc)
 {
 	char buffer[1024]; /* events are typically 32 bytes */
 	int fd = setup(in, nonblock);
 
-	generate_event(fd, pipe);
-	generate_event(fd, pipe);
+	generate_event(fd, crtc);
+	generate_event(fd, crtc);
 
 	wait_for_event(fd);
 
@@ -214,7 +214,7 @@ static void *thread_short_buffer_wakeup(void *arg)
 	return NULL;
 }
 
-static void test_short_buffer_wakeup(int in, enum pipe pipe)
+static void test_short_buffer_wakeup(int in, igt_crtc_t *crtc)
 {
 	const int nt = sysconf(_SC_NPROCESSORS_ONLN) + 1;
 	struct short_buffer_wakeup w = {
@@ -243,7 +243,7 @@ static void test_short_buffer_wakeup(int in, enum pipe pipe)
 		sched_yield();
 
 		/* One event should wake all threads as none consume */
-		generate_event(w.fd, pipe);
+		generate_event(w.fd, crtc);
 
 		clock_gettime(CLOCK_REALTIME, &tv);
 		tv.tv_sec += 5; /* Let's be very generous to the scheduler */
@@ -274,13 +274,12 @@ int igt_main()
 {
 	igt_display_t display;
 	struct igt_fb fb;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_fd_t(fd);
 
 	igt_fixture() {
 		struct sigaction alarm_action = {};
 		igt_output_t *output;
-		igt_crtc_t *crtc;
 
 		igt_assert_neq(sigaction(SIGALRM, NULL, &alarm_action), -1);
 		alarm_action.sa_flags &= ~SA_RESTART;
@@ -302,20 +301,18 @@ int igt_main()
 
 			igt_output_set_crtc(output, crtc);
 			igt_plane_set_fb(igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY), &fb);
-
-			pipe = crtc->pipe;
 			break;
 		}
 
 		igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
-		igt_require(kmstest_get_vblank(fd, pipe, 0));
+		igt_require(kmstest_get_vblank(fd, crtc->pipe, 0));
 	}
 
 	igt_subtest("invalid-buffer")
 		test_invalid_buffer(fd);
 
 	igt_subtest("fault-buffer")
-		test_fault_buffer(fd, pipe);
+		test_fault_buffer(fd, crtc);
 
 	igt_subtest("empty-block")
 		test_empty(fd, 0, EINTR);
@@ -324,11 +321,14 @@ int igt_main()
 		test_empty(fd, 1, EAGAIN);
 
 	igt_subtest("short-buffer-block")
-		test_short_buffer(fd, 0, pipe);
+		test_short_buffer(fd, 0,
+				  crtc);
 
 	igt_subtest("short-buffer-nonblock")
-		test_short_buffer(fd, 1, pipe);
+		test_short_buffer(fd, 1,
+				  crtc);
 
 	igt_subtest("short-buffer-wakeup")
-		test_short_buffer_wakeup(fd, pipe);
+		test_short_buffer_wakeup(fd,
+					 crtc);
 }
-- 
2.52.0


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

* [PATCH i-g-t 11/21] tests/intel/kms_psr2_sf: Convert pipes[] to crtcs[]
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (9 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 10/21] tests/drm_read: " Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 12/21] tests/kms_vblank: Use igt_crtc_t instead of enum pipe Ville Syrjala
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert the pipes[] array to crtcs[] in kms_psr2_sf. The
remainder of the pipe->crtc conversions will be handled
with cocci.

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

diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
index 31db6760c73e..cb2f2fe70f80 100644
--- a/tests/intel/kms_psr2_sf.c
+++ b/tests/intel/kms_psr2_sf.c
@@ -1157,8 +1157,8 @@ int igt_main()
 	data_t data = {};
 	igt_output_t *outputs[IGT_MAX_PIPES * IGT_MAX_PIPES];
 	int i, y, z;
-	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;
 	int coexist_features[IGT_MAX_PIPES * IGT_MAX_PIPES];
 	const char *append_fbc_subtest[2] = {
 		"",
@@ -1209,14 +1209,14 @@ int igt_main()
 			if (!output_supports_pr_psr2_sel_fetch)
 				continue;
 
-			pipes[n_pipes] = data.pipe;
-			outputs[n_pipes] = data.output;
+			crtcs[n_crtcs] = crtc;
+			outputs[n_crtcs] = data.output;
 
-			coexist_features[n_pipes] = 0;
+			coexist_features[n_crtcs] = 0;
 			if (is_dsc_supported_by_sink(data.drm_fd, data.output))
-				coexist_features[n_pipes] |= FEATURE_DSC;
+				coexist_features[n_crtcs] |= FEATURE_DSC;
 
-			n_pipes++;
+			n_crtcs++;
 			pr_psr2_sel_fetch_supported = true;
 		}
 		igt_require_f(pr_psr2_sel_fetch_supported,
@@ -1241,8 +1241,8 @@ int igt_main()
 						   append_fbc_subtest[y],
 						   append_psr_subtest[z],
 						   op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1262,8 +1262,8 @@ int igt_main()
 							   append_fbc_subtest[y],
 							   append_psr_subtest[z],
 							   op_str(data.op)) {
-					for (i = 0; i < n_pipes; i++) {
-						data.pipe = pipes[i];
+					for (i = 0; i < n_crtcs; i++) {
+						data.pipe = crtcs[i]->pipe;
 						data.output = outputs[i];
 
 						if (!pipe_output_combo_valid(&data))
@@ -1283,8 +1283,8 @@ int igt_main()
 						   append_fbc_subtest[y],
 						   append_psr_subtest[z],
 						   op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1300,8 +1300,8 @@ int igt_main()
 			igt_describe("Test that selective fetch works on cursor plane");
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1317,8 +1317,8 @@ int igt_main()
 				     "moving cursor plane (no update)");
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1334,8 +1334,8 @@ int igt_main()
 				     "plane exceeding partially visible area (no update)");
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1351,8 +1351,8 @@ int igt_main()
 				     "exceeding fully visible area (no update)");
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1369,8 +1369,8 @@ int igt_main()
 			igt_describe("Test that selective fetch works on moving overlay plane");
 			igt_subtest_with_dynamic_f("%s%s%s-sf-dmg-area", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1385,8 +1385,8 @@ int igt_main()
 				     "plane (no update)");
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1402,8 +1402,8 @@ int igt_main()
 				     "plane partially exceeding visible area (no update)");
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1419,8 +1419,8 @@ int igt_main()
 				     "fully exceeding visible area (no update)");
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1437,8 +1437,8 @@ int igt_main()
 				     "with blended overlay plane");
 			igt_subtest_with_dynamic_f("%s%s%s-sf-dmg-area", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1457,8 +1457,8 @@ int igt_main()
 			igt_describe("Test that selective fetch works on overlay plane");
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
-				for (i = 0; i < n_pipes; i++) {
-					data.pipe = pipes[i];
+				for (i = 0; i < n_crtcs; i++) {
+					data.pipe = crtcs[i]->pipe;
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
-- 
2.52.0


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

* [PATCH i-g-t 12/21] tests/kms_vblank: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (10 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 11/21] tests/intel/kms_psr2_sf: Convert pipes[] to crtcs[] Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 13/21] tests/kms_plane_multiple: " Ville Syrjala
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert kms_vblank from 'enum pipe' to 'igt_crtc_t'.

The data.pipe member gets directly replaced with data.crtc.

Also note that the local 'enum pipe p' in crtc_id_subtest()
needs a bit of extra cleanup.

 #include "scripts/iterators.cocci"

@find_data@
typedef igt_crtc_t;
identifier DISPLAY, PIPE;
type T;
@@
T {
  ...
  igt_display_t DISPLAY;
  ...
-  enum pipe PIPE;
+  igt_crtc_t *crtc;
  ...
};

@depends on find_data@
find_data.T S;
find_data.T *P;
expression E;
@@
(
- S.pipe = E
+ S.crtc = igt_crtc_for_pipe(&S.display, E)
|
- P->pipe = E
+ P->crtc = igt_crtc_for_pipe(&P->display, E)
|
- igt_crtc_for_pipe(..., S.pipe)
+ S.crtc
|
- igt_crtc_for_pipe(..., P->pipe)
+ P->crtc
|
- kmstest_pipe_name(S.pipe)
+ igt_crtc_name(S.crtc)
|
- kmstest_pipe_name(P->pipe)
+ igt_crtc_name(P->crtc)
)

@depends on find_data@
find_data.T S;
find_data.T *P;
@@
(
- S.pipe
+ S.crtc->pipe
|
- P->pipe
+ P->crtc->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

@depends on find_data@
find_data.T S;
find_data.T *P;
@@
(
- igt_crtc_for_pipe(..., S.crtc->pipe)
+ S.crtc
|
- igt_crtc_for_pipe(..., P->crtc->pipe)
+ P->crtc
)

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

@clean_pipe@
identifier PIPE;
expression CRTC;
@@
- enum pipe PIPE = CRTC->pipe;
<+...
(
- igt_crtc_for_pipe(..., PIPE)
+ CRTC
|
- PIPE
+ CRTC->pipe
)
...+>

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

diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
index add8b7ec3cbf..970eb4d9a6a7 100644
--- a/tests/kms_vblank.c
+++ b/tests/kms_vblank.c
@@ -97,7 +97,7 @@ typedef struct {
 	igt_display_t display;
 	struct igt_fb primary_fb;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	unsigned int flags;
 #define IDLE	0x1
 #define BUSY	0x2
@@ -130,7 +130,7 @@ static void prepare_crtc(data_t *data, int fd, igt_output_t *output)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	/* create and set the primary plane fb */
 	mode = igt_output_get_mode(output);
@@ -144,7 +144,7 @@ static void prepare_crtc(data_t *data, int fd, igt_output_t *output)
 
 	igt_display_commit(display);
 
-	igt_wait_for_vblank(igt_crtc_for_pipe(display, data->pipe));
+	igt_wait_for_vblank(data->crtc);
 }
 
 static void cleanup_crtc(data_t *data, int fd, igt_output_t *output)
@@ -192,7 +192,7 @@ static void run_test(data_t *data, void (*testfunc)(data_t *, int, int))
 		memset(&vbl, 0, sizeof(vbl));
 		vbl.request.type =
 			DRM_VBLANK_RELATIVE | DRM_VBLANK_EVENT;
-		vbl.request.type |= kmstest_get_vbl_flag(data->pipe);
+		vbl.request.type |= kmstest_get_vbl_flag(data->crtc->pipe);
 		vbl.request.sequence = 120 + 12;
 		igt_assert_eq(wait_vblank(fd, &vbl), 0);
 	}
@@ -225,14 +225,14 @@ static void run_test(data_t *data, void (*testfunc)(data_t *, int, int))
 }
 
 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);
@@ -243,15 +243,14 @@ pipe_output_combo_valid(igt_display_t *display,
 static void crtc_id_subtest(data_t *data, int fd)
 {
 	igt_display_t *display = &data->display;
-	enum pipe p = data->pipe;
 	igt_output_t *output = data->output;
 	struct drm_event_vblank buf;
-	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(p);
+	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(data->crtc->pipe);
 	unsigned crtc_id, expected_crtc_id;
 	uint64_t val;
 	union drm_wait_vblank vbl;
 
-	crtc_id = igt_crtc_for_pipe(display, p)->crtc_id;
+	crtc_id = data->crtc->crtc_id;
 	if (drmGetCap(display->drm_fd, DRM_CAP_CRTC_IN_VBLANK_EVENT, &val) == 0)
 		expected_crtc_id = crtc_id;
 	else
@@ -291,7 +290,7 @@ static void crtc_id_subtest(data_t *data, int fd)
 
 static void accuracy(data_t *data, int fd, int nchildren)
 {
-	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(data->pipe);
+	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(data->crtc->pipe);
 	union drm_wait_vblank vbl;
 	unsigned long target;
 	int total = 120 / nchildren;
@@ -330,7 +329,7 @@ static void accuracy(data_t *data, int fd, int nchildren)
 
 static void vblank_query(data_t *data, int fd, int nchildren)
 {
-	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(data->pipe);
+	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(data->crtc->pipe);
 	union drm_wait_vblank vbl;
 	struct timespec start, end;
 	unsigned long sq, count = 0;
@@ -359,7 +358,7 @@ static void vblank_query(data_t *data, int fd, int nchildren)
 
 static void vblank_wait(data_t *data, int fd, int nchildren)
 {
-	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(data->pipe);
+	const uint32_t pipe_id_flag = kmstest_get_vbl_flag(data->crtc->pipe);
 	union drm_wait_vblank vbl;
 	struct timespec start, end;
 	unsigned long sq, count = 0;
@@ -388,12 +387,12 @@ static void vblank_wait(data_t *data, int fd, int nchildren)
 		 elapsed(&start, &end, count));
 }
 
-static int get_vblank(int fd, enum pipe pipe, unsigned flags)
+static int get_vblank(int fd, igt_crtc_t *crtc, unsigned flags)
 {
 	union drm_wait_vblank vbl;
 
 	memset(&vbl, 0, sizeof(vbl));
-	vbl.request.type = DRM_VBLANK_RELATIVE | kmstest_get_vbl_flag(pipe) | flags;
+	vbl.request.type = DRM_VBLANK_RELATIVE | kmstest_get_vbl_flag(crtc->pipe) | flags;
 	do_or_die(igt_ioctl(fd, DRM_IOCTL_WAIT_VBLANK, &vbl));
 
 	return vbl.reply.sequence;
@@ -412,7 +411,7 @@ static void vblank_ts_cont(data_t *data, int fd, int nchildren)
 	int vrefresh = igt_output_get_mode(output)->vrefresh;
 	double time_elapsed;
 
-	seq1 = get_vblank(fd, data->pipe, 0);
+	seq1 = get_vblank(fd, data->crtc, 0);
 	clock_gettime(CLOCK_MONOTONIC, &start);
 
 	if (data->flags & DPMS) {
@@ -436,7 +435,7 @@ static void vblank_ts_cont(data_t *data, int fd, int nchildren)
 		/* Attempting to do a vblank while disabled should return -EINVAL */
 		memset(&vbl, 0, sizeof(vbl));
 		vbl.request.type = _DRM_VBLANK_RELATIVE;
-		vbl.request.type |= kmstest_get_vbl_flag(data->pipe);
+		vbl.request.type |= kmstest_get_vbl_flag(data->crtc->pipe);
 		igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);
 	}
 
@@ -447,11 +446,11 @@ static void vblank_ts_cont(data_t *data, int fd, int nchildren)
 
 	if (data->flags & MODESET) {
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, data->pipe));
+				    data->crtc);
 		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 	}
 
-	seq2 = get_vblank(fd, data->pipe, 0);
+	seq2 = get_vblank(fd, data->crtc, 0);
 	clock_gettime(CLOCK_MONOTONIC, &end);
 
 	time_elapsed = igt_time_elapsed(&start, &end);
@@ -519,8 +518,8 @@ static void run_subtests(data_t *data)
 				for_each_crtc_with_valid_output(&data->display,
 								crtc,
 								data->output) {
-					data->pipe = crtc->pipe;
-					if (!pipe_output_combo_valid(&data->display, crtc->pipe, data->output))
+					data->crtc = crtc;
+					if (!pipe_output_combo_valid(&data->display, crtc, data->output))
 						continue;
 
 					if (!all_pipes && crtc->pipe != active_pipes[0] &&
@@ -551,8 +550,8 @@ static void run_subtests(data_t *data)
 				for_each_crtc_with_valid_output(&data->display,
 								crtc,
 								data->output) {
-					data->pipe = crtc->pipe;
-					if (!pipe_output_combo_valid(&data->display, crtc->pipe, data->output))
+					data->crtc = crtc;
+					if (!pipe_output_combo_valid(&data->display, crtc, data->output))
 						continue;
 
 					if (!all_pipes && crtc->pipe != active_pipes[0] &&
@@ -650,7 +649,7 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 
 		/* Get active pipes. */
 		for_each_crtc(&data.display, crtc) {
-			data.pipe = crtc->pipe;
+			data.crtc = crtc;
 			active_pipes[last_pipe++] = crtc->pipe;
 		}
 		last_pipe--;
@@ -660,8 +659,8 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_subtest_with_dynamic("invalid") {
 		for_each_crtc_with_valid_output(&data.display, crtc,
 						data.output) {
-			data.pipe = crtc->pipe;
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, data.output))
+			data.crtc = crtc;
+			if (!pipe_output_combo_valid(&data.display, crtc, data.output))
 				continue;
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
@@ -676,8 +675,8 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	igt_subtest_with_dynamic("crtc-id") {
 		for_each_crtc_with_valid_output(&data.display, crtc,
 						data.output) {
-			data.pipe = crtc->pipe;
-			if (!pipe_output_combo_valid(&data.display, crtc->pipe, data.output))
+			data.crtc = crtc;
+			if (!pipe_output_combo_valid(&data.display, crtc, data.output))
 				continue;
 
 			if (!all_pipes && crtc->pipe != active_pipes[0] &&
-- 
2.52.0


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

* [PATCH i-g-t 13/21] tests/kms_plane_multiple: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (11 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 12/21] tests/kms_vblank: Use igt_crtc_t instead of enum pipe Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 14/21] tests/kms_tiled_display: " Ville Syrjala
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert kms_plane_multiple from 'enum pipe' to 'igt_crtc_t'.

The use of multiple crtcs in some places causes some extra
complications here.

 #include "scripts/iterators.cocci"

@multi_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 multi_func@
identifier multi_func.FUNC;
expression PIPE1, PIPE2;
expression list[multi_func.N] EP;
expression list[multi_func.N2] EP2;
@@
 FUNC(EP
-	,PIPE1
+	,igt_crtc_for_pipe(display, PIPE1)
	,EP2
-	,PIPE2
+	,igt_crtc_for_pipe(display, PIPE2)
	,...)

@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/kms_plane_multiple.c | 88 ++++++++++++++++++++++----------------
 1 file changed, 52 insertions(+), 36 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 105ea50d464e..1a7b319cdcb5 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -105,10 +105,9 @@ 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, igt_crtc_t *crtc, int n_planes)
 {
-	igt_display_t *display = &data->display;
-	data->pipe_crc1 = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe),
+	data->pipe_crc1 = igt_crtc_crc_new(crtc,
 					   IGT_PIPE_CRC_SOURCE_AUTO);
 
 	data->plane1 = calloc(n_planes, sizeof(*data->plane1));
@@ -136,16 +135,17 @@ static void test_fini(data_t *data, igt_output_t *output, int n_planes)
 }
 
 static void
-get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe, igt_pipe_crc_t *pipe_crc,
-	      color_t *color, igt_plane_t **plane, uint64_t modifier, igt_crc_t *ref_crc)
+get_reference_crc(data_t *data, igt_output_t *output, igt_crtc_t *crtc,
+		  igt_pipe_crc_t *pipe_crc,
+		  color_t *color, igt_plane_t **plane, uint64_t modifier,
+		  igt_crc_t *ref_crc)
 {
-	igt_display_t *display = &data->display;
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
 	int ret;
 
 	igt_display_reset(&data->display);
-	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[primary->index] = primary;
@@ -202,11 +202,10 @@ create_fb_for_mode_position(data_t *data, igt_output_t *output, drmModeModeInfo
 
 
 static void
-prepare_planes(data_t *data, enum pipe pipe_id, color_t *color, igt_plane_t **plane,
+prepare_planes(data_t *data, igt_crtc_t *crtc, color_t *color,
+	       igt_plane_t **plane,
 	       uint64_t modifier, int max_planes, igt_output_t *output, igt_fb_t *fb)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe_id);
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
 	int *x;
@@ -325,7 +324,7 @@ prepare_planes(data_t *data, enum pipe pipe_id, color_t *color, igt_plane_t **pl
  */
 
 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,
 				igt_output_t *output, int n_planes,
 				uint64_t modifier)
 {
@@ -339,7 +338,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 	char info[256];
 
 	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));
 
 	if (opt.iterations == LOOP_FOREVER) {
 		loop_forever = true;
@@ -350,18 +349,21 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 			iterations, iterations > 1 ? "iterations" : "iteration");
 	}
 
-	test_init(data, pipe, n_planes);
+	test_init(data, crtc, n_planes);
 
-	get_reference_crc(data, output, pipe, data->pipe_crc1, &blue,
+	get_reference_crc(data, output,
+			  crtc,
+			  data->pipe_crc1, &blue,
 			  data->plane1, modifier, &data->ref_crc1);
 
 	/* Find out how many planes are allowed simultaneously */
 	do {
 		c++;
-		prepare_planes(data, pipe, &blue, data->plane1, modifier, c, output, data->fb1);
+		prepare_planes(data, crtc, &blue,
+			       data->plane1, modifier, c, output, data->fb1);
 		err = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
 
-		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_output_set_crtc(output, NULL);
@@ -375,14 +377,15 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 		c--;
 
 	igt_info("Testing connector %s using pipe %s with %d planes %s with seed %d\n",
-		 igt_output_name(output), kmstest_pipe_name(pipe), c,
+		 igt_output_name(output), igt_crtc_name(crtc), c,
 		 info, opt.seed);
 
 	i = 0;
 	while (i < iterations || loop_forever) {
 
 		/* randomize planes and set up the holes */
-		prepare_planes(data, pipe, &blue, data->plane1, modifier, c, output, data->fb1);
+		prepare_planes(data, crtc, &blue,
+			       data->plane1, modifier, c, output, data->fb1);
 
 		igt_display_commit2(&data->display, COMMIT_ATOMIC);
 		igt_pipe_crc_start(data->pipe_crc1);
@@ -391,7 +394,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 		igt_assert_crc_equal(&data->ref_crc1, &crc);
 		igt_pipe_crc_stop(data->pipe_crc1);
 
-		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_output_set_crtc(output, NULL);
@@ -407,27 +410,29 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 }
 
 static void
-test_plane_position(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t modifier)
+test_plane_position(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+		    uint64_t modifier)
 {
-	igt_display_t *display = &data->display;
 	int n_planes = opt.all_planes ?
-			igt_crtc_for_pipe(display, pipe)->n_planes : DEFAULT_N_PLANES;
+			crtc->n_planes : DEFAULT_N_PLANES;
 
 	if (!opt.user_seed)
 		opt.seed = time(NULL);
 
 	srand(opt.seed);
 
-	test_plane_position_with_output(data, pipe, output,
+	test_plane_position_with_output(data,
+					crtc,
+					output,
 					n_planes, modifier);
 }
 
-static void test_init_2_display(data_t *data, enum pipe pipe1, enum pipe pipe2, int n_planes)
+static void test_init_2_display(data_t *data, igt_crtc_t *crtc1,
+				igt_crtc_t *crtc2, int n_planes)
 {
-	igt_display_t *display = &data->display;
-	data->pipe_crc1 = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe1),
+	data->pipe_crc1 = igt_crtc_crc_new(crtc1,
 					   IGT_PIPE_CRC_SOURCE_AUTO);
-	data->pipe_crc2 = igt_crtc_crc_new(igt_crtc_for_pipe(display, pipe2),
+	data->pipe_crc2 = igt_crtc_crc_new(crtc2,
 					   IGT_PIPE_CRC_SOURCE_AUTO);
 
 	data->plane1 = calloc(n_planes, sizeof(*data->plane1));
@@ -466,7 +471,8 @@ static void test_fini_2_display(data_t *data)
 	igt_display_reset(&data->display);
 }
 
-static void test_plane_position_2_display(data_t *data, enum pipe pipe1, enum pipe pipe2,
+static void test_plane_position_2_display(data_t *data, igt_crtc_t *crtc1,
+					  igt_crtc_t *crtc2,
 					  igt_output_t *output1, igt_output_t *output2,
 					  uint64_t modifier)
 {
@@ -483,15 +489,22 @@ static void test_plane_position_2_display(data_t *data, enum pipe pipe1, enum pi
 	 * default value. This might need to be tweaked if we see any bw related failures.
 	 */
 
-	test_init_2_display(data, pipe1, pipe2, n_planes);
-	get_reference_crc(data, output1, pipe1, data->pipe_crc1, &blue,
+	test_init_2_display(data, crtc1,
+			    crtc2, n_planes);
+	get_reference_crc(data, output1,
+			  crtc1,
+			  data->pipe_crc1, &blue,
 			  data->plane1, DRM_FORMAT_MOD_LINEAR, &data->ref_crc1);
-	get_reference_crc(data, output2, pipe2, data->pipe_crc2, &blue,
+	get_reference_crc(data, output2,
+			  crtc2,
+			  data->pipe_crc2, &blue,
 			  data->plane2, DRM_FORMAT_MOD_LINEAR, &data->ref_crc2);
 
-	prepare_planes(data, pipe1, &blue, data->plane1,
+	prepare_planes(data, crtc1, &blue,
+		       data->plane1,
 		       modifier, 2, output1, data->fb1);
-	prepare_planes(data, pipe2, &blue, data->plane2,
+	prepare_planes(data, crtc2, &blue,
+		       data->plane2,
 		       modifier, 2, output2, data->fb2);
 
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
@@ -554,8 +567,9 @@ static void run_2_display_test(data_t *data, uint64_t modifier, const char *name
 						       igt_crtc_name(crtc2),
 						       output2->name)
 						test_plane_position_2_display(data,
-									      crtc->pipe,
-									      crtc2->pipe,
+									      crtc
+									      ,
+									      crtc2,
 									      output1, output2,
 									      modifier);
 
@@ -584,7 +598,9 @@ static void run_test(data_t *data, uint64_t modifier, const char *name)
 			continue;
 
 		igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), output->name)
-			test_plane_position(data, crtc->pipe, output,
+			test_plane_position(data,
+					    crtc,
+					    output,
 					    modifier);
 	}
 }
-- 
2.52.0


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

* [PATCH i-g-t 14/21] tests/kms_tiled_display: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (12 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 13/21] tests/kms_plane_multiple: " Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 15/21] tests/intel/kms_psr: " Ville Syrjala
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert kms_tiled_display from 'enum pipe' to 'igt_crtc_t'.

The data.pipe member gets directly replaced with data.crtc.

 #include "scripts/iterators.cocci"

@find_data@
typedef igt_crtc_t;
typedef igt_display_t;
identifier PIPE;
type T;
@@
T {
  ...
- enum pipe PIPE;
+ igt_crtc_t *crtc;
  ...
};

@depends on find_data@
identifier find_data.PIPE;
identifier DISPLAY;
find_data.T S;
find_data.T *P;
expression _PIPE;
@@
igt_display_t *DISPLAY = ...;
<...
(
- S.PIPE = _PIPE;
+ S.crtc = igt_crtc_for_pipe(display, _PIPE);
|
- P->PIPE = _PIPE;
+ P->crtc = igt_crtc_for_pipe(display, _PIPE);
)
...>

@depends on find_data@
identifier find_data.PIPE;
identifier DISPLAY;
find_data.T S;
find_data.T *P;
expression E;
@@
igt_display_t *DISPLAY = ...;
<...
(
- S.PIPE = E
+ S.crtc = igt_crtc_for_pipe(DISPLAY, E)
|
- P->PIPE = E
+ P->crtc = igt_crtc_for_pipe(DISPLAY, E)
)
...>

@depends on find_data@
identifier find_data.PIPE;
find_data.T S;
find_data.T *P;
expression E;
@@
(
- igt_crtc_for_pipe(..., S.PIPE)
+ S.crtc
|
- igt_crtc_for_pipe(..., P->PIPE)
+ P->crtc
|
- kmstest_pipe_name(S.PIPE)
+ igt_crtc_name(S.crtc)
|
- kmstest_pipe_name(P->PIPE)
+ igt_crtc_name(P->crtc)
)

@depends on find_data@
find_data.T S;
find_data.T *P;
@@
(
- S.crtc = S.crtc;
|
- P->crtc = P->crtc;
)

@depends on find_data@
identifier find_data.PIPE;
find_data.T S;
find_data.T *P;
@@
(
- S.PIPE
+ S.crtc->pipe
|
- P->PIPE
+ P->crtc->pipe
)

@depends on find_data@
find_data.T S;
find_data.T *P;
binary operator OP = { ==, != };
@@
(
- S.crtc->pipe OP PIPE_NONE
+ S.crtc OP NULL
|
- P->crtc->pipe OP PIPE_NONE
+ P->crtc OP NULL
)

@@
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_tiled_display.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
index f587704eebe1..374ea0bf6a85 100644
--- a/tests/kms_tiled_display.c
+++ b/tests/kms_tiled_display.c
@@ -65,7 +65,7 @@ IGT_TEST_DESCRIPTION("Test for genlocked CRTCs with tiled displays");
 typedef struct {
 	igt_output_t *output;
 	igt_tile_info_t tile;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	drmModeConnectorPtr connector;
 	bool got_page_flip;
 } data_connector_t;
@@ -213,7 +213,6 @@ static int mode_linetime_us(const drmModeModeInfo *mode)
 
 static void setup_mode(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	int count = 0, prev = 0, i = 0;
 	bool pipe_in_use = false, found = false;
 	igt_crtc_t *crtc;
@@ -238,7 +237,7 @@ static void setup_mode(data_t *data)
 
 			if (count > 0) {
 				for (prev = count - 1; prev >= 0; prev--) {
-					if (crtc->pipe == conns[prev].pipe) {
+					if (crtc->pipe == conns[prev].crtc->pipe) {
 						pipe_in_use = true;
 						break;
 					}
@@ -248,15 +247,15 @@ static void setup_mode(data_t *data)
 			}
 
 			if (igt_pipe_connector_valid(crtc->pipe, output)) {
-				conns[count].pipe = crtc->pipe;
+				conns[count].crtc = crtc;
 				conns[count].output = output;
 
 				igt_output_set_crtc(conns[count].output,
-						    igt_crtc_for_pipe(display, conns[count].pipe));
+						    conns[count].crtc);
 				break;
 			}
 		}
-		igt_require(conns[count].pipe != PIPE_NONE);
+		igt_require(conns[count].crtc != NULL);
 
 		for (i = 0; i < conns[count].connector->count_modes; i++) {
 			mode = &conns[count].connector->modes[i];
@@ -326,11 +325,10 @@ static void setup_framebuffer(data_t *data)
 
 static data_connector_t *conn_for_crtc(data_t *data, unsigned int crtc_id)
 {
-	igt_display_t *display = &data->display;
 	for (int i = 0; i < data->num_h_tiles; i++) {
 		data_connector_t *conn = &data->conns[i];
 
-		if (igt_crtc_for_pipe(display, conn->pipe)->crtc_id == crtc_id)
+		if (conn->crtc->crtc_id == crtc_id)
 			return conn;
 	}
 
-- 
2.52.0


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

* [PATCH i-g-t 15/21] tests/intel/kms_psr: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (13 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 14/21] tests/kms_tiled_display: " Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 16/21] tests/kms_prime: " Ville Syrjala
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert most of kms_psr to use igt_crtc_t instead of
enum pipe.

The entire thing is about changing the return type of
get_pipe_for_output().

Note that there is still one 'enum pipe pipe' variable left
in kms_psr, and it's yet another buggy piece of code
where the uninitialized 'pipe' is passed to some function
(intel_fbc_supported_on_chipset() in this case). Fixing
that probably needs some actual thought...

 #include "scripts/iterators.cocci"

@ret_pipe@
typedef igt_output_t;
typedef igt_crtc_t;
identifier FUNC;
igt_crtc_t *CRTC;
parameter list[N] P;
@@
- enum pipe
+ igt_crtc_t *
FUNC(P)
{
<...
- return CRTC->pipe;
+ return CRTC;
...>
}

@depends on ret_pipe@
identifier ret_pipe.FUNC;
@@
- enum pipe
+ igt_crtc_t *
FUNC(...);

@depends on ret_pipe@
identifier ret_pipe.FUNC;
@@
FUNC(...)
+ ->pipe

@depends on ret_pipe@
identifier ret_pipe.FUNC, PIPE;
expression list[ret_pipe.N] EP;
@@
{ ...
  enum pipe PIPE;
+ igt_crtc_t *crtc;
<+... when != PIPE = ...
- PIPE = FUNC(EP)->pipe;
+ crtc = FUNC(EP);
+ PIPE = crtc->pipe;
...+>
}

@depends on ret_pipe@
identifier ret_pipe.FUNC;
expression list[ret_pipe.N] EP;
@@
- igt_crtc_for_pipe(..., FUNC(EP)->pipe)
+ FUNC(EP)

@@
identifier PIPE;
igt_crtc_t *CRTC;
@@
{...
- PIPE = CRTC->pipe;
<+... when != PIPE = ...
- PIPE
+ CRTC->pipe
...+>
}

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

@@
identifier PIPE;
@@
{...
- enum pipe PIPE;
... when != PIPE
}

@@
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_psr.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tests/intel/kms_psr.c b/tests/intel/kms_psr.c
index c411981c0104..3bdc8a1e6b66 100644
--- a/tests/intel/kms_psr.c
+++ b/tests/intel/kms_psr.c
@@ -691,7 +691,7 @@ static void setup_test_plane(data_t *data, int test_plane)
 	igt_display_commit(&data->display);
 }
 
-static enum pipe get_pipe_for_output(igt_display_t *display,
+static igt_crtc_t * get_pipe_for_output(igt_display_t *display,
 				     igt_output_t *output)
 {
 	igt_crtc_t *crtc;
@@ -705,7 +705,7 @@ static enum pipe get_pipe_for_output(igt_display_t *display,
 			continue;
 		}
 
-		return crtc->pipe;
+		return crtc;
 	}
 
 	igt_assert_f(false, "No pipe found for output %s\n",
@@ -714,7 +714,7 @@ static enum pipe get_pipe_for_output(igt_display_t *display,
 
 static void test_setup(data_t *data)
 {
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	drmModeConnectorPtr connector;
 	bool psr_entered = false;
 
@@ -729,7 +729,7 @@ static void test_setup(data_t *data)
 		igt_require_f(data->fbc_flag,
 			      "Can't test FBC with PSR\n");
 
-	pipe = get_pipe_for_output(&data->display, data->output);
+	crtc = get_pipe_for_output(&data->display, data->output);
 	data->crtc_id = data->output->config.crtc->crtc_id;
 	connector = data->output->config.connector;
 
@@ -750,7 +750,7 @@ static void test_setup(data_t *data)
 		if (psr_wait_entry_if_enabled(data)) {
 			if (data->fbc_flag == true && data->op_fbc_mode == FBC_ENABLED)
 				igt_assert_f(intel_fbc_wait_until_enabled(data->drm_fd,
-									  pipe),
+									  crtc->pipe),
 									  "FBC still disabled\n");
 			psr_entered = true;
 			break;
-- 
2.52.0


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

* [PATCH i-g-t 16/21] tests/kms_prime: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (14 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 15/21] tests/intel/kms_psr: " Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 17/21] tests/chamelium: " Ville Syrjala
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert kms_prime to use igt_crtc_t instead of enum pioe .

The complication here is that setup_display() returns
the pipe/crtc via a pointer passed as a function argument.

 #include "scripts/iterators.cocci"

@ret_pipe@
typedef igt_output_t;
typedef igt_crtc_t;
identifier FUNC, PIPE;
expression CRTC;
parameter list[N] P;
@@
FUNC(P
- ,enum pipe *PIPE
+ ,igt_crtc_t **ret_crtc
   ,...)
{
<...
- *PIPE = CRTC->pipe;
+ *ret_crtc = CRTC;
...>
}

@depends on ret_pipe@
identifier ret_pipe.FUNC, PIPE;
expression list[ret_pipe.N] EP;
expression E;
@@
  enum pipe PIPE;
+ igt_crtc_t *crtc;
...
FUNC(EP,
- &PIPE
+ &crtc
  ,...)
<...
- PIPE
+ crtc->pipe
...>

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

@@
identifier PIPE;
@@
{...
- enum pipe PIPE;
... when != PIPE
}

@@
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_prime.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tests/kms_prime.c b/tests/kms_prime.c
index 7b13e9f538e1..bb85b2e2e0da 100644
--- a/tests/kms_prime.c
+++ b/tests/kms_prime.c
@@ -116,14 +116,14 @@ static bool has_prime_export(int fd)
 }
 
 static igt_output_t *setup_display(int importer_fd, igt_display_t *display,
-				   enum pipe *pipe)
+				   igt_crtc_t **ret_crtc)
 {
 	igt_crtc_t *crtc;
 	igt_output_t *output;
 	bool found = false;
 
 	for_each_crtc_with_valid_output(display, crtc, output) {
-		*pipe = crtc->pipe;
+		*ret_crtc = crtc;
 		igt_display_reset(display);
 
 		igt_output_set_crtc(output,
@@ -388,7 +388,7 @@ static void test_crc(int exporter_fd, int importer_fd)
 	igt_display_t display;
 	igt_output_t *output;
 	igt_pipe_crc_t *pipe_crc;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	struct igt_fb fb;
 	int dmabuf_fd;
 	struct dumb_bo scratch = {};
@@ -400,10 +400,10 @@ static void test_crc(int exporter_fd, int importer_fd)
 	igt_require_pipe_crc(importer_fd);
 	igt_display_require(&display, importer_fd);
 
-	output = setup_display(importer_fd, &display, &pipe);
+	output = setup_display(importer_fd, &display, &crtc);
 
 	mode = igt_output_get_mode(output);
-	pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(&display, pipe),
+	pipe_crc = igt_crtc_crc_new(crtc,
 				    IGT_PIPE_CRC_SOURCE_AUTO);
 
 	for (i = 0; i < ARRAY_SIZE(colors); i++) {
@@ -458,7 +458,7 @@ static void test_basic_modeset(int drm_fd)
 {
 	igt_display_t display;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	drmModeModeInfo *mode;
 	struct igt_fb fb;
 	uint32_t bo;
@@ -468,7 +468,7 @@ static void test_basic_modeset(int drm_fd)
 	igt_device_set_master(drm_fd);
 	igt_display_require(&display, drm_fd);
 
-	output = setup_display(drm_fd, &display, &pipe);
+	output = setup_display(drm_fd, &display, &crtc);
 	mode = igt_output_get_mode(output);
 	igt_assert(mode);
 
-- 
2.52.0


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

* [PATCH i-g-t 17/21] tests/chamelium: Use igt_crtc_t instead of enum pipe
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (15 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 16/21] tests/kms_prime: " Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 18/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 1 Ville Syrjala
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert the remaining chamelium tests to use igt_crtc_t
instead of enum pipe. Here we specifically deal with changing
the return type of chamelium_get_pipe_for_output().

The mess inside test_hotplug() proved difficult for cocci,
so there is some special sauce for that in the semantic
patch.

 #include "scripts/iterators.cocci"

@ret_pipe@
typedef igt_output_t;
typedef igt_crtc_t;
identifier FUNC;
igt_crtc_t *CRTC;
parameter list[N] P;
@@
- enum pipe
+ igt_crtc_t *
FUNC(P)
{
<...
- return CRTC->pipe;
+ return CRTC;
...>
}

@depends on ret_pipe@
identifier ret_pipe.FUNC;
@@
- enum pipe
+ igt_crtc_t *
FUNC(...);

@depends on ret_pipe@
identifier ret_pipe.FUNC;
@@
FUNC(...)
+ ->pipe

@depends on ret_pipe@
identifier ret_pipe.FUNC, PIPE;
expression list[ret_pipe.N] EP;
@@
{ ...
  enum pipe PIPE;
+ igt_crtc_t *crtc;
<+... when != PIPE = ...
- PIPE = FUNC(EP)->pipe;
+ crtc = FUNC(EP);
+ PIPE = crtc->pipe;
...+>
}

@depends on ret_pipe@
identifier ret_pipe.FUNC;
expression list[ret_pipe.N] EP;
@@
- igt_crtc_for_pipe(..., FUNC(EP)->pipe)
+ FUNC(EP)

@@
identifier PIPE;
igt_crtc_t *CRTC;
@@
{...
if (...) {
...
- PIPE = CRTC->pipe;
...
}
<+... when != PIPE = ...
- PIPE
+ CRTC->pipe
...+>
}

@@
identifier PIPE;
igt_crtc_t *CRTC;
@@
{...
- PIPE = CRTC->pipe;
<+... when != PIPE = ...
- PIPE
+ CRTC->pipe
...+>
}

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

@@
identifier PIPE;
@@
{...
- enum pipe PIPE;
... when != PIPE
}

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

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/chamelium/kms_chamelium_edid.c   | 13 +++++++------
 tests/chamelium/kms_chamelium_helper.c | 10 +++++-----
 tests/chamelium/kms_chamelium_helper.h |  2 +-
 tests/chamelium/kms_chamelium_hpd.c    |  8 ++++----
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/tests/chamelium/kms_chamelium_edid.c b/tests/chamelium/kms_chamelium_edid.c
index f5647dde0d9d..e014ba3aa873 100644
--- a/tests/chamelium/kms_chamelium_edid.c
+++ b/tests/chamelium/kms_chamelium_edid.c
@@ -287,7 +287,7 @@ static void edid_stress_resolution(chamelium_data_t *data,
 		drmModeModeInfo mode;
 		struct igt_fb fb = { 0 };
 		igt_output_t *output;
-		enum pipe pipe;
+		igt_crtc_t *crtc;
 		bool is_video_stable;
 		int screen_res_w, screen_res_h;
 
@@ -311,9 +311,9 @@ static void edid_stress_resolution(chamelium_data_t *data,
 		mode = chamelium_get_mode_for_port(chamelium, port);
 		chamelium_create_fb_for_mode(data, &fb, &mode);
 		output = chamelium_get_output_for_port(data, port);
-		pipe = chamelium_get_pipe_for_output(&data->display, output);
+		crtc = chamelium_get_pipe_for_output(&data->display, output);
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(output->display, pipe));
+				    crtc);
 		chamelium_enable_output(data, port, output, &mode, &fb);
 
 		/* Capture the screen resolution and verify. */
@@ -350,7 +350,7 @@ static void edid_resolution_list(chamelium_data_t *data,
 	int count_modes;
 	int i;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 
 	chamelium_unplug(chamelium, port);
 	chamelium_set_edid(data, port, IGT_CUSTOM_EDID_FULL);
@@ -366,8 +366,9 @@ static void edid_resolution_list(chamelium_data_t *data,
 	count_modes = connector->count_modes;
 
 	output = chamelium_get_output_for_port(data, port);
-	pipe = chamelium_get_pipe_for_output(&data->display, output);
-	igt_output_set_crtc(output, igt_crtc_for_pipe(output->display, pipe));
+	crtc = chamelium_get_pipe_for_output(&data->display, output);
+	igt_output_set_crtc(output,
+			    crtc);
 
 	for (i = 0; i < count_modes; ++i)
 		igt_debug("#%d %s %uHz\n", i, modes[i].name, modes[i].vrefresh);
diff --git a/tests/chamelium/kms_chamelium_helper.c b/tests/chamelium/kms_chamelium_helper.c
index c15a3096c5fe..ea30ff42d9a9 100644
--- a/tests/chamelium/kms_chamelium_helper.c
+++ b/tests/chamelium/kms_chamelium_helper.c
@@ -133,7 +133,7 @@ igt_output_t *chamelium_prepare_output(chamelium_data_t *data,
 {
 	igt_display_t *display = &data->display;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 
 	/* The chamelium's default EDID has a lot of resolutions, way more then
 	 * we need to test. Additionally the default EDID doesn't support HDMI
@@ -152,8 +152,8 @@ igt_output_t *chamelium_prepare_output(chamelium_data_t *data,
 	/* Refresh pipe to update connected status */
 	igt_output_set_crtc(output, NULL);
 
-	pipe = chamelium_get_pipe_for_output(display, output);
-	igt_output_set_crtc(output, igt_crtc_for_pipe(display, pipe));
+	crtc = chamelium_get_pipe_for_output(display, output);
+	igt_output_set_crtc(output, crtc);
 
 	return output;
 }
@@ -201,7 +201,7 @@ void chamelium_enable_output(chamelium_data_t *data,
 }
 
 /* Return pipe attached to @outpu.t */
-enum pipe chamelium_get_pipe_for_output(igt_display_t *display,
+igt_crtc_t * chamelium_get_pipe_for_output(igt_display_t *display,
 					igt_output_t *output)
 {
 	igt_crtc_t *crtc;
@@ -216,7 +216,7 @@ enum pipe chamelium_get_pipe_for_output(igt_display_t *display,
 		}
 
 		igt_output_set_crtc(output, NULL);
-		return crtc->pipe;
+		return crtc;
 	}
 
 	igt_assert_f(false, "No pipe found for output %s\n",
diff --git a/tests/chamelium/kms_chamelium_helper.h b/tests/chamelium/kms_chamelium_helper.h
index 7941ca9d3139..6060796661c4 100644
--- a/tests/chamelium/kms_chamelium_helper.h
+++ b/tests/chamelium/kms_chamelium_helper.h
@@ -97,7 +97,7 @@ igt_output_t *chamelium_prepare_output(chamelium_data_t *data,
 void chamelium_enable_output(chamelium_data_t *data,
 			     struct chamelium_port *port, igt_output_t *output,
 			     drmModeModeInfo *mode, struct igt_fb *fb);
-enum pipe chamelium_get_pipe_for_output(igt_display_t *display,
+igt_crtc_t * chamelium_get_pipe_for_output(igt_display_t *display,
 					igt_output_t *output);
 
 int chamelium_get_pattern_fb(chamelium_data_t *data, size_t width,
diff --git a/tests/chamelium/kms_chamelium_hpd.c b/tests/chamelium/kms_chamelium_hpd.c
index 29028ce6f7da..bd8731c0216b 100644
--- a/tests/chamelium/kms_chamelium_hpd.c
+++ b/tests/chamelium/kms_chamelium_hpd.c
@@ -230,7 +230,7 @@ static void test_hotplug(chamelium_data_t *data, struct chamelium_port *port,
 			 int toggle_count, enum test_modeset_mode modeset_mode)
 {
 	int i;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	struct igt_fb fb = { 0 };
 	drmModeModeInfo mode;
 	struct udev_monitor *mon = igt_watch_uevents();
@@ -259,15 +259,15 @@ static void test_hotplug(chamelium_data_t *data, struct chamelium_port *port,
 				 * connected */
 				output = chamelium_get_output_for_port(data,
 								       port);
-				pipe = chamelium_get_pipe_for_output(
-					&data->display, output);
+				crtc = chamelium_get_pipe_for_output(&data->display,
+								     output);
 				mode = chamelium_get_mode_for_port(
 					data->chamelium, port);
 				chamelium_create_fb_for_mode(data, &fb, &mode);
 			}
 
 			igt_output_set_crtc(output,
-					    igt_crtc_for_pipe(output->display, pipe));
+					    crtc);
 			chamelium_enable_output(data, port, output, &mode, &fb);
 		}
 
-- 
2.52.0


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

* [PATCH i-g-t 18/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 1
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (16 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 17/21] tests/chamelium: " Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 19/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 2 Ville Syrjala
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert several kms tests to use igt_crtc_t instead
of enum pipe. These specific tests already track the
crtc alongside the pipe in their data structure. Remove
the redundant pipe infromation and just rely on the crtc.

 #include "scripts/iterators.cocci"

@@
igt_display_t DISPLAY;
expression _PIPE;
@@
- &DISPLAY.crtcs[_PIPE]
+ igt_crtc_for_pipe(&DISPLAY, _PIPE)

@@
igt_display_t *DISPLAY;
expression _PIPE;
@@
- &DISPLAY->crtcs[_PIPE]
+ igt_crtc_for_pipe(DISPLAY, _PIPE)

@find_data@
typedef igt_crtc_t;
typedef igt_display_t;
identifier DISPLAY, PIPE, CRTC;
type T;
@@
(
T {
  ...
  igt_display_t DISPLAY;
  ...
  igt_crtc_t *CRTC;
  ...
- enum pipe PIPE;
  ...
};
|
T {
  ...
- enum pipe PIPE;
  ...
  igt_display_t DISPLAY;
  ...
  igt_crtc_t *CRTC;
  ...
};
|
T {
  ...
- enum pipe PIPE;
  ...
  igt_crtc_t *CRTC;
  ...
  igt_display_t DISPLAY;
  ...
};
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.CRTC;
identifier find_data.DISPLAY;
find_data.T S;
find_data.T *P;
expression _PIPE;
@@
(
- S.PIPE = _PIPE;
+ S.CRTC = igt_crtc_for_pipe(&S.DISPLAY, _PIPE);
|
- P->PIPE = _PIPE;
+ P->CRTC = igt_crtc_for_pipe(&P->DISPLAY, _PIPE);
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.CRTC;
identifier find_data.DISPLAY;
find_data.T S;
find_data.T *P;
expression E;
@@
(
- S.PIPE = E
+ S.CRTC = igt_crtc_for_pipe(&S.DISPLAY, E)
|
- P->PIPE = E
+ P->CRTC = igt_crtc_for_pipe(&P->DISPLAY, E)
|
- igt_crtc_for_pipe(..., S.PIPE)
+ S.CRTC
|
- igt_crtc_for_pipe(..., P->PIPE)
+ P->CRTC
|
- kmstest_pipe_name(S.PIPE)
+ igt_crtc_name(S.CRTC)
|
- kmstest_pipe_name(P->PIPE)
+ igt_crtc_name(P->CRTC)
)

@depends on find_data@
identifier find_data.CRTC;
find_data.T S;
find_data.T *P;
@@
(
- S.CRTC = S.CRTC;
|
- P->CRTC = P->CRTC;
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.CRTC;
find_data.T S;
find_data.T *P;
@@
(
- S.PIPE
+ S.CRTC->pipe
|
- P->PIPE
+ P->CRTC->pipe
)

@depends on find_data@
identifier find_data.CRTC;
find_data.T S;
find_data.T *P;
binary operator OP = { ==, != };
@@
(
- S.CRTC->pipe OP PIPE_NONE
+ S.CRTC OP NULL
|
- P->CRTC->pipe OP PIPE_NONE
+ P->CRTC OP NULL
)

@@
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_abm.c             | 28 ++++++++++++++++------------
 tests/amdgpu/amd_bypass.c          |  7 +++----
 tests/amdgpu/amd_color.c           |  7 +++----
 tests/amdgpu/amd_cursor_overlay.c  | 14 +++++---------
 tests/amdgpu/amd_ilr.c             |  8 ++------
 tests/amdgpu/amd_link_settings.c   |  8 ++------
 tests/amdgpu/amd_mall.c            |  4 +---
 tests/amdgpu/amd_max_bpc.c         |  6 ++----
 tests/amdgpu/amd_mem_leak.c        |  4 +---
 tests/amdgpu/amd_odm.c             |  4 +---
 tests/amdgpu/amd_psr.c             | 23 +++++++++--------------
 tests/amdgpu/amd_replay.c          |  7 +++----
 tests/intel/kms_sharpness_filter.c | 25 +++++++++++++------------
 tests/kms_hdr.c                    |  4 +---
 tests/kms_plane_cursor.c           | 12 ++++--------
 tools/amd_hdmi_compliance.c        |  4 +---
 16 files changed, 67 insertions(+), 98 deletions(-)

diff --git a/tests/amdgpu/amd_abm.c b/tests/amdgpu/amd_abm.c
index 159f6c7c69e9..ffa73bb46865 100644
--- a/tests/amdgpu/amd_abm.c
+++ b/tests/amdgpu/amd_abm.c
@@ -45,7 +45,6 @@ typedef struct data {
 	igt_crtc_t *crtc;
 	int drm_fd;
 	drmModeModeInfo *mode;
-	enum pipe pipe_id;
 	int w, h;
 	igt_fb_t ref_fb;
 	igt_fb_t ref_fb2;
@@ -130,12 +129,12 @@ static void test_init(data_t *data)
 		igt_skip("No eDP connector found\n");
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
-	data->output = igt_get_single_output_for_pipe(display, data->pipe_id);
+	data->output = igt_get_single_output_for_pipe(display,
+						      data->crtc->pipe);
 	igt_require(data->output);
 	igt_info("output %s\n", data->output->name);
 
@@ -172,7 +171,8 @@ static void test_fini(data_t *data)
 	igt_output_t *output;
 
 	/* Disable ABM before exit test */
-	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
+	for_each_valid_output_on_pipe(&data->display, data->crtc->pipe,
+				      output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 		set_abm_level(data, output, 0);
@@ -251,7 +251,6 @@ static int backlight_write_brightness(int value)
 
 static void set_abm_level(data_t *data, igt_output_t *output, int level)
 {
-	igt_display_t *display = &data->display;
 	char buf[PATH_MAX];
 	int fd;
 
@@ -268,7 +267,7 @@ static void set_abm_level(data_t *data, igt_output_t *output, int level)
 	igt_assert_eq(close(fd), 0);
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe_id));
+			    data->crtc);
 	igt_plane_set_fb(data->primary, &data->ref_fb);
 	igt_display_commit_atomic(&data->display, 0, 0);
 }
@@ -328,7 +327,8 @@ static void backlight_dpms_cycle(data_t *data)
 	int pwm_1, pwm_2;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
+	for_each_valid_output_on_pipe(&data->display, data->crtc->pipe,
+				      output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
@@ -359,7 +359,8 @@ static void backlight_monotonic_basic(data_t *data)
 	int brightness;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
+	for_each_valid_output_on_pipe(&data->display, data->crtc->pipe,
+				      output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 		ret = backlight_read_max_brightness(&max_brightness);
@@ -392,7 +393,8 @@ static void backlight_monotonic_abm(data_t *data)
 	int brightness;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
+	for_each_valid_output_on_pipe(&data->display, data->crtc->pipe,
+				      output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 		ret = backlight_read_max_brightness(&max_brightness);
@@ -424,7 +426,8 @@ static void abm_enabled(data_t *data)
 	int pwm, prev_pwm, pwm_without_abm;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
+	for_each_valid_output_on_pipe(&data->display, data->crtc->pipe,
+				      output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
@@ -457,7 +460,8 @@ static void abm_gradual(data_t *data)
 	int max_brightness;
 	igt_output_t *output;
 
-	for_each_valid_output_on_pipe(&data->display, data->pipe_id, output) {
+	for_each_valid_output_on_pipe(&data->display, data->crtc->pipe,
+				      output) {
 		if (output->config.connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
diff --git a/tests/amdgpu/amd_bypass.c b/tests/amdgpu/amd_bypass.c
index 3a2bab9dcef0..6ff36ce09d3e 100644
--- a/tests/amdgpu/amd_bypass.c
+++ b/tests/amdgpu/amd_bypass.c
@@ -31,7 +31,6 @@ typedef struct {
 	int drm_fd;
 	int width;
 	int height;
-	enum pipe pipe_id;
 	igt_display_t display;
 	igt_plane_t *primary;
 	igt_output_t *output;
@@ -64,12 +63,12 @@ static void test_init(data_t *data)
 	igt_display_t *display = &data->display;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
-	data->output = igt_get_single_output_for_pipe(display, data->pipe_id);
+	data->output = igt_get_single_output_for_pipe(display,
+						      data->crtc->pipe);
 	igt_assert(data->output);
 
 	if (data->output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
diff --git a/tests/amdgpu/amd_color.c b/tests/amdgpu/amd_color.c
index ea928b326c8a..dc2a10817105 100644
--- a/tests/amdgpu/amd_color.c
+++ b/tests/amdgpu/amd_color.c
@@ -45,7 +45,6 @@ typedef struct data {
 	igt_crtc_t *crtc;
 	igt_pipe_crc_t *pipe_crc;
 	drmModeModeInfo *mode;
-	enum pipe pipe_id;
 	int fd;
 	int w;
 	int h;
@@ -179,12 +178,12 @@ static void test_init(data_t *data)
 	igt_display_t *display = &data->display;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
-	data->output = igt_get_single_output_for_pipe(display, data->pipe_id);
+	data->output = igt_get_single_output_for_pipe(display,
+						      data->crtc->pipe);
 	igt_require(data->output);
 
 	data->mode = igt_output_get_mode(data->output);
diff --git a/tests/amdgpu/amd_cursor_overlay.c b/tests/amdgpu/amd_cursor_overlay.c
index 6245045d160a..8d3ef31c936f 100644
--- a/tests/amdgpu/amd_cursor_overlay.c
+++ b/tests/amdgpu/amd_cursor_overlay.c
@@ -77,7 +77,6 @@ typedef struct data {
 	igt_fb_t quarter_fb;
 	igt_fb_t scale_fb;
 	igt_fb_t cfb;
-	enum pipe pipe_id;
 	int drm_fd;
 	int available_overlay_planes;
 	uint64_t max_curw;
@@ -138,9 +137,8 @@ static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output,
 	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe_id);
 	int i;
 
-	data->pipe_id = crtc->pipe;
+	data->crtc = crtc;
 	data->available_overlay_planes = available_overlay_planes;
-	data->crtc = &data->display.crtcs[data->pipe_id];
 	data->output = output;
 	data->mode = igt_output_get_mode(data->output);
 	data->primary = igt_crtc_get_plane_type(data->crtc,
@@ -160,10 +158,10 @@ static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output,
 									  i);
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(data->pipe_id), igt_output_name(data->output));
+		 igt_crtc_name(data->crtc), igt_output_name(data->output));
 
 	igt_require_pipe_crc(data->drm_fd);
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe_id),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 }
 
@@ -202,7 +200,6 @@ static void test_cleanup(data_t *data)
 
 static void test_cursor_pos(data_t *data, int x, int y, unsigned int flags)
 {
-	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc, test_crc;
 	cairo_t *cr;
 	igt_fb_t *rgb_fb = &data->rgb_fb;
@@ -298,7 +295,7 @@ static void test_cursor_pos(data_t *data, int x, int y, unsigned int flags)
 	 * synchronized to the same frame on AMD hw.
 	 */
 	if(is_amdgpu_device(data->drm_fd))
-		igt_wait_for_vblank_count(igt_crtc_for_pipe(display, data->pipe_id),
+		igt_wait_for_vblank_count(data->crtc,
 					  1);
 
 	/* Record the new CRC. */
@@ -346,7 +343,6 @@ static void test_cursor_spots(data_t *data, int size, unsigned int flags)
 
 static void test_cursor(data_t *data, int size, unsigned int flags, unsigned int scaling_factor)
 {
-	igt_display_t *display = &data->display;
 	int sw, sh;
 
 	igt_skip_on(size > data->max_curw || size > data->max_curh);
@@ -395,7 +391,7 @@ static void test_cursor(data_t *data, int size, unsigned int flags, unsigned int
 	}
 
 	igt_output_set_crtc(data->output,
-		igt_crtc_for_pipe(display, data->pipe_id));
+		data->crtc);
 
 	/* Run the test for different cursor spots. */
 	test_cursor_spots(data, size, flags);
diff --git a/tests/amdgpu/amd_ilr.c b/tests/amdgpu/amd_ilr.c
index 761ae20121a2..d6f96cc33804 100644
--- a/tests/amdgpu/amd_ilr.c
+++ b/tests/amdgpu/amd_ilr.c
@@ -44,7 +44,6 @@ typedef struct {
 	igt_crtc_t *crtc;
 	igt_pipe_crc_t *pipe_crc;
 	igt_crc_t crc_dprx;
-	enum pipe pipe_id;
 	int connector_type;
 	int supported_ilr[MAX_SUPPORTED_ILR];
 	int lane_count[4], link_rate[4], link_spread_spectrum[4];
@@ -81,7 +80,6 @@ static void set_all_output_pipe_to_none(data_t *data)
 
 static void test_init(data_t *data, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
 	igt_crtc_t *crtc;
 
 	igt_require(output->config.connector->count_modes >= 1);
@@ -90,16 +88,14 @@ static void test_init(data_t *data, igt_output_t *output)
 
 	for_each_crtc(&data->display, crtc) {
 		if (igt_pipe_connector_valid(crtc->pipe, output)) {
-			data->pipe_id = crtc->pipe;
+			data->crtc = crtc;
 			break;
 		}
 	}
 
 	data->connector_type = output->config.connector->connector_type;
 
-	igt_require(data->pipe_id != PIPE_NONE);
-
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	igt_require(data->crtc != NULL);
 
 	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  AMDGPU_PIPE_CRC_SOURCE_DPRX);
diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c
index 48cb5643baa0..eaeddfb1599b 100644
--- a/tests/amdgpu/amd_link_settings.c
+++ b/tests/amdgpu/amd_link_settings.c
@@ -31,7 +31,6 @@ typedef struct
         igt_output_t *output;
         igt_fb_t fb;
 	igt_crtc_t *crtc;
-        enum pipe pipe_id;
 	int connector_type;
 	int w, h;
 	int supported_ilr[MAX_SUPPORTED_ILR];
@@ -83,7 +82,6 @@ static void set_all_output_pipe_to_none(data_t *data)
 
 static void test_init(data_t *data, igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
 	igt_crtc_t *crtc;
 
 	igt_require(output->config.connector->count_modes >= 1);
@@ -92,16 +90,14 @@ static void test_init(data_t *data, igt_output_t *output)
 
 	for_each_crtc(&data->display, crtc) {
 		if (igt_pipe_connector_valid(crtc->pipe, output)) {
-			data->pipe_id = crtc->pipe;
+			data->crtc = crtc;
 			break;
 		}
 	}
 
 	data->connector_type = output->config.connector->connector_type;
 
-	igt_require(data->pipe_id != PIPE_NONE);
-
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	igt_require(data->crtc != NULL);
 
 	igt_output_set_crtc(output,
 			    data->crtc);
diff --git a/tests/amdgpu/amd_mall.c b/tests/amdgpu/amd_mall.c
index a8ca107578a7..b83e3b864ee4 100644
--- a/tests/amdgpu/amd_mall.c
+++ b/tests/amdgpu/amd_mall.c
@@ -42,7 +42,6 @@ typedef struct data {
 	igt_crtc_t *crtc;
 	igt_pipe_crc_t *pipe_crc;
 	drmModeModeInfo *mode;
-	enum pipe pipe_id;
 	int fd;
 	int w;
 	int h;
@@ -61,8 +60,7 @@ static void test_init(data_t *data)
 	bool mall_en = false;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
diff --git a/tests/amdgpu/amd_max_bpc.c b/tests/amdgpu/amd_max_bpc.c
index 0c30ffbc721d..cf4de724c12c 100644
--- a/tests/amdgpu/amd_max_bpc.c
+++ b/tests/amdgpu/amd_max_bpc.c
@@ -34,7 +34,6 @@ typedef struct data {
 	igt_pipe_crc_t *pipe_crc;
 	igt_pipe_crc_t *pipe_crc_dither;
 	drmModeModeInfo *mode;
-	enum pipe pipe_id;
 	int fd;
 	int w;
 	int h;
@@ -55,8 +54,7 @@ static void test_init(data_t *data)
 	igt_display_t *display = &data->display;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
@@ -76,7 +74,7 @@ static void test_init(data_t *data)
 
 	data->mode = igt_output_get_mode(data->output);
 	igt_assert(data->mode);
-	igt_assert_output_bpc_equal(data->fd, data->pipe_id,
+	igt_assert_output_bpc_equal(data->fd, data->crtc->pipe,
 				    data->output->name, 8);
 
 	data->primary =
diff --git a/tests/amdgpu/amd_mem_leak.c b/tests/amdgpu/amd_mem_leak.c
index ddf7c6d90b25..9e8e61aa7847 100644
--- a/tests/amdgpu/amd_mem_leak.c
+++ b/tests/amdgpu/amd_mem_leak.c
@@ -35,7 +35,6 @@ typedef struct data {
 	igt_output_t *output;
 	igt_crtc_t *crtc;
 	drmModeModeInfo *mode;
-	enum pipe pipe_id;
 	int fd;
 	int w;
 	int h;
@@ -47,8 +46,7 @@ static void test_init(data_t *data)
 	igt_display_t *display = &data->display;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
diff --git a/tests/amdgpu/amd_odm.c b/tests/amdgpu/amd_odm.c
index d9e48da1fa98..85873880e7a5 100644
--- a/tests/amdgpu/amd_odm.c
+++ b/tests/amdgpu/amd_odm.c
@@ -25,7 +25,6 @@ struct data {
 	igt_output_t *output;
 	igt_crtc_t *crtc;
 	drmModeModeInfoPtr mode;
-	enum pipe pipe_id;
 	int fd;
 };
 
@@ -48,8 +47,7 @@ static void test_init(struct data *data)
 	igt_display_t *display = &data->display;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
diff --git a/tests/amdgpu/amd_psr.c b/tests/amdgpu/amd_psr.c
index 8a9d773fff01..548e21810fb9 100644
--- a/tests/amdgpu/amd_psr.c
+++ b/tests/amdgpu/amd_psr.c
@@ -62,7 +62,6 @@ typedef struct data {
 	igt_fb_t pm_fb[2];
 	igt_fb_t cs_fb;		/* cursor framebuffer */
 	drmModeModeInfo *mode;
-	enum pipe pipe_id;
 	int fd;
 	int debugfs_fd;
 	int w, h;
@@ -171,12 +170,12 @@ static void test_init(data_t *data)
 	igt_display_t *display = &data->display;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
-	data->output = igt_get_single_output_for_pipe(display, data->pipe_id);
+	data->output = igt_get_single_output_for_pipe(display,
+						      data->crtc->pipe);
 	igt_require(data->output);
 	igt_info("output %s\n", data->output->name);
 
@@ -341,7 +340,6 @@ static void run_check_psr(data_t *data, bool test_null_crtc) {
 
 static void run_check_psr_su_mpo(data_t *data, bool scaling, float scaling_ratio)
 {
-	igt_display_t *display = &data->display;
 	int edp_idx = check_conn_type(data, DRM_MODE_CONNECTOR_eDP);
 	igt_fb_t ref_fb;	/* reference fb */
 	igt_fb_t *flip_fb;
@@ -374,7 +372,7 @@ static void run_check_psr_su_mpo(data_t *data, bool scaling, float scaling_ratio
 			    .5, .5, .5, &ref_fb);
 	igt_plane_set_fb(data->primary, &ref_fb);
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe_id));
+			    data->crtc);
 	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
 	/*
@@ -414,7 +412,7 @@ static void run_check_psr_su_mpo(data_t *data, bool scaling, float scaling_ratio
 	draw_color_alpha(&data->ov_fb[1], 0, 0, pm_w_scale, pm_h_scale, .5, .5, .5, .0);
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe_id));
+			    data->crtc);
 	igt_display_commit_atomic(&data->display, 0, NULL);
 
 	/* multiplane overlay to emulate video playback use case */
@@ -433,7 +431,7 @@ static void run_check_psr_su_mpo(data_t *data, bool scaling, float scaling_ratio
 			igt_plane_set_size(data->primary, pm_w_scale, pm_h_scale);
 		}
 		igt_output_set_crtc(data->output,
-				    igt_crtc_for_pipe(display, data->pipe_id));
+				    data->crtc);
 
 		ret = igt_display_try_commit_atomic(&data->display, DRM_MODE_PAGE_FLIP_EVENT, NULL);
 		igt_require(ret == 0);
@@ -470,7 +468,6 @@ static void run_check_psr_su_mpo(data_t *data, bool scaling, float scaling_ratio
 
 static void panning_rect_fb(data_t *data, igt_fb_t *rect_fb, int rect_w, int rect_h, int curr_x, int curr_y)
 {
-	igt_display_t *display = &data->display;
 	int ret;
 
 	/* set new position for primary plane */
@@ -493,7 +490,7 @@ static void panning_rect_fb(data_t *data, igt_fb_t *rect_fb, int rect_w, int rec
 		igt_plane_set_fb(data->primary, rect_fb);
 		igt_plane_set_size(data->primary, rect_w, rect_h);
 		igt_output_set_crtc(data->output,
-				    igt_crtc_for_pipe(display, data->pipe_id));
+				    data->crtc);
 
 		ret = igt_display_try_commit_atomic(&data->display, DRM_MODE_PAGE_FLIP_EVENT, NULL);
 		igt_require(ret == 0);
@@ -503,7 +500,6 @@ static void panning_rect_fb(data_t *data, igt_fb_t *rect_fb, int rect_w, int rec
 
 static void run_check_psr_su_ffu(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	int edp_idx = check_conn_type(data, DRM_MODE_CONNECTOR_eDP);
 	igt_fb_t ref_fb;	/* reference fb */
 
@@ -521,7 +517,7 @@ static void run_check_psr_su_ffu(data_t *data)
 			    .5, .5, .5, &ref_fb);
 	igt_plane_set_fb(data->primary, &ref_fb);
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe_id));
+			    data->crtc);
 	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
 	/*
@@ -619,7 +615,6 @@ static void test_cursor_movement(data_t *data, int iters, int cs_size, enum curs
 
 static void run_check_psr_su_cursor(data_t *data, bool test_mpo)
 {
-	igt_display_t *display = &data->display;
 	int edp_idx = check_conn_type(data, DRM_MODE_CONNECTOR_eDP);
 	const int cs_size = 128;
 	const int delay_sec = 5; /* seconds */
@@ -660,7 +655,7 @@ static void run_check_psr_su_cursor(data_t *data, bool test_mpo)
 	igt_plane_set_position(data->cursor, 0, 0);
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe_id));
+			    data->crtc);
 	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
 	/*
diff --git a/tests/amdgpu/amd_replay.c b/tests/amdgpu/amd_replay.c
index 079916042ab3..010b3a97e775 100644
--- a/tests/amdgpu/amd_replay.c
+++ b/tests/amdgpu/amd_replay.c
@@ -26,7 +26,6 @@ struct test_data {
 	igt_fb_t ref_fb;
 	igt_fb_t ref_fb2;
 	igt_fb_t *flip_fb;
-	enum pipe pipe_id;
 	int fd;
 	int debugfs_fd;
 	int w, h;
@@ -61,12 +60,12 @@ static void test_init(struct test_data *data)
 	igt_display_t *display = &data->display;
 
 	/* It doesn't matter which pipe we choose on amdpgu. */
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
-	data->output = igt_get_single_output_for_pipe(display, data->pipe_id);
+	data->output = igt_get_single_output_for_pipe(display,
+						      data->crtc->pipe);
 	igt_require(data->output);
 	igt_info("output %s\n", data->output->name);
 
diff --git a/tests/intel/kms_sharpness_filter.c b/tests/intel/kms_sharpness_filter.c
index eddfad6b99c4..ba325b3773d3 100644
--- a/tests/intel/kms_sharpness_filter.c
+++ b/tests/intel/kms_sharpness_filter.c
@@ -155,7 +155,6 @@ static const uint32_t scaling_modes[] = {
 typedef struct {
 	int drm_fd;
 	bool limited;
-	enum pipe pipe_id;
 	struct igt_fb fb[4];
 	igt_crtc_t *crtc;
 	igt_display_t display;
@@ -173,8 +172,7 @@ typedef struct {
 
 static void set_filter_strength_on_pipe(data_t *data)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_set_prop_value(igt_crtc_for_pipe(display, data->pipe_id),
+	igt_crtc_set_prop_value(data->crtc,
 				    IGT_CRTC_SHARPNESS_STRENGTH,
 				    data->filter_strength);
 }
@@ -331,7 +329,6 @@ static int test_filter_toggle(data_t *data)
 
 static void test_sharpness_filter(data_t *data,  enum test_type type)
 {
-	igt_display_t *display = &data->display;
 	igt_output_t *output = data->output;
 	drmModeModeInfo *mode = data->mode;
 	int height = mode->hdisplay;
@@ -343,7 +340,8 @@ static void test_sharpness_filter(data_t *data,  enum test_type type)
 	data->plane[0] = igt_crtc_get_plane_type(data->crtc,
 						 DRM_PLANE_TYPE_PRIMARY);
 	igt_skip_on_f(!igt_plane_has_format_mod(data->plane[0], data->format, data->modifier),
-		      "No requested format/modifier on pipe %s\n", kmstest_pipe_name(data->pipe_id));
+		      "No requested format/modifier on pipe %s\n",
+		      igt_crtc_name(data->crtc));
 
 	setup_fb(data->drm_fd, height, width, data->format, data->modifier, &data->fb[0]);
 	igt_plane_set_fb(data->plane[0], &data->fb[0]);
@@ -352,7 +350,8 @@ static void test_sharpness_filter(data_t *data,  enum test_type type)
 		if (igt_plane_has_rotation(data->plane[0], data->rotation))
 			igt_plane_set_rotation(data->plane[0], data->rotation);
 		else
-			igt_skip("No requested rotation on pipe %s\n", kmstest_pipe_name(data->pipe_id));
+			igt_skip("No requested rotation on pipe %s\n",
+				 igt_crtc_name(data->crtc));
 	}
 
 	if (type == TEST_INVALID_FILTER_WITH_SCALING_MODE)
@@ -372,7 +371,7 @@ static void test_sharpness_filter(data_t *data,  enum test_type type)
 		ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
 
 	if (type == TEST_FILTER_DPMS || type == TEST_FILTER_SUSPEND) {
-		pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe_id),
+		pipe_crc = igt_crtc_crc_new(data->crtc,
 					    IGT_PIPE_CRC_SOURCE_AUTO);
 		igt_pipe_crc_collect_crc(pipe_crc, &ref_crc);
 	}
@@ -438,13 +437,12 @@ run_sharpness_filter_test(data_t *data, enum test_type type)
 			igt_display_reset(display);
 
 			data->output = output;
-			data->pipe_id = crtc->pipe;
-			data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+			data->crtc = crtc;
 			data->mode = igt_output_get_mode(data->output);
 
 			if (!has_sharpness_filter(data->crtc)) {
 				igt_info("%s: Doesn't support IGT_CRTC_SHARPNESS_STRENGTH.\n",
-				kmstest_pipe_name(data->pipe_id));
+				igt_crtc_name(data->crtc));
 				continue;
 			}
 
@@ -473,7 +471,8 @@ run_sharpness_filter_test(data_t *data, enum test_type type)
 					igt_output_override_mode(data->output, data->mode);
 
 					snprintf(name, sizeof(name), "-tap-%d", data->filter_tap);
-					igt_dynamic_f("pipe-%s-%s%s", kmstest_pipe_name(data->pipe_id),
+					igt_dynamic_f("pipe-%s-%s%s",
+						       igt_crtc_name(data->crtc),
 						       data->output->name, name)
 						test_sharpness_filter(data, type);
 				}
@@ -531,7 +530,9 @@ run_sharpness_filter_test(data_t *data, enum test_type type)
 				igt_assert(0);
 			}
 
-			igt_dynamic_f("pipe-%s-%s%s",  kmstest_pipe_name(data->pipe_id), data->output->name, name)
+			igt_dynamic_f("pipe-%s-%s%s",
+				        igt_crtc_name(data->crtc),
+				      data->output->name, name)
 				test_sharpness_filter(data, type);
 
 			if (data->limited)
diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
index f97861798085..0addd72a0472 100644
--- a/tests/kms_hdr.c
+++ b/tests/kms_hdr.c
@@ -114,7 +114,6 @@ typedef struct data {
 	igt_crtc_t *crtc;
 	igt_pipe_crc_t *pipe_crc;
 	drmModeModeInfo *mode;
-	enum pipe pipe_id;
 	int fd;
 	int w;
 	int h;
@@ -208,8 +207,7 @@ static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
 	igt_display_t *display = &data->display;
 	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 
-	data->pipe_id = crtc->pipe;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = crtc;
 	igt_assert(data->crtc);
 
 	igt_display_reset(display);
diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c
index d54b01af0e42..bf0f89844595 100644
--- a/tests/kms_plane_cursor.c
+++ b/tests/kms_plane_cursor.c
@@ -82,7 +82,6 @@ typedef struct data {
 	igt_fb_t pfb;
 	igt_fb_t ofb;
 	igt_fb_t cfb;
-	enum pipe pipe_id;
 	int drm_fd;
 	rect_t rect;
 	uint64_t max_curw;
@@ -95,8 +94,7 @@ static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output,
 {
 	igt_display_t *display = &data->display;
 	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe_id);
-	data->pipe_id = crtc->pipe;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = crtc;
 	data->output = output;
 
 	data->mode = igt_output_get_mode(data->output);
@@ -110,7 +108,7 @@ static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output,
 					       DRM_PLANE_TYPE_CURSOR);
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(data->pipe_id), igt_output_name(data->output));
+		 igt_crtc_name(data->crtc), igt_output_name(data->output));
 
 	igt_require_pipe_crc(data->drm_fd);
 	data->pipe_crc = igt_crtc_crc_new(data->crtc,
@@ -146,7 +144,6 @@ static void test_fini(data_t *data)
  */
 static void test_cursor_pos(data_t *data, int x, int y, unsigned int flags)
 {
-	igt_display_t *display = &data->display;
 	igt_crc_t ref_crc, test_crc;
 	cairo_t *cr;
 	igt_fb_t *ref_fb = &data->ref_fb;
@@ -194,7 +191,7 @@ static void test_cursor_pos(data_t *data, int x, int y, unsigned int flags)
 	/* Wait for one more vblank since cursor updates are not
 	 * synchronized to the same frame on AMD hw */
 	if(is_amdgpu_device(data->drm_fd))
-		igt_wait_for_vblank_count(igt_crtc_for_pipe(display, data->pipe_id),
+		igt_wait_for_vblank_count(data->crtc,
 					  1);
 
 	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &test_crc);
@@ -254,7 +251,6 @@ static void test_cleanup(data_t *data)
 
 static void test_cursor(data_t *data, int size, unsigned int flags)
 {
-	igt_display_t *display = &data->display;
 	int sw, sh;
 	int pad = 128;
 
@@ -284,7 +280,7 @@ static void test_cursor(data_t *data, int size, unsigned int flags)
 
 	igt_plane_set_fb(data->primary, &data->pfb);
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe_id));
+			    data->crtc);
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
 
 	test_cursor_spots(data, size, flags);
diff --git a/tools/amd_hdmi_compliance.c b/tools/amd_hdmi_compliance.c
index ccdfaa410e38..94025547f01c 100644
--- a/tools/amd_hdmi_compliance.c
+++ b/tools/amd_hdmi_compliance.c
@@ -34,7 +34,6 @@ typedef struct data {
 	igt_plane_t *primary;
 	igt_output_t *output;
 	igt_crtc_t *crtc;
-	enum pipe pipe_id;
 	bool use_virtual_connector;
 	int timeout_seconds;
 } data_t;
@@ -384,8 +383,7 @@ static void test_init(data_t *data, int conn_id)
 {
 	igt_display_t *display = &data->display;
 
-	data->pipe_id = PIPE_A;
-	data->crtc = igt_crtc_for_pipe(display, data->pipe_id);
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(display);
 
-- 
2.52.0


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

* [PATCH i-g-t 19/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 2
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (17 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 18/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 1 Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 20/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 3 Ville Syrjala
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert several kms tests to use igt_crtc_t instead
of enum pipe. These specific tests already track crtcs
alongside pipes (both in arrays) in their data structure.
Remove the redundant pipe information and just rely on the
crtcs.

 #include "scripts/iterators.cocci"

@@
igt_display_t DISPLAY;
expression _PIPE;
@@
- &DISPLAY.crtcs[_PIPE]
+ igt_crtc_for_pipe(&DISPLAY, _PIPE)

@@
igt_display_t *DISPLAY;
expression _PIPE;
@@
- &DISPLAY->crtcs[_PIPE]
+ igt_crtc_for_pipe(DISPLAY, _PIPE)

@find_data@
typedef igt_crtc_t;
typedef igt_display_t;
identifier DISPLAY, PIPE, CRTC;
type T;
@@
(
T {
  ...
  igt_display_t DISPLAY;
  ...
  igt_crtc_t *CRTC[...];
  ...
- enum pipe PIPE[...];
  ...
};
|
T {
  ...
- enum pipe PIPE[...];
  ...
  igt_display_t DISPLAY;
  ...
  igt_crtc_t *CRTC[...];
  ...
};
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.CRTC;
identifier find_data.DISPLAY;
find_data.T S;
find_data.T *P;
expression _PIPE, I;
@@
(
- S.PIPE[I] = _PIPE;
+ S.CRTC[I] = igt_crtc_for_pipe(&S.DISPLAY, _PIPE);
|
- P->PIPE[I] = _PIPE;
+ P->CRTC[I] = igt_crtc_for_pipe(&P->DISPLAY, _PIPE);
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.CRTC;
identifier find_data.DISPLAY;
find_data.T S;
find_data.T *P;
expression E;
@@
(
- S.PIPE[I] = E
+ S.CRTC[I] = igt_crtc_for_pipe(&S.DISPLAY, E)
|
- P->PIPE[I] = E
+ P->CRTC[I] = igt_crtc_for_pipe(&P->DISPLAY, E)
|
- igt_crtc_for_pipe(..., S.PIPE[I])
+ S.CRTC[I]
|
- igt_crtc_for_pipe(..., P->PIPE[I])
+ P->CRTC[I]
|
- kmstest_pipe_name(S.PIPE[I])
+ igt_crtc_name(S.CRTC[I])
|
- kmstest_pipe_name(P->PIPE[I])
+ igt_crtc_name(P->CRTC[I])
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.CRTC;
find_data.T S;
find_data.T *P;
expression I;
@@
(
- S.PIPE[I]
+ S.CRTC[I]->pipe
|
- P->PIPE[I]
+ P->CRTC[I]->pipe
)

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

@depends on find_data@
identifier find_data.CRTC;
find_data.T S;
find_data.T *P;
expression I, E;
@@
(
  S.CRTC[I] = E;
  ...
- S.CRTC[I] = E;
|
  P->CRTC[I] = E;
  ...
- P->CRTC[I] = E;
)

@depends on find_data@
identifier find_data.CRTC;
find_data.T S;
find_data.T *P;
igt_crtc_t *C;
@@
(
S.CRTC[C->pipe] = ...;
|
P->CRTC[C->pipe] = ...;
|
- S.CRTC[C->pipe]
+ C
|
- P->CRTC[C->pipe]
+ C
)

@@
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_dp_dsc.c  | 12 +++++-------
 tests/amdgpu/amd_hotplug.c |  4 +---
 tests/amdgpu/amd_plane.c   | 14 ++++++--------
 tests/amdgpu/amd_subvp.c   |  4 +---
 tests/kms_bw.c             |  2 --
 5 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/tests/amdgpu/amd_dp_dsc.c b/tests/amdgpu/amd_dp_dsc.c
index d02d66def18a..4403f9205d83 100644
--- a/tests/amdgpu/amd_dp_dsc.c
+++ b/tests/amdgpu/amd_dp_dsc.c
@@ -39,7 +39,6 @@ typedef struct data {
 	igt_crtc_t *crtc[MAX_PIPES];
 	igt_pipe_crc_t *pipe_crc[MAX_PIPES];
 	drmModeModeInfo mode[MAX_PIPES];
-	enum pipe pipe_id[MAX_PIPES];
 	int fd;
 } data_t;
 
@@ -65,7 +64,6 @@ static void test_init(data_t *data)
 	int i, n;
 
 	for_each_crtc(display, crtc) {
-		data->pipe_id[crtc->pipe] = crtc->pipe;
 		data->crtc[crtc->pipe] = crtc;
 		data->primary[crtc->pipe] = igt_crtc_get_plane_type(crtc,
 								    DRM_PLANE_TYPE_PRIMARY);
@@ -135,7 +133,7 @@ static void test_dsc_enable(data_t *data)
 				      0,
 				      &ref_fb);
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, data->pipe_id[crtc->pipe]));
+				    crtc);
 		igt_plane_set_fb(data->primary[crtc->pipe], &ref_fb);
 		igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, 0);
 
@@ -283,7 +281,7 @@ static void test_dsc_slice_dimensions_change(data_t *data)
 				      0,
 				      &ref_fb);
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, data->pipe_id[crtc->pipe]));
+				    crtc);
 		igt_plane_set_fb(data->primary[crtc->pipe], &ref_fb);
 		igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, 0);
 
@@ -379,7 +377,7 @@ static void test_dsc_link_settings(data_t *data)
 				      0,
 				      &ref_fb[crtc->pipe]);
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, data->pipe_id[crtc->pipe]));
+				    crtc);
 		igt_plane_set_fb(data->primary[crtc->pipe],
 				 &ref_fb[crtc->pipe]);
 	}
@@ -506,7 +504,7 @@ static void test_dsc_bpc(data_t *data)
 					      0,
 					      &ref_fb[crtc->pipe]);
 			igt_output_set_crtc(output,
-					    igt_crtc_for_pipe(display, data->pipe_id[crtc->pipe]));
+					    crtc);
 			igt_plane_set_fb(data->primary[crtc->pipe],
 					 &ref_fb[crtc->pipe]);
 		}
@@ -529,7 +527,7 @@ static void test_dsc_bpc(data_t *data)
 			/* Check current bpc */
 			igt_info("Verifying display %s has correct bpc\n", output->name);
 			igt_assert_output_bpc_equal(data->fd,
-						    data->pipe_id[crtc->pipe],
+						    crtc->pipe,
 						    output->name,
 						    bpc_vals[bpc]);
 
diff --git a/tests/amdgpu/amd_hotplug.c b/tests/amdgpu/amd_hotplug.c
index eff4ec42de00..15092cc9fdec 100644
--- a/tests/amdgpu/amd_hotplug.c
+++ b/tests/amdgpu/amd_hotplug.c
@@ -42,7 +42,6 @@ typedef struct data {
 	igt_crtc_t *crtc[MAX_PIPES];
 	igt_pipe_crc_t *pipe_crc[MAX_PIPES];
 	drmModeModeInfo mode[MAX_PIPES];
-	enum pipe pipe_id[MAX_PIPES];
 	int w[MAX_PIPES];
 	int h[MAX_PIPES];
 	int fd;
@@ -55,7 +54,6 @@ static void test_init(data_t *data)
 	igt_crtc_t *crtc;
 
 	for_each_crtc(display, crtc) {
-		data->pipe_id[crtc->pipe] = crtc->pipe;
 		data->crtc[crtc->pipe] = crtc;
 		data->primary[crtc->pipe] = igt_crtc_get_plane_type(crtc,
 								    DRM_PLANE_TYPE_PRIMARY);
@@ -165,7 +163,7 @@ static void test_hotplug_basic(data_t *data, bool suspend)
 				      DRM_FORMAT_XRGB8888, 0,
 				      &ref_fb[crtc->pipe]);
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, data->pipe_id[crtc->pipe]));
+				    crtc);
 		igt_plane_set_fb(data->primary[crtc->pipe],
 				 &ref_fb[crtc->pipe]);
 	}
diff --git a/tests/amdgpu/amd_plane.c b/tests/amdgpu/amd_plane.c
index 296deb898e1d..6831fc43e4a6 100644
--- a/tests/amdgpu/amd_plane.c
+++ b/tests/amdgpu/amd_plane.c
@@ -47,7 +47,6 @@ typedef struct data {
         igt_crtc_t *crtc[MAX_PIPES];
         igt_pipe_crc_t *pipe_crc[MAX_PIPES];
         drmModeModeInfo mode[MAX_PIPES];
-        enum pipe pipe_id[MAX_PIPES];
         int w[MAX_PIPES];
         int h[MAX_PIPES];
         int fd;
@@ -156,7 +155,6 @@ static void test_init(data_t *data)
 	igt_crtc_t *crtc;
 
 	for_each_crtc(display, crtc) {
-		data->pipe_id[crtc->pipe] = crtc->pipe;
 		data->crtc[crtc->pipe] = crtc;
 		data->primary[crtc->pipe] = igt_crtc_get_plane_type(crtc,
 								    DRM_PLANE_TYPE_PRIMARY);
@@ -570,7 +568,7 @@ static void test_multi_mpo_invalid(data_t *data)
 	igt_skip_on(!data->overlay2[0]);
 
 	igt_output_set_crtc(data->output[0],
-			    igt_crtc_for_pipe(display, data->pipe_id[0]));
+			    data->crtc[0]);
 
 	igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[0].test_primary);
 	igt_create_fb(data->fd, w, h, DRM_FORMAT_NV12, 0, &fb[0].test_overlay);
@@ -647,7 +645,7 @@ static void test_display_mpo(data_t *data, enum test test, uint32_t format, int
 		}
 
 		igt_output_set_crtc(data->output[n],
-				    igt_crtc_for_pipe(display, data->pipe_id[n]));
+				    data->crtc[n]);
 
 		igt_create_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, &fb[n].ref_primary);
 		igt_create_color_fb(data->fd, w, h, DRM_FORMAT_XRGB8888, 0, 1.0, 1.0, 1.0, &fb[n].ref_primary);
@@ -735,7 +733,7 @@ static void test_mpo_4k(data_t *data)
 			 0.00, 0.00, 0.00, 0.00);
 
 	igt_output_set_crtc(data->output[0],
-			    igt_crtc_for_pipe(display, data->pipe_id[0]));
+			    data->crtc[0]);
 	igt_plane_set_fb(data->primary[0], &r_fb);
 	igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
@@ -801,9 +799,9 @@ static void test_mpo_swizzle_toggle_multihead(data_t *data)
 
 	/* Initial modeset */
 	igt_output_set_crtc(data->output[0],
-			    igt_crtc_for_pipe(display, data->pipe_id[0]));
+			    data->crtc[0]);
 	igt_output_set_crtc(data->output[1],
-			    igt_crtc_for_pipe(display, data->pipe_id[1]));
+			    data->crtc[1]);
 	force_output_mode(data, data->output[0], &test_mode_1);
 	force_output_mode(data, data->output[1], &test_mode_2);
 
@@ -872,7 +870,7 @@ static void test_mpo_swizzle_toggle(data_t *data)
 
 	/* Initial modeset */
 	igt_output_set_crtc(data->output[0],
-			    igt_crtc_for_pipe(display, data->pipe_id[0]));
+			    data->crtc[0]);
 	force_output_mode(data, data->output[0], &test_mode_1);
 
 	igt_plane_set_fb(data->primary[0], &fb_1920_xb24_linear);
diff --git a/tests/amdgpu/amd_subvp.c b/tests/amdgpu/amd_subvp.c
index 6249490a4e5e..37879d167e08 100644
--- a/tests/amdgpu/amd_subvp.c
+++ b/tests/amdgpu/amd_subvp.c
@@ -19,7 +19,6 @@ struct data {
 	igt_crtc_t *crtc[IGT_MAX_PIPES];
 	igt_pipe_crc_t *pipe_crc[IGT_MAX_PIPES];
 	drmModeModeInfo mode[IGT_MAX_PIPES];
-	enum pipe pipe_id[IGT_MAX_PIPES];
 	int fd;
 };
 
@@ -65,7 +64,6 @@ static void test_init(struct data *data)
 	bool subvp_en = false;
 
 	for_each_crtc(display, crtc) {
-		data->pipe_id[crtc->pipe] = crtc->pipe;
 		data->crtc[crtc->pipe] = crtc;
 		data->primary[crtc->pipe] = igt_crtc_get_plane_type(crtc,
 								    DRM_PLANE_TYPE_PRIMARY);
@@ -141,7 +139,7 @@ static void test_subvp(struct data *data)
 					&rfb);
 
 		igt_output_set_crtc(output,
-				    igt_crtc_for_pipe(display, data->pipe_id[crtc->pipe]));
+				    crtc);
 		igt_plane_set_fb(data->primary[crtc->pipe], &rfb);
 		igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, 0);
 	}
diff --git a/tests/kms_bw.c b/tests/kms_bw.c
index 11f055b23464..778900d8c9f1 100644
--- a/tests/kms_bw.c
+++ b/tests/kms_bw.c
@@ -70,7 +70,6 @@ typedef struct data {
         igt_crtc_t *crtc[IGT_MAX_PIPES];
         igt_pipe_crc_t *pipe_crc[IGT_MAX_PIPES];
         drmModeModeInfo mode[IGT_MAX_PIPES];
-        enum pipe pipe_id[IGT_MAX_PIPES];
         int w[IGT_MAX_PIPES];
         int h[IGT_MAX_PIPES];
         int fd;
@@ -126,7 +125,6 @@ static void test_init(data_t *data, bool physical)
 	data->connected_outputs = 0;
 
 	for_each_crtc(display, crtc) {
-		data->pipe_id[crtc->pipe] = crtc->pipe;
 		data->crtc[crtc->pipe] = crtc;
 		data->primary[crtc->pipe] = igt_crtc_get_plane_type(crtc,
 								    DRM_PLANE_TYPE_PRIMARY);
-- 
2.52.0


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

* [PATCH i-g-t 20/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 3
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (18 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 19/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 2 Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 14:01 ` [PATCH i-g-t 21/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 4 Ville Syrjala
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert several kms tests to use igt_crtc_t instead
of enum pipe. These specific tests currently track the pipe
in their data structure. Replace that with the crtc instead.

 #include "scripts/iterators.cocci"

@find_data@
typedef igt_crtc_t;
typedef igt_display_t;
identifier DISPLAY, PIPE;
type T;
@@
(
T {
  ...
- enum pipe PIPE;
+ igt_crtc_t *crtc;
  ...
  igt_display_t DISPLAY;
  ...
};
|
T {
  ...
  igt_display_t DISPLAY;
  ...
-  enum pipe PIPE;
+  igt_crtc_t *crtc;
  ...
};
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.DISPLAY;
find_data.T S;
find_data.T *P;
expression _PIPE;
@@
(
- S.PIPE = _PIPE;
+ S.crtc = igt_crtc_for_pipe(&S.DISPLAY, _PIPE);
|
- P->PIPE = _PIPE;
+ P->crtc = igt_crtc_for_pipe(&P->DISPLAY, _PIPE);
)

@depends on find_data@
identifier find_data.PIPE;
identifier find_data.DISPLAY;
find_data.T S;
find_data.T *P;
expression E;
@@
(
- S.PIPE = E
+ S.crtc = igt_crtc_for_pipe(&S.DISPLAY, E)
|
- P->PIPE = E
+ P->crtc = igt_crtc_for_pipe(&P->DISPLAY, E)
|
- igt_crtc_for_pipe(..., S.PIPE)
+ S.crtc
|
- igt_crtc_for_pipe(..., P->PIPE)
+ P->crtc
|
- kmstest_pipe_name(S.PIPE)
+ igt_crtc_name(S.crtc)
|
- kmstest_pipe_name(P->PIPE)
+ igt_crtc_name(P->crtc)
)

@depends on find_data@
find_data.T S;
find_data.T *P;
@@
(
- S.crtc = S.crtc;
|
- P->crtc = P->crtc;
)

@depends on find_data@
identifier find_data.PIPE;
find_data.T S;
find_data.T *P;
@@
(
- S.PIPE
+ S.crtc->pipe
|
- P->PIPE
+ P->crtc->pipe
)

@depends on find_data@
find_data.T S;
find_data.T *P;
binary operator OP = { ==, != };
@@
(
- S.crtc->pipe OP PIPE_NONE
+ S.crtc OP NULL
|
- P->crtc->pipe OP PIPE_NONE
+ P->crtc OP NULL
)

@depends on find_data@
expression CRTC;
identifier PIPE;
@@
{...
CRTC = igt_crtc_for_pipe(..., PIPE);
<... when != PIPE = ...
(
- igt_crtc_for_pipe(..., PIPE)
+ 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>
---
 .../kms_chamelium_sharpness_filter.c          | 15 +++---
 tests/intel/kms_big_fb.c                      | 28 +++++-----
 tests/intel/kms_ccs.c                         |  8 +--
 tests/intel/kms_dirtyfb.c                     | 25 +++++----
 tests/intel/kms_dp_linktrain_fallback.c       | 11 ++--
 tests/intel/kms_fb_coherency.c                |  8 +--
 tests/intel/kms_fbc_dirty_rect.c              | 17 +++---
 tests/intel/kms_mmap_write_crc.c              |  8 +--
 tests/intel/kms_pm_lpsp.c                     |  7 ++-
 tests/intel/kms_psr2_sf.c                     | 53 +++++++++----------
 tests/intel/kms_pwrite_crc.c                  |  8 +--
 tests/intel/perf_pmu.c                        | 10 ++--
 tests/intel/prime_mmap_kms.c                  |  6 +--
 tests/kms_async_flips.c                       | 13 +++--
 tests/kms_cursor_crc.c                        | 40 +++++++-------
 tests/kms_cursor_edge_walk.c                  | 13 +++--
 tests/kms_invalid_mode.c                      |  7 ++-
 tests/kms_plane_lowres.c                      | 11 ++--
 tests/kms_sequence.c                          | 12 ++---
 tests/nouveau_crc.c                           | 31 ++++++-----
 tests/vmwgfx/vmw_prime.c                      | 10 ++--
 tools/intel_hdcp.c                            |  4 +-
 22 files changed, 163 insertions(+), 182 deletions(-)

diff --git a/tests/chamelium/kms_chamelium_sharpness_filter.c b/tests/chamelium/kms_chamelium_sharpness_filter.c
index c8dc3ee879e3..b7a70d4a2f15 100644
--- a/tests/chamelium/kms_chamelium_sharpness_filter.c
+++ b/tests/chamelium/kms_chamelium_sharpness_filter.c
@@ -26,7 +26,7 @@ IGT_TEST_DESCRIPTION("Test to validate content adaptive sharpness filter using C
 
 typedef struct {
 	int drm_fd;
-	enum pipe pipe_id;
+	igt_crtc_t *crtc;
 	struct igt_fb fb;
 	igt_display_t display;
 	igt_output_t *output;
@@ -55,16 +55,14 @@ static bool pipe_output_combo_valid(data_t *data, enum pipe pipe)
 
 static void set_filter_strength_on_pipe(data_t *data)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_set_prop_value(igt_crtc_for_pipe(display, data->pipe_id),
+	igt_crtc_set_prop_value(data->crtc,
 				    IGT_CRTC_SHARPNESS_STRENGTH,
 				    data->filter_strength);
 }
 
 static void reset_filter_strength_on_pipe(data_t *data)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_set_prop_value(igt_crtc_for_pipe(display, data->pipe_id),
+	igt_crtc_set_prop_value(data->crtc,
 				    IGT_CRTC_SHARPNESS_STRENGTH, 0);
 }
 
@@ -115,14 +113,13 @@ static void cleanup(data_t *data)
 static void test_t(data_t *data, igt_plane_t *primary,
 		   struct chamelium_port *port)
 {
-	igt_display_t *display = &data->display;
 	struct chamelium_frame_dump *frame[4];
 	drmModeModeInfo *mode;
 	int height, width;
 	bool match[4], match_ok = false;
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe_id));
+			    data->crtc);
 
 	mode = igt_output_get_mode(data->output);
 	height = mode->hdisplay;
@@ -198,7 +195,7 @@ static int test_setup(data_t *data, enum pipe p)
 	 */
         for_each_valid_output_on_pipe(&data->display, crtc->pipe,
 				      data->output) {
-		data->pipe_id = crtc->pipe;
+		data->crtc = crtc;
 		for (i = 0; i < data->port_count; i++) {
 			if ((data->output->config.connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
 			     data->output->config.connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) &&
@@ -209,7 +206,7 @@ static int test_setup(data_t *data, enum pipe p)
 
 	for_each_valid_output_on_pipe(&data->display, crtc->pipe,
 				      data->output) {
-		data->pipe_id = crtc->pipe;
+		data->crtc = crtc;
 		for (i = 0; i < data->port_count; i++) {
 			if (strcmp(data->output->name,
 				   chamelium_port_get_name(data->ports[i])) == 0)
diff --git a/tests/intel/kms_big_fb.c b/tests/intel/kms_big_fb.c
index d6aa8d6ec608..66d7c5428d1e 100644
--- a/tests/intel/kms_big_fb.c
+++ b/tests/intel/kms_big_fb.c
@@ -152,7 +152,7 @@ typedef struct {
 	int drm_fd;
 	uint32_t devid;
 	igt_display_t display;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_output_t *output;
 	igt_plane_t *plane;
 	igt_pipe_crc_t *pipe_crc;
@@ -376,8 +376,7 @@ static void prep_fb(data_t *data)
 
 static void set_c8_lut(data_t *data)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, data->pipe);
+	igt_crtc_t *crtc = data->crtc;
 	struct drm_color_lut *lut;
 	int i, lut_size = 256;
 
@@ -398,8 +397,7 @@ static void set_c8_lut(data_t *data)
 
 static void unset_lut(data_t *data)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, data->pipe);
+	igt_crtc_t *crtc = data->crtc;
 
 	igt_crtc_replace_prop_blob(crtc, IGT_CRTC_GAMMA_LUT, NULL, 0);
 }
@@ -510,7 +508,6 @@ static bool test_plane(data_t *data)
 
 static bool test_pipe(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	uint16_t width, height;
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
@@ -518,10 +515,10 @@ static bool test_pipe(data_t *data)
 	bool run_in_simulation = igt_run_in_simulation();
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(data->pipe), igt_output_name(data->output));
+		 igt_crtc_name(data->crtc), igt_output_name(data->output));
 
 	if (data->format == DRM_FORMAT_C8 &&
-	    !igt_crtc_has_prop(igt_crtc_for_pipe(display, data->pipe),
+	    !igt_crtc_has_prop(data->crtc,
 				   IGT_CRTC_GAMMA_LUT))
 		return false;
 
@@ -541,7 +538,7 @@ static bool test_pipe(data_t *data)
 		      data->format, data->modifier, &data->small_fb);
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 	igt_plane_set_fb(primary, NULL);
@@ -569,10 +566,10 @@ static bool test_pipe(data_t *data)
 	igt_display_commit2(&data->display, data->display.is_atomic ?
 			    COMMIT_ATOMIC : COMMIT_UNIVERSAL);
 
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 
-	for_each_plane_on_pipe(&data->display, data->pipe, data->plane) {
+	for_each_plane_on_pipe(&data->display, data->crtc->pipe, data->plane) {
 		ret = test_plane(data);
 		if (ret || run_in_simulation)
 			break;
@@ -589,7 +586,6 @@ static bool test_pipe(data_t *data)
 static bool
 max_hw_stride_async_flip_test(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	uint32_t ret;
 	const uint32_t w = data->output->config.default_mode.hdisplay,
 		       h = data->output->config.default_mode.vdisplay;
@@ -599,10 +595,10 @@ max_hw_stride_async_flip_test(data_t *data)
 	igt_require(data->display.is_atomic);
 
 	igt_info("Using (pipe %s + %s) to run the subtest.\n",
-		 kmstest_pipe_name(data->pipe), igt_output_name(data->output));
+		 igt_crtc_name(data->crtc), igt_output_name(data->output));
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 
@@ -636,7 +632,7 @@ max_hw_stride_async_flip_test(data_t *data)
 		 data->hw_stride);
 	generate_pattern(data, &data->big_fb_flip[1], 640, 480);
 
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 	igt_pipe_crc_start(data->pipe_crc);
 
@@ -714,7 +710,7 @@ static void test_scanout(data_t *data)
 		    data->format, data->modifier);
 
 	for_each_crtc_with_valid_output(&data->display, crtc, data->output) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		igt_display_reset(&data->display);
 
 		igt_output_set_crtc(data->output,
diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
index 37d21718bab4..19d12027b68f 100644
--- a/tests/intel/kms_ccs.c
+++ b/tests/intel/kms_ccs.c
@@ -177,7 +177,7 @@ typedef struct {
 	int drm_fd;
 	igt_display_t display;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	enum test_flags flags;
 	igt_plane_t *plane;
 	igt_pipe_crc_t *pipe_crc;
@@ -1040,7 +1040,7 @@ static bool try_config(data_t *data, enum test_fb_flags fb_flags,
 
 static int test_ccs(data_t *data)
 {
-	igt_display_t *display = &data->display;	int valid_tests = 0;
+	int valid_tests = 0;
 	igt_crc_t crc, ref_crc;
 	enum test_fb_flags fb_flags = 0;
 
@@ -1053,7 +1053,7 @@ static int test_ccs(data_t *data)
 		 IGT_FORMAT_ARGS(data->format), IGT_MODIFIER_ARGS(data->ccs_modifier));
 
 	if (data->flags & TEST_CRC) {
-		data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+		data->pipe_crc = igt_crtc_crc_new(data->crtc,
 						  IGT_PIPE_CRC_SOURCE_AUTO);
 
 		if (try_config(data, fb_flags | FB_COMPRESSED, &ref_crc) &&
@@ -1154,7 +1154,7 @@ static void test_output(data_t *data, const int testnum)
 
 			for_each_crtc_with_valid_output(&data->display, crtc,
 							data->output) {
-				data->pipe = crtc->pipe;
+				data->crtc = crtc;
 				igt_display_reset(&data->display);
 
 				igt_output_set_crtc(data->output,
diff --git a/tests/intel/kms_dirtyfb.c b/tests/intel/kms_dirtyfb.c
index 03b6ea264678..47bb68f0753b 100644
--- a/tests/intel/kms_dirtyfb.c
+++ b/tests/intel/kms_dirtyfb.c
@@ -58,7 +58,7 @@ typedef struct {
 	uint64_t modifier;
 	igt_output_t *output;
 	igt_pipe_crc_t *pipe_crc;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 
 	struct igt_fb fbs[3];
 
@@ -100,7 +100,7 @@ static bool check_support(data_t *data)
 	case FEATURE_NONE:
 		return true;
 	case FEATURE_FBC:
-		if (!intel_fbc_supported_on_chipset(data->drm_fd, data->pipe)) {
+		if (!intel_fbc_supported_on_chipset(data->drm_fd, data->crtc->pipe)) {
 			igt_info("FBC is not supported on this chipset\n");
 			return false;
 		}
@@ -127,7 +127,7 @@ static bool check_support(data_t *data)
 		return true;
 
 	case FEATURE_DRRS:
-		if (!(intel_is_drrs_supported(data->drm_fd, data->pipe) &&
+		if (!(intel_is_drrs_supported(data->drm_fd, data->crtc->pipe) &&
 		      intel_output_has_drrs(data->drm_fd, data->output))) {
 			igt_info("Output doesn't support DRRS\n");
 			return false;
@@ -153,7 +153,7 @@ static void enable_feature(data_t *data)
 		psr_enable(data->drm_fd, data->debugfs_fd, PSR_MODE_1, NULL);
 		break;
 	case FEATURE_DRRS:
-		intel_drrs_enable(data->drm_fd, data->pipe);
+		intel_drrs_enable(data->drm_fd, data->crtc->pipe);
 		break;
 	case FEATURE_DEFAULT:
 		break;
@@ -169,7 +169,7 @@ static void check_feature_enabled(data_t *data)
 		break;
 	case FEATURE_FBC:
 		igt_assert_f(intel_fbc_wait_until_enabled(data->drm_fd,
-							  data->pipe),
+							  data->crtc->pipe),
 			     "FBC still disabled\n");
 		break;
 	case FEATURE_PSR:
@@ -178,7 +178,7 @@ static void check_feature_enabled(data_t *data)
 			     "PSR still disabled\n");
 		break;
 	case FEATURE_DRRS:
-		igt_assert_f(!intel_is_drrs_inactive(data->drm_fd, data->pipe),
+		igt_assert_f(!intel_is_drrs_inactive(data->drm_fd, data->crtc->pipe),
 			     "DRRS INACTIVE\n");
 		break;
 	case FEATURE_DEFAULT:
@@ -195,7 +195,7 @@ static void check_feature(data_t *data)
 		break;
 	case FEATURE_FBC:
 		igt_assert_f(intel_fbc_wait_until_enabled(data->drm_fd,
-							  data->pipe),
+							  data->crtc->pipe),
 			     "FBC disabled\n");
 		/* TODO: Add compression check here */
 		break;
@@ -205,7 +205,7 @@ static void check_feature(data_t *data)
 		psr_sink_error_check(data->debugfs_fd, PSR_MODE_1, data->output);
 		break;
 	case FEATURE_DRRS:
-		igt_assert_f(!intel_is_drrs_inactive(data->drm_fd, data->pipe),
+		igt_assert_f(!intel_is_drrs_inactive(data->drm_fd, data->crtc->pipe),
 			     "DRRS INACTIVE\n");
 		break;
 	case FEATURE_DEFAULT:
@@ -222,18 +222,17 @@ static void disable_features(data_t *data)
 	if (psr_sink_support(data->drm_fd, data->debugfs_fd, PSR_MODE_1, NULL))
 		psr_disable(data->drm_fd, data->debugfs_fd, NULL);
 
-	intel_drrs_disable(data->drm_fd, data->pipe);
+	intel_drrs_disable(data->drm_fd, data->crtc->pipe);
 }
 
 static void prepare(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_plane_t *primary;
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 
 	igt_create_color_fb(data->drm_fd, data->mode->hdisplay,
@@ -378,7 +377,7 @@ int igt_main()
 			for_each_crtc(&data.display, crtc) {
 				int valid_tests = 0;
 
-				data.pipe = crtc->pipe;
+				data.crtc = crtc;
 
 				for_each_valid_output_on_pipe(&data.display,
 							      crtc->pipe,
diff --git a/tests/intel/kms_dp_linktrain_fallback.c b/tests/intel/kms_dp_linktrain_fallback.c
index ad34b1fabc23..b7e02be2d8aa 100644
--- a/tests/intel/kms_dp_linktrain_fallback.c
+++ b/tests/intel/kms_dp_linktrain_fallback.c
@@ -40,7 +40,7 @@ typedef struct {
 	igt_display_t display;
 	drmModeModeInfo *mode;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	struct igt_fb fb;
 	struct igt_plane *primary;
 	int n_pipes;
@@ -96,7 +96,7 @@ static void setup_pipe_on_outputs(data_t *data,
 		      data->n_pipes, *output_count);
 
 	for_each_crtc(&data->display, crtc) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		if (i >= *output_count)
 			break;
 		/*
@@ -459,7 +459,6 @@ static bool run_lt_fallback_test(data_t *data)
 
 static void test_dsc_sst_fallback(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	bool non_dsc_mode_found = false;
 	bool dsc_fallback_successful = false;
 	int ret;
@@ -469,7 +468,7 @@ static void test_dsc_sst_fallback(data_t *data)
 	int output_count = 0;
 
 	igt_info("Checking DSC fallback on %s\n", igt_output_name(data->output));
-	data->pipe = PIPE_A;
+	data->crtc = igt_crtc_for_pipe(&data->display, PIPE_A);
 
 	igt_display_reset(&data->display);
 	igt_reset_link_params(data->drm_fd, data->output);
@@ -484,7 +483,7 @@ static void test_dsc_sst_fallback(data_t *data)
 				    &data->fb);
 		igt_output_override_mode(data->output, data->mode);
 		igt_output_set_crtc(data->output,
-				    igt_crtc_for_pipe(display, data->pipe));
+				    data->crtc);
 		data->primary = igt_output_get_plane_type(data->output,
 						DRM_PLANE_TYPE_PRIMARY);
 		igt_plane_set_fb(data->primary, &data->fb);
@@ -616,7 +615,7 @@ int igt_main()
 		igt_display_require(&data.display, data.drm_fd);
 		igt_display_require_output(&data.display);
 		for_each_crtc(&data.display, crtc) {
-			data.pipe = crtc->pipe;
+			data.crtc = crtc;
 			data.n_pipes++;
 		}
 		igt_install_exit_handler(igt_drm_debug_mask_reset_exit_handler);
diff --git a/tests/intel/kms_fb_coherency.c b/tests/intel/kms_fb_coherency.c
index 840da92e2e0e..1131555602d6 100644
--- a/tests/intel/kms_fb_coherency.c
+++ b/tests/intel/kms_fb_coherency.c
@@ -33,7 +33,7 @@ typedef struct {
 	struct igt_fb fb[2];
 	igt_output_t *output;
 	igt_plane_t *primary;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_crc_t ref_crc;
 	igt_pipe_crc_t *pipe_crc;
 	uint32_t devid;
@@ -48,7 +48,7 @@ static void prepare_crtc(data_t *data)
 	igt_display_reset(display);
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	mode = igt_output_get_mode(output);
 
@@ -65,7 +65,7 @@ static void prepare_crtc(data_t *data)
 	if (data->pipe_crc)
 		igt_pipe_crc_free(data->pipe_crc);
 
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 
 	/* get reference crc for the white fb */
@@ -226,7 +226,7 @@ static void select_valid_pipe_output_combo(data_t *data)
 	igt_display_t *display = &data->display;
 
 	for_each_crtc_with_valid_output(display, crtc, data->output) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		igt_display_reset(display);
 
 		igt_output_set_crtc(data->output,
diff --git a/tests/intel/kms_fbc_dirty_rect.c b/tests/intel/kms_fbc_dirty_rect.c
index 393b787ae4e8..54ac7266eafb 100644
--- a/tests/intel/kms_fbc_dirty_rect.c
+++ b/tests/intel/kms_fbc_dirty_rect.c
@@ -60,7 +60,7 @@ typedef struct {
 	drmModeModeInfo *mode;
 	igt_output_t *output;
 	igt_pipe_crc_t *pipe_crc;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	u32 format;
 
 	struct igt_fb fb[N_FBS];
@@ -122,7 +122,7 @@ set_fb_and_collect_crc(data_t *data, igt_plane_t *plane, struct igt_fb *fb,
 	igt_pipe_crc_start(data->pipe_crc);
 	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, crc);
 	igt_pipe_crc_stop(data->pipe_crc);
-	igt_assert_f(intel_fbc_is_enabled(data->drm_fd, data->pipe,
+	igt_assert_f(intel_fbc_is_enabled(data->drm_fd, data->crtc->pipe,
 					  IGT_LOG_INFO),
 					  "FBC is not enabled\n");
 }
@@ -404,16 +404,15 @@ static void cleanup(data_t *data)
 
 static bool prepare_test(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_display_reset(&data->display);
 
 	data->mode = igt_output_get_mode(data->output);
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+			    data->crtc);
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 
-	igt_require_f(intel_fbc_supported_on_chipset(data->drm_fd, data->pipe),
+	igt_require_f(intel_fbc_supported_on_chipset(data->drm_fd, data->crtc->pipe),
 		      "FBC not supported by the chipset on pipe\n");
 
 	if (psr_sink_support(data->drm_fd, data->debugfs_fd, PSR_MODE_1, NULL) ||
@@ -461,7 +460,7 @@ int igt_main()
 		data.feature = FEATURE_FBC;
 
 		for_each_crtc(&data.display, crtc) {
-			data.pipe = crtc->pipe;
+			data.crtc = crtc;
 			if (single_pipe)
 				break;
 			for_each_valid_output_on_pipe(&data.display,
@@ -486,7 +485,7 @@ int igt_main()
 		data.feature = FEATURE_FBC;
 
 		for_each_crtc(&data.display, crtc) {
-			data.pipe = crtc->pipe;
+			data.crtc = crtc;
 			if (single_pipe)
 				break;
 			for_each_valid_output_on_pipe(&data.display,
@@ -513,7 +512,7 @@ int igt_main()
 		data.feature = FEATURE_FBC;
 
 		for_each_crtc(&data.display, crtc) {
-			data.pipe = crtc->pipe;
+			data.crtc = crtc;
 			if (single_pipe)
 				break;
 			for_each_valid_output_on_pipe(&data.display,
diff --git a/tests/intel/kms_mmap_write_crc.c b/tests/intel/kms_mmap_write_crc.c
index 329605f30c15..48be830d8592 100644
--- a/tests/intel/kms_mmap_write_crc.c
+++ b/tests/intel/kms_mmap_write_crc.c
@@ -63,7 +63,7 @@ typedef struct {
 	struct igt_fb fb[2];
 	igt_output_t *output;
 	igt_plane_t *primary;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_crc_t ref_crc;
 	igt_pipe_crc_t *pipe_crc;
 	uint32_t devid;
@@ -189,7 +189,7 @@ static void prepare_crtc(data_t *data)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	mode = igt_output_get_mode(output);
 
@@ -206,7 +206,7 @@ static void prepare_crtc(data_t *data)
 	if (data->pipe_crc)
 		igt_pipe_crc_free(data->pipe_crc);
 
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 
 	/* get reference crc for the white fb */
@@ -300,7 +300,7 @@ int igt_main_args("n", NULL, NULL, opt_handler, NULL)
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output)) {
 				data.output = output;
-				data.pipe = crtc->pipe;
+				data.crtc = crtc;
 
 				igt_info("Using %d rounds for each pipe in the test\n", ROUNDS);
 				prepare_crtc(&data);
diff --git a/tests/intel/kms_pm_lpsp.c b/tests/intel/kms_pm_lpsp.c
index 43d58a8421e7..595c81f0e693 100644
--- a/tests/intel/kms_pm_lpsp.c
+++ b/tests/intel/kms_pm_lpsp.c
@@ -62,7 +62,7 @@ typedef struct {
 	igt_display_t display;
 	struct igt_fb fb;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 } data_t;
 
 static int max_dotclock;
@@ -153,12 +153,11 @@ static void test_cleanup(data_t *data)
 
 static bool test_constraint(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	drmModeModeInfo *mode;
 
 	igt_display_reset(&data->display);
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	mode = igt_output_get_mode(data->output);
 
@@ -245,7 +244,7 @@ int igt_main()
 						     "LPSP support on external panel from Gen13+ platform\n");
 
 				data.output = output;
-				data.pipe = crtc->pipe;
+				data.crtc = crtc;
 
 				if (!test_constraint(&data))
 					continue;
diff --git a/tests/intel/kms_psr2_sf.c b/tests/intel/kms_psr2_sf.c
index cb2f2fe70f80..bc38f8da360c 100644
--- a/tests/intel/kms_psr2_sf.c
+++ b/tests/intel/kms_psr2_sf.c
@@ -227,7 +227,7 @@ typedef struct {
 	cairo_t *cr;
 	uint32_t screen_changes;
 	int cur_x, cur_y;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	enum psr_mode psr_mode;
 	enum {
 		FEATURE_NONE  = 0,
@@ -396,7 +396,6 @@ static void plane_move_setup_square(data_t *data, igt_fb_t *fb, uint32_t h,
 
 static void prepare(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_output_t *output = data->output;
 	igt_plane_t *primary, *sprite = NULL, *cursor = NULL;
 	int fb_w, fb_h, x, y, view_w, view_h;
@@ -414,7 +413,7 @@ static void prepare(data_t *data)
 	}
 
 	igt_output_set_crtc(output,
-		            igt_crtc_for_pipe(display, data->pipe));
+		            data->crtc);
 
 	if (data->big_fb_test) {
 		fb_w = data->big_fb_width;
@@ -959,7 +958,7 @@ static void run(data_t *data)
 
 	if (data->fbc_flag == true && data->op_fbc_mode == FBC_ENABLED)
 		igt_assert_f(intel_fbc_wait_until_enabled(data->drm_fd,
-							  data->pipe),
+							  data->crtc->pipe),
 							  "FBC still disabled\n");
 
 	if (is_et_check_needed(data))
@@ -1041,11 +1040,11 @@ static void cleanup(data_t *data)
 
 static bool sel_fetch_pipe_combo_valid(data_t *data)
 {
-	if (data->devid < 14 && !IS_ALDERLAKE_P(data->devid) && data->pipe != PIPE_A)
+	if (data->devid < 14 && !IS_ALDERLAKE_P(data->devid) && data->crtc->pipe != PIPE_A)
 		return false;
 
 	if (data->output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP &&
-	    data->pipe != PIPE_A && data->pipe != PIPE_B)
+	    data->crtc->pipe != PIPE_A && data->crtc->pipe != PIPE_B)
 		return false;
 
 	return true;
@@ -1054,7 +1053,6 @@ static bool sel_fetch_pipe_combo_valid(data_t *data)
 static bool
 pipe_output_combo_valid(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	bool ret = psr_sink_support(data->drm_fd, data->debugfs_fd,
 				    data->psr_mode, data->output);
 	if (!ret)
@@ -1067,7 +1065,7 @@ pipe_output_combo_valid(data_t *data)
 	igt_display_reset(&data->display);
 
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 	if (!intel_pipe_output_combo_valid(&data->display))
 		ret = false;
 	igt_output_set_crtc(data->output, NULL);
@@ -1080,7 +1078,7 @@ static void run_dynamic_test_damage_areas(data_t data, int i, int coexist_featur
 	for (int j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 		if (j != FEATURE_NONE && !(coexist_features[i] & j))
 			continue;
-		igt_dynamic_f("pipe-%s-%s%s", kmstest_pipe_name(data.pipe),
+		igt_dynamic_f("pipe-%s-%s%s", igt_crtc_name(data.crtc),
 			      igt_output_name(data.output), coexist_feature_str(j)) {
 			data.coexist_feature = j;
 			for (int k = 1; k <= MAX_DAMAGE_AREAS; k++) {
@@ -1098,7 +1096,7 @@ static void run_dynamic_test(data_t data, int i, int coexist_features[])
 	for (int j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 		if (j != FEATURE_NONE && !(coexist_features[i] & j))
 			continue;
-		igt_dynamic_f("pipe-%s-%s%s", kmstest_pipe_name(data.pipe),
+		igt_dynamic_f("pipe-%s-%s%s", igt_crtc_name(data.crtc),
 			      igt_output_name(data.output), coexist_feature_str(j)) {
 			data.coexist_feature = j;
 			prepare(&data);
@@ -1113,7 +1111,7 @@ static void run_plane_move(data_t data, int i, int coexist_features[])
 	for (int j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 		if (j != FEATURE_NONE && !(coexist_features[i] & j))
 			continue;
-		igt_dynamic_f("pipe-%s-%s%s", kmstest_pipe_name(data.pipe),
+		igt_dynamic_f("pipe-%s-%s%s", igt_crtc_name(data.crtc),
 			      igt_output_name(data.output), coexist_feature_str(j)) {
 			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
 			data.coexist_feature = j;
@@ -1132,7 +1130,7 @@ static void run_plane_update_continuous(data_t data, int i, int coexist_features
 	for (int j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 		if (j != FEATURE_NONE && !(coexist_features[i] & j))
 			continue;
-		igt_dynamic_f("pipe-%s-%s%s", kmstest_pipe_name(data.pipe),
+		igt_dynamic_f("pipe-%s-%s%s", igt_crtc_name(data.crtc),
 			      igt_output_name(data.output), coexist_feature_str(j)) {
 			data.damage_area_count = 1;
 			if (data.op_fbc_mode == FBC_ENABLED)
@@ -1185,7 +1183,8 @@ int igt_main()
 
 		data.devid = intel_get_drm_devid(data.drm_fd);
 		disp_ver = intel_display_ver(data.devid);
-		fbc_chipset_support = intel_fbc_supported_on_chipset(data.drm_fd, data.pipe);
+		fbc_chipset_support = intel_fbc_supported_on_chipset(data.drm_fd,
+								     data.crtc->pipe);
 
 		data.damage_area_count = MAX_DAMAGE_AREAS;
 		data.primary_format = DRM_FORMAT_XRGB8888;
@@ -1198,7 +1197,7 @@ int igt_main()
 
 		for_each_crtc_with_valid_output(&data.display, crtc,
 						data.output) {
-			data.pipe = crtc->pipe;
+			data.crtc = crtc;
 			for (i = 0; i < ARRAY_SIZE(psr_status); i++) {
 				data.psr_mode = psr_status[i];
 				output_supports_pr_psr2_sel_fetch = pipe_output_combo_valid(&data);
@@ -1242,7 +1241,7 @@ int igt_main()
 						   append_psr_subtest[z],
 						   op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1263,7 +1262,7 @@ int igt_main()
 							   append_psr_subtest[z],
 							   op_str(data.op)) {
 					for (i = 0; i < n_crtcs; i++) {
-						data.pipe = crtcs[i]->pipe;
+						data.crtc = crtcs[i];
 						data.output = outputs[i];
 
 						if (!pipe_output_combo_valid(&data))
@@ -1284,7 +1283,7 @@ int igt_main()
 						   append_psr_subtest[z],
 						   op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1301,7 +1300,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1318,7 +1317,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1335,7 +1334,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1352,7 +1351,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%scursor-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1370,7 +1369,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%s%s-sf-dmg-area", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1386,7 +1385,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1403,7 +1402,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1420,7 +1419,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1438,7 +1437,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%s%s-sf-dmg-area", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
@@ -1458,7 +1457,7 @@ int igt_main()
 			igt_subtest_with_dynamic_f("%s%soverlay-%s-sf", append_fbc_subtest[y],
 						   append_psr_subtest[z], op_str(data.op)) {
 				for (i = 0; i < n_crtcs; i++) {
-					data.pipe = crtcs[i]->pipe;
+					data.crtc = crtcs[i];
 					data.output = outputs[i];
 
 					if (!pipe_output_combo_valid(&data))
diff --git a/tests/intel/kms_pwrite_crc.c b/tests/intel/kms_pwrite_crc.c
index 4728d252d467..bd536007c9a3 100644
--- a/tests/intel/kms_pwrite_crc.c
+++ b/tests/intel/kms_pwrite_crc.c
@@ -52,7 +52,7 @@ typedef struct {
 	struct igt_fb fb[2];
 	igt_output_t *output;
 	igt_plane_t *primary;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_crc_t ref_crc;
 	igt_pipe_crc_t *pipe_crc;
 	uint32_t devid;
@@ -125,7 +125,7 @@ static void prepare_crtc(data_t *data)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	mode = igt_output_get_mode(output);
 
@@ -142,7 +142,7 @@ static void prepare_crtc(data_t *data)
 	if (data->pipe_crc)
 		igt_pipe_crc_free(data->pipe_crc);
 
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 
 	/* get reference crc for the white fb */
@@ -173,7 +173,7 @@ static void run_test(data_t *data)
 	igt_display_t *display = &data->display;
 
 	for_each_crtc_with_valid_output(display, crtc, data->output) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		igt_display_reset(display);
 
 		igt_output_set_crtc(data->output,
diff --git a/tests/intel/perf_pmu.c b/tests/intel/perf_pmu.c
index 91f80f2e0a54..787fe81d21ca 100644
--- a/tests/intel/perf_pmu.c
+++ b/tests/intel/perf_pmu.c
@@ -1040,7 +1040,7 @@ typedef struct {
 	igt_display_t display;
 	struct igt_fb primary_fb;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 } data_t;
 
 static void prepare_crtc(data_t *data, int fd, igt_output_t *output)
@@ -1051,7 +1051,7 @@ static void prepare_crtc(data_t *data, int fd, igt_output_t *output)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	/* create and set the primary plane fb */
 	mode = igt_output_get_mode(output);
@@ -1066,7 +1066,7 @@ static void prepare_crtc(data_t *data, int fd, igt_output_t *output)
 
 	igt_display_commit(display);
 
-	igt_wait_for_vblank(igt_crtc_for_pipe(display, data->pipe));
+	igt_wait_for_vblank(data->crtc);
 }
 
 static void cleanup_crtc(data_t *data, int fd, igt_output_t *output)
@@ -1192,7 +1192,7 @@ event_wait(int gem_fd, const intel_ctx_t *ctx,
 
 		gem_write(gem_fd, obj.handle, 0, batch, sizeof(batch));
 
-		data.pipe = crtc->pipe;
+		data.crtc = crtc;
 		prepare_crtc(&data, gem_fd, output);
 
 		fd = open_pmu(gem_fd,
@@ -1202,7 +1202,7 @@ event_wait(int gem_fd, const intel_ctx_t *ctx,
 
 		igt_fork_helper(&waiter) {
 			const uint32_t pipe_id_flag =
-					kmstest_get_vbl_flag(data.pipe);
+					kmstest_get_vbl_flag(data.crtc->pipe);
 
 			for (;;) {
 				union drm_wait_vblank vbl = { };
diff --git a/tests/intel/prime_mmap_kms.c b/tests/intel/prime_mmap_kms.c
index 74fe05ca9605..10e450114d0e 100644
--- a/tests/intel/prime_mmap_kms.c
+++ b/tests/intel/prime_mmap_kms.c
@@ -151,7 +151,7 @@ typedef struct {
 	struct igt_fb fb;
 	igt_output_t *output;
 	igt_plane_t *primary;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 } gpu_process_t;
 
 static void cleanup_crtc(gpu_process_t *gpu)
@@ -175,7 +175,7 @@ static void prepare_crtc(gpu_process_t *gpu)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, gpu->pipe));
+			    gpu->crtc);
 
 	mode = igt_output_get_mode(output);
 
@@ -207,7 +207,7 @@ static void run_test(gpu_process_t *gpu)
 		int prime_fd;
 
 		gpu->output = output;
-		gpu->pipe = crtc->pipe;
+		gpu->crtc = crtc;
 
 		prepare_crtc(gpu);
 
diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 1a4941ef76b8..014b7f3476be 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -140,7 +140,7 @@ typedef struct {
 	int flip_count;
 	int frame_count;
 	bool flip_pending;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	bool alternate_sync_async;
 	bool suspend_resume;
 	bool hang;
@@ -292,7 +292,6 @@ static void require_overlay_flip_support(data_t *data)
 
 static void test_init(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	drmModeModeInfo *mode;
 
 	igt_display_reset(&data->display);
@@ -300,11 +299,11 @@ static void test_init(data_t *data)
 
 	mode = igt_output_get_mode(data->output);
 
-	data->crtc_id = igt_crtc_for_pipe(display, data->pipe)->crtc_id;
+	data->crtc_id = data->crtc->crtc_id;
 	data->refresh_rate = mode->vrefresh;
 
 	igt_output_set_crtc(data->output,
-		            igt_crtc_for_pipe(display, data->pipe));
+		            data->crtc);
 
 	data->plane = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 	if (data->overlay_path)
@@ -912,7 +911,7 @@ static void run_test(data_t *data, void (*test)(data_t *))
 		require_atomic_async_cap(data);
 
 	for_each_crtc_with_valid_output(display, crtc, data->output) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		igt_display_reset(display);
 
 		igt_output_set_crtc(data->output,
@@ -980,7 +979,7 @@ static void run_test_with_async_format_modifiers(data_t *data, void (*test)(data
 	igt_vec_init(&tested_formats, sizeof(struct format_mod));
 
 	for_each_crtc_with_valid_output(&data->display, crtc, data->output) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		test_init(data);
 
 		igt_assert_f(data->plane->async_format_mod_count > 0,
@@ -1034,7 +1033,7 @@ static void run_test_with_modifiers(data_t *data, void (*test)(data_t *))
 		require_atomic_async_cap(data);
 
 	for_each_crtc_with_valid_output(&data->display, crtc, data->output) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		test_init(data);
 
 		igt_require_f(data->plane->async_format_mod_count > 0,
diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 61a7de8eb00b..b6b155130edb 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -146,7 +146,7 @@ typedef struct {
 	struct igt_fb primary_fb[MAXCURSORBUFFER];
 	struct igt_fb fb;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	int left, right, top, bottom;
 	int screenw, screenh;
 	int refresh;
@@ -209,13 +209,12 @@ static void cursor_enable(data_t *data)
 
 static void cursor_disable(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_plane_set_fb(data->cursor, NULL);
 	igt_plane_set_position(data->cursor, 0, 0);
 	igt_display_commit(&data->display);
 
 	/* do this wait here so it will not need to be added everywhere */
-	igt_wait_for_vblank_count(igt_crtc_for_pipe(display, data->pipe),
+	igt_wait_for_vblank_count(data->crtc,
 				  data->vblank_wait_count);
 }
 
@@ -241,7 +240,7 @@ static bool chv_cursor_broken(data_t *data, int x)
 	if (x >= 0)
 		return false;
 
-	return IS_CHERRYVIEW(devid) && data->pipe == PIPE_C;
+	return IS_CHERRYVIEW(devid) && data->crtc->pipe == PIPE_C;
 }
 
 static bool cursor_visible(data_t *data, int x, int y)
@@ -300,7 +299,7 @@ static void do_single_test(data_t *data, int x, int y, bool hw_test,
 		igt_display_commit(display);
 
 		/* Extra vblank wait is because nonblocking cursor ioctl */
-		igt_wait_for_vblank_count(igt_crtc_for_pipe(display, data->pipe),
+		igt_wait_for_vblank_count(data->crtc,
 					  data->vblank_wait_count);
 
 		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, hwcrc);
@@ -349,7 +348,7 @@ static void do_single_test(data_t *data, int x, int y, bool hw_test,
 		 * synchronized to the same frame on AMD HW
 		 */
 		if (is_amdgpu_device(data->drm_fd))
-			igt_wait_for_vblank_count(igt_crtc_for_pipe(display, data->pipe),
+			igt_wait_for_vblank_count(data->crtc,
 						  data->vblank_wait_count);
 
 		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc);
@@ -580,7 +579,7 @@ static void prepare_crtc(data_t *data, int cursor_w, int cursor_h)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	/* create and set the primary plane fbs */
 	mode = igt_output_get_mode(output);
@@ -606,7 +605,7 @@ static void prepare_crtc(data_t *data, int cursor_w, int cursor_h)
 	/* create the pipe_crc object for this pipe */
 	if (data->pipe_crc)
 		igt_pipe_crc_free(data->pipe_crc);
-	data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new(data->crtc,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
 
 	/* x/y position where the cursor is still fully visible */
@@ -720,7 +719,6 @@ static void do_timed_cursor_fb_pos_change(data_t *data, enum cursor_change chang
 
 static void timed_cursor_changes(data_t *data, void (changefunc)(data_t *, enum cursor_change))
 {
-	igt_display_t *display = &data->display;
 	igt_crc_t crc1, crc2;
 
 	/* Legacy cursor API does not guarantee that the cursor update happens at vBlank.
@@ -735,7 +733,7 @@ static void timed_cursor_changes(data_t *data, void (changefunc)(data_t *, enum
 	igt_display_commit(&data->display);
 
 	/* Extra vblank wait is because nonblocking cursor ioctl */
-	igt_wait_for_vblank_count(igt_crtc_for_pipe(display, data->pipe),
+	igt_wait_for_vblank_count(data->crtc,
 				  data->vblank_wait_count);
 
 	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &crc1);
@@ -784,7 +782,7 @@ static bool cursor_size_supported(data_t *data, int w, int h)
 
 	igt_display_reset(display);
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	mode = igt_output_get_mode(output);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
@@ -889,7 +887,7 @@ static bool valid_pipe_output_combo(data_t *data)
 
 	igt_display_reset(display);
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	if (intel_pipe_output_combo_valid(display))
 		ret = true;
@@ -1013,7 +1011,7 @@ static void run_size_tests(data_t *data, int w, int h)
 				if (execution_constraint(crtc->pipe))
 					continue;
 
-				data->pipe = crtc->pipe;
+				data->crtc = crtc;
 
 				if (!valid_pipe_output_combo(data))
 					continue;
@@ -1054,7 +1052,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 
 			if (!valid_pipe_output_combo(data))
 				continue;
@@ -1075,7 +1073,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 
 			if (!valid_pipe_output_combo(data))
 				continue;
@@ -1096,7 +1094,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 
 			if (!valid_pipe_output_combo(data))
 				continue;
@@ -1126,7 +1124,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 
 			if (!valid_pipe_output_combo(data))
 				continue;
@@ -1146,7 +1144,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 
 			if (!valid_pipe_output_combo(data))
 				continue;
@@ -1173,7 +1171,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 			data->flags = TEST_DPMS;
 
 			if (!valid_pipe_output_combo(data))
@@ -1195,7 +1193,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 			data->flags = TEST_SUSPEND;
 
 			if (!valid_pipe_output_combo(data))
@@ -1220,7 +1218,7 @@ static void run_tests_on_pipe(data_t *data)
 			if (execution_constraint(crtc->pipe))
 				continue;
 
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 
 			if (!valid_pipe_output_combo(data))
 				continue;
diff --git a/tests/kms_cursor_edge_walk.c b/tests/kms_cursor_edge_walk.c
index 2a29cd62f408..08c9de601ce3 100644
--- a/tests/kms_cursor_edge_walk.c
+++ b/tests/kms_cursor_edge_walk.c
@@ -70,7 +70,7 @@ typedef struct {
 	struct igt_fb primary_fb;
 	struct igt_fb fb;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_crc_t ref_crc;
 	int curw, curh; /* cursor size */
 	igt_pipe_crc_t *pipe_crc;
@@ -114,7 +114,6 @@ static void create_cursor_fb(data_t *data, int cur_w, int cur_h)
 static void cursor_move(data_t *data, int x, int y, int i)
 {
 	int crtc_id = data->output->config.crtc->crtc_id;
-	igt_display_t *display = &data->display;
 
 	igt_debug("[%d] x=%d, y=%d\n", i, x, y);
 
@@ -124,9 +123,9 @@ static void cursor_move(data_t *data, int x, int y, int i)
 	 * fails). So let's accept a failure from the ioctl in that case.
 	 */
 	igt_assert(drmModeMoveCursor(data->drm_fd, crtc_id, x, y) == 0 ||
-		   (IS_CHERRYVIEW(data->devid) && data->pipe == PIPE_C &&
+		   (IS_CHERRYVIEW(data->devid) && data->crtc->pipe == PIPE_C &&
 		    x < 0 && x > -data->curw));
-	igt_wait_for_vblank(igt_crtc_for_pipe(display, data->pipe));
+	igt_wait_for_vblank(data->crtc);
 }
 
 #define XSTEP 8
@@ -267,7 +266,7 @@ static void prepare_crtc(data_t *data)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(data->output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	mode = igt_output_get_mode(data->output);
 	igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
@@ -284,7 +283,7 @@ static void prepare_crtc(data_t *data)
 	data->jump_y = (mode->vdisplay - data->curh) / 2;
 
 	/* create the pipe_crc object for this pipe */
-	data->pipe_crc = igt_crtc_crc_new_nonblock(igt_crtc_for_pipe(display, data->pipe),
+	data->pipe_crc = igt_crtc_crc_new_nonblock(data->crtc,
 						   IGT_PIPE_CRC_SOURCE_AUTO);
 
 	/* get reference crc w/o cursor */
@@ -397,7 +396,7 @@ int igt_main_args("", long_opts, help_str, opt_handler, &data)
 				for_each_crtc_with_single_output(&data.display,
 								 crtc,
 								 data.output) {
-					data.pipe = crtc->pipe;
+					data.crtc = crtc;
 					if (!extended && crtc->pipe != active_pipes[0] &&
 					    crtc->pipe != active_pipes[last_pipe])
 						continue;
diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c
index 9f6b2df9ed7c..5edffb649ef4 100644
--- a/tests/kms_invalid_mode.c
+++ b/tests/kms_invalid_mode.c
@@ -64,7 +64,7 @@ typedef struct _data data_t;
 
 struct _data {
 	int drm_fd;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_display_t display;
 	igt_output_t *output;
 	drmModeResPtr res;
@@ -255,7 +255,6 @@ adjust_mode_overflow_vrefresh(data_t *data, drmModeModeInfoPtr mode)
 static void
 test_output(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_output_t *output = data->output;
 	drmModeModeInfo mode;
 	struct igt_fb fb;
@@ -278,7 +277,7 @@ test_output(data_t *data)
 
 	kmstest_unset_all_crtcs(data->drm_fd, data->res);
 
-	crtc_id = igt_crtc_for_pipe(display, data->pipe)->crtc_id;
+	crtc_id = data->crtc->crtc_id;
 
 	ret = drmModeSetCrtc(data->drm_fd, crtc_id,
 			     fb.fb_id, 0, 0,
@@ -370,7 +369,7 @@ int igt_main()
 					      igt_crtc_name(crtc),
 					      igt_output_name(output)) {
 					data.output = output;
-					data.pipe = crtc->pipe;
+					data.crtc = crtc;
 					data.adjust_mode = subtests[i].adjust_mode;
 					test_output(&data);
 				}
diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index fb3980fade53..8b4e5809d14e 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -66,7 +66,7 @@ typedef struct {
 	igt_display_t display;
 	uint32_t devid;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	struct igt_fb fb_primary;
 	struct igt_fb fb_plane[2];
 	struct {
@@ -273,7 +273,7 @@ test_planes_on_pipe(data_t *data, uint64_t modifier)
 	igt_plane_t *plane;
 	unsigned tested = 0;
 
-	for_each_plane_on_pipe(&data->display, data->pipe, plane)
+	for_each_plane_on_pipe(&data->display, data->crtc->pipe, plane)
 		tested += test_planes_on_pipe_with_output(data, plane, modifier);
 
 	igt_assert(tested > 0);
@@ -289,7 +289,6 @@ static void test_cleanup(data_t *data)
 
 static void run_test(data_t *data, uint64_t modifier)
 {
-	igt_display_t *display = &data->display;
 	igt_crtc_t *crtc;
 	igt_output_t *output;
 
@@ -299,17 +298,17 @@ static void run_test(data_t *data, uint64_t modifier)
 	for_each_crtc(&data->display, crtc) {
 		for_each_valid_output_on_pipe(&data->display, crtc->pipe,
 					      output) {
-			data->pipe = crtc->pipe;
+			data->crtc = crtc;
 			data->output = output;
 
 			igt_display_reset(&data->display);
 			igt_output_set_crtc(data->output,
-					    igt_crtc_for_pipe(display, data->pipe));
+					    data->crtc);
 
 			if (!intel_pipe_output_combo_valid(&data->display))
 				continue;
 
-			data->pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+			data->pipe_crc = igt_crtc_crc_new(data->crtc,
 							  IGT_PIPE_CRC_SOURCE_AUTO);
 
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
diff --git a/tests/kms_sequence.c b/tests/kms_sequence.c
index ff1c1338c063..05f9149391a1 100644
--- a/tests/kms_sequence.c
+++ b/tests/kms_sequence.c
@@ -74,7 +74,7 @@ typedef struct {
 	struct igt_fb primary_fb;
 	igt_output_t *output;
 	uint32_t crtc_id;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	unsigned int flags;
 #define IDLE 1
 #define BUSY 2
@@ -106,7 +106,7 @@ static void prepare_crtc(data_t *data, int fd, igt_output_t *output)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, data->pipe));
+			    data->crtc);
 
 	/* create and set the primary plane fb */
 	mode = igt_output_get_mode(output);
@@ -123,7 +123,7 @@ static void prepare_crtc(data_t *data, int fd, igt_output_t *output)
 
 	igt_display_commit(display);
 
-	igt_wait_for_vblank(igt_crtc_for_pipe(display, data->pipe));
+	igt_wait_for_vblank(data->crtc);
 }
 
 static void cleanup_crtc(data_t *data, int fd, igt_output_t *output)
@@ -171,7 +171,7 @@ static void run_test(data_t *data, int fd, void (*testfunc)(data_t *, int, int))
 
 	igt_info("Beginning %s on pipe %s, connector %s (%d threads)\n",
 		 igt_subtest_name(),
-		 kmstest_pipe_name(data->pipe),
+		 igt_crtc_name(data->crtc),
 		 igt_output_name(output),
 		 nchildren);
 
@@ -199,7 +199,7 @@ static void run_test(data_t *data, int fd, void (*testfunc)(data_t *, int, int))
 
 	igt_info("\n%s on pipe %s, connector %s: PASSED\n\n",
 		 igt_subtest_name(),
-		 kmstest_pipe_name(data->pipe),
+		 igt_crtc_name(data->crtc),
 		 igt_output_name(output));
 
 	/* cleanup what prepare_crtc() has done */
@@ -321,7 +321,7 @@ int igt_main()
 					igt_dynamic_f("pipe-%s-%s",
 						      igt_crtc_name(crtc),
 						      igt_output_name(output)) {
-						data.pipe = crtc->pipe;
+						data.crtc = crtc;
 						data.output = output;
 						data.flags = m->flags;
 						run_test(&data, fd, f->func);
diff --git a/tests/nouveau_crc.c b/tests/nouveau_crc.c
index b2f9f3bdd08d..3137884dcfc6 100644
--- a/tests/nouveau_crc.c
+++ b/tests/nouveau_crc.c
@@ -31,7 +31,7 @@ IGT_TEST_DESCRIPTION(
 "such as context flipping.");
 
 typedef struct {
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	int drm_fd;
 	int nv_crc_dir;
 	igt_display_t display;
@@ -105,7 +105,6 @@ static void destroy_crc_colors(data_t *data, struct color_fb *colors, size_t len
  */
 static void test_ctx_flip_detection(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	struct color_fb colors[] = {
 		HEX_COLOR(0xFF, 0x00, 0x18),
 		HEX_COLOR(0xFF, 0xA5, 0x2C),
@@ -123,7 +122,7 @@ static void test_ctx_flip_detection(data_t *data)
 	int start = -1, frame, start_color = -1, i;
 	bool found_skip = false;
 
-	pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	pipe_crc = igt_crtc_crc_new(data->crtc,
 				    IGT_PIPE_CRC_SOURCE_AUTO);
 
 	create_crc_colors(data, colors, n_colors, pipe_crc);
@@ -222,7 +221,6 @@ static void test_ctx_flip_detection(data_t *data)
  */
 static void test_ctx_flip_skip_current_frame(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	struct color_fb colors[] = {
 		{ .r = 1.0, .g = 0.0, .b = 0.0 },
 		{ .r = 0.0, .g = 1.0, .b = 0.0 },
@@ -235,7 +233,7 @@ static void test_ctx_flip_skip_current_frame(data_t *data)
 	const int n_colors = ARRAY_SIZE(colors);
 	const int n_crcs = 30;
 
-	pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	pipe_crc = igt_crtc_crc_new(data->crtc,
 				    IGT_PIPE_CRC_SOURCE_AUTO);
 	create_crc_colors(data, colors, n_colors, pipe_crc);
 
@@ -265,11 +263,10 @@ static void test_ctx_flip_skip_current_frame(data_t *data)
 
 static void test_ctx_flip_threshold_reset_after_capture(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	igt_pipe_crc_t *pipe_crc;
 	uint32_t value = 0;
 
-	pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	pipe_crc = igt_crtc_crc_new(data->crtc,
 				    IGT_PIPE_CRC_SOURCE_AUTO);
 
 	set_crc_flip_threshold(data, 5);
@@ -285,8 +282,7 @@ static void test_ctx_flip_threshold_reset_after_capture(data_t *data)
 
 static void test_source(data_t *data, const char *source)
 {
-	igt_display_t *display = &data->display;
-	igt_pipe_crc_t *pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	igt_pipe_crc_t *pipe_crc = igt_crtc_crc_new(data->crtc,
 						    source);
 	igt_crc_t *crcs;
 
@@ -303,7 +299,6 @@ static void test_source(data_t *data, const char *source)
 
 static void test_source_outp_inactive(data_t *data)
 {
-	igt_display_t *display = &data->display;
 	struct color_fb colors[] = {
 		{ .r = 1.0, .g = 0.0, .b = 0.0 },
 		{ .r = 0.0, .g = 1.0, .b = 0.0 },
@@ -311,7 +306,7 @@ static void test_source_outp_inactive(data_t *data)
 	igt_pipe_crc_t *pipe_crc;
 	const int n_colors = ARRAY_SIZE(colors);
 
-	pipe_crc = igt_crtc_crc_new(igt_crtc_for_pipe(display, data->pipe),
+	pipe_crc = igt_crtc_crc_new(data->crtc,
 				    "outp-inactive");
 	create_crc_colors(data, colors, n_colors, pipe_crc);
 
@@ -344,8 +339,9 @@ int igt_main()
 		igt_fixture() {
 			int dir;
 
-			data.pipe = pipe;
-			igt_display_require_output_on_pipe(&data.display, pipe);
+			data.crtc = igt_crtc_for_pipe(&data.display, pipe);
+			igt_display_require_output_on_pipe(&data.display,
+							   data.crtc->pipe);
 
 			/* Disable the output from the previous iteration of pipe tests, if there is
 			 * one
@@ -355,14 +351,15 @@ int igt_main()
 				igt_display_commit(&data.display);
 			}
 
-			data.output = igt_get_single_output_for_pipe(&data.display, pipe);
+			data.output = igt_get_single_output_for_pipe(&data.display,
+								     data.crtc->pipe);
 			data.mode = igt_output_get_mode(data.output);
 
 			/* None of these tests need to perform modesets, just page flips. So running
 			 * display setup here is fine
 			 */
 			igt_output_set_crtc(data.output,
-					    igt_crtc_for_pipe(data.output->display, pipe));
+					    data.crtc);
 			data.primary = igt_output_get_plane(data.output, 0);
 			igt_create_color_fb(data.drm_fd,
 					    data.mode->hdisplay,
@@ -374,7 +371,9 @@ int igt_main()
 			igt_plane_set_fb(data.primary, &data.default_fb);
 			igt_display_commit(&data.display);
 
-			dir = igt_debugfs_crtc_dir(data.drm_fd, pipe, O_DIRECTORY);
+			dir = igt_debugfs_crtc_dir(data.drm_fd,
+						   data.crtc->pipe,
+						   O_DIRECTORY);
 			igt_require_fd(dir);
 			data.nv_crc_dir = openat(dir, "nv_crc", O_DIRECTORY);
 			close(dir);
diff --git a/tests/vmwgfx/vmw_prime.c b/tests/vmwgfx/vmw_prime.c
index 570bcc993496..0640b2476dc8 100644
--- a/tests/vmwgfx/vmw_prime.c
+++ b/tests/vmwgfx/vmw_prime.c
@@ -174,7 +174,7 @@ struct gpu_process_t {
 	struct vmw_surface *fb_surface;
 	igt_output_t *output;
 	igt_plane_t *primary;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	igt_crc_t reference_tri_crc;
 };
 
@@ -204,7 +204,7 @@ static void prepare_crtc(struct gpu_process_t *gpu)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, gpu->pipe));
+			    gpu->crtc);
 
 	mode = igt_output_get_mode(output);
 
@@ -231,7 +231,7 @@ static void prepare_crtc_surface(struct gpu_process_t *gpu)
 
 	/* select the pipe we want to use */
 	igt_output_set_crtc(output,
-			    igt_crtc_for_pipe(display, gpu->pipe));
+			    gpu->crtc);
 
 	mode = igt_output_get_mode(output);
 
@@ -297,7 +297,7 @@ static void draw_triangle_3d(struct gpu_process_t *gpu, uint32_t draw_flags)
 		int prime_fd;
 
 		gpu->output = output;
-		gpu->pipe = crtc->pipe;
+		gpu->crtc = crtc;
 
 		prepare_crtc(gpu);
 		pipe_crc = igt_pipe_crc_new(gpu->mdevice.drm_fd, crtc->pipe,
@@ -364,7 +364,7 @@ static void draw_dumb_buffer(struct gpu_process_t *gpu)
 
 	for_each_crtc_with_valid_output(display, crtc, output) {
 		gpu->output = output;
-		gpu->pipe = crtc->pipe;
+		gpu->crtc = crtc;
 
 		prepare_crtc_surface(gpu);
 		pipe_crc = igt_pipe_crc_new(gpu->mdevice.drm_fd, crtc->pipe,
diff --git a/tools/intel_hdcp.c b/tools/intel_hdcp.c
index cd5d2b6be108..266ee196862d 100644
--- a/tools/intel_hdcp.c
+++ b/tools/intel_hdcp.c
@@ -28,7 +28,7 @@ typedef struct data {
 	struct igt_fb fb;
 	int height, width;
 	igt_output_t *output;
-	enum pipe pipe;
+	igt_crtc_t *crtc;
 	enum hdcp_type hdcp_type;
 	int user_cmd;
 	bool running;
@@ -628,7 +628,7 @@ static void test_init(data_t *data)
 	igt_display_reset(&data->display);
 
 	for_each_crtc_with_valid_output(&data->display, crtc, data->output) {
-		data->pipe = crtc->pipe;
+		data->crtc = crtc;
 		if (!igt_output_has_prop(data->output, IGT_CONNECTOR_CONTENT_PROTECTION))
 			continue;
 
-- 
2.52.0


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

* [PATCH i-g-t 21/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 4
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (19 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 20/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 3 Ville Syrjala
@ 2026-02-20 14:01 ` Ville Syrjala
  2026-02-20 17:33 ` ✓ Xe.CI.BAT: success for tests/kms: More igt_crtc_t conversions Patchwork
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Ville Syrjala @ 2026-02-20 14:01 UTC (permalink / raw)
  To: igt-dev

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

Convert several kms tests to use igt_crtc_t instead
of enum pipe. This covers the remaining simple
cases.

 #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_cursor_overlay.c             | 14 ++--
 .../kms_chamelium_sharpness_filter.c          | 20 +++---
 tests/intel/kms_cdclk.c                       | 16 +++--
 tests/intel/kms_flip_tiling.c                 | 12 ++--
 tests/intel/kms_pipe_stress.c                 | 65 +++++++++++--------
 tests/kms_concurrent.c                        | 33 +++++-----
 tests/kms_content_protection.c                |  5 +-
 tests/kms_cursor_crc.c                        | 26 ++++----
 tests/kms_hdr.c                               | 28 ++++----
 tests/kms_plane_cursor.c                      |  8 +--
 10 files changed, 119 insertions(+), 108 deletions(-)

diff --git a/tests/amdgpu/amd_cursor_overlay.c b/tests/amdgpu/amd_cursor_overlay.c
index 8d3ef31c936f..73e1cbcc7919 100644
--- a/tests/amdgpu/amd_cursor_overlay.c
+++ b/tests/amdgpu/amd_cursor_overlay.c
@@ -84,12 +84,12 @@ typedef struct data {
 } data_t;
 
 /* Retuns the number of available overlay planes. */
-static int get_overlay_planes_count(igt_display_t *display, enum pipe pipe)
+static int get_overlay_planes_count(igt_display_t *display, igt_crtc_t *crtc)
 {
 	int count = 0;
 	igt_plane_t *plane;
 
-	for_each_plane_on_pipe(display, pipe, plane)
+	for_each_plane_on_pipe(display, crtc->pipe, plane)
 		if (plane->type == DRM_PLANE_TYPE_OVERLAY)
 			count++;
 
@@ -130,11 +130,9 @@ static bool can_support_all_overlay_planes(int available_overlay_planes, int fam
 }
 
 /* Common test setup. */
-static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output,
+static void test_init(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
 		      unsigned int flags, int available_overlay_planes)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe_id);
 	int i;
 
 	data->crtc = crtc;
@@ -487,7 +485,7 @@ int igt_main()
 					crtc);
 
 				available_overlay_planes = get_overlay_planes_count(display,
-										    crtc->pipe);
+										    crtc);
 
 				/* Require at least one overlay plane. */
 				if (!available_overlay_planes)
@@ -503,7 +501,9 @@ int igt_main()
 					igt_skip("%s subtest requires 3 overlay planes with a supported DCN.\n",
 						 tests[i].name);
 
-				test_init(&data, crtc->pipe, output,
+				test_init(&data,
+					  crtc,
+					  output,
 					  tests[i].flags,
 					  available_overlay_planes);
 
diff --git a/tests/chamelium/kms_chamelium_sharpness_filter.c b/tests/chamelium/kms_chamelium_sharpness_filter.c
index b7a70d4a2f15..a68b6c80ae16 100644
--- a/tests/chamelium/kms_chamelium_sharpness_filter.c
+++ b/tests/chamelium/kms_chamelium_sharpness_filter.c
@@ -38,10 +38,8 @@ typedef struct {
 	int port_count;
 } data_t;
 
-static bool pipe_output_combo_valid(data_t *data, enum pipe pipe)
+static bool pipe_output_combo_valid(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	bool ret = true;
 
 	igt_output_set_crtc(data->output,
@@ -177,10 +175,8 @@ static void test_t(data_t *data, igt_plane_t *primary,
 		     "Observed: Frame[0]==Frame[1]: %d, Frame[1]==Frame[2]: %d, Frame[0]==Frame[2]: %d, Frame[1]==Frame[3]: %d\n", match[0], match[1], match[2], match[3]);
 }
 
-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);
@@ -217,16 +213,15 @@ static int test_setup(data_t *data, enum pipe p)
 	return -1;
 }
 
-static void test_sharpness_filter(data_t *data,  enum pipe p)
+static void test_sharpness_filter(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, p);
-	int port_idx = test_setup(data, crtc->pipe);
+	int port_idx = test_setup(data,
+				  crtc);
 
 	igt_require(port_idx >= 0);
 	igt_require(igt_crtc_has_prop(crtc, IGT_CRTC_SHARPNESS_STRENGTH));
 
-	if (!pipe_output_combo_valid(data, crtc->pipe))
+	if (!pipe_output_combo_valid(data, crtc))
 		return;
 
 	igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), data->output->name)
@@ -243,7 +238,8 @@ run_sharpness_filter_test(data_t *data)
 	igt_subtest_with_dynamic("filter-basic") {
 		for_each_crtc(display, crtc) {
 			data->filter_strength = MID_FILTER_STRENGTH;
-			test_sharpness_filter(data, crtc->pipe);
+			test_sharpness_filter(data,
+					      crtc);
 		}
 	}
 }
diff --git a/tests/intel/kms_cdclk.c b/tests/intel/kms_cdclk.c
index eb8b79c447bc..9f2b81985361 100644
--- a/tests/intel/kms_cdclk.c
+++ b/tests/intel/kms_cdclk.c
@@ -128,10 +128,10 @@ static void do_cleanup_display(igt_display_t *dpy)
 	igt_display_commit2(dpy, dpy->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 }
 
-static void test_plane_scaling(data_t *data, enum pipe pipe, igt_output_t *output)
+static void test_plane_scaling(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);
 	int cdclk_ref, cdclk_new;
 	struct igt_fb fb;
 	igt_plane_t *primary;
@@ -184,10 +184,10 @@ static void test_plane_scaling(data_t *data, enum pipe pipe, igt_output_t *outpu
 	}
 }
 
-static void test_mode_transition(data_t *data, enum pipe pipe, igt_output_t *output)
+static void test_mode_transition(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);
 	int cdclk_ref, cdclk_new;
 	struct igt_fb fb;
 	igt_plane_t *primary;
@@ -338,9 +338,13 @@ static void run_cdclk_test(data_t *data, uint32_t flags)
 
 		igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), output->name) {
 			if (flags & TEST_PLANESCALING)
-				test_plane_scaling(data, crtc->pipe, output);
+				test_plane_scaling(data,
+						   crtc,
+						   output);
 			if (flags & TEST_MODETRANSITION)
-				test_mode_transition(data, crtc->pipe, output);
+				test_mode_transition(data,
+						     crtc,
+						     output);
 		}
 	}
 }
diff --git a/tests/intel/kms_flip_tiling.c b/tests/intel/kms_flip_tiling.c
index 54446f2478ae..beb963287dba 100644
--- a/tests/intel/kms_flip_tiling.c
+++ b/tests/intel/kms_flip_tiling.c
@@ -67,13 +67,12 @@ static void pipe_crc_free(data_t *data)
 	data->pipe_crc = NULL;
 }
 
-static void pipe_crc_new(data_t *data, enum pipe pipe)
+static void pipe_crc_new(data_t *data, igt_crtc_t *crtc)
 {
-	igt_display_t *display = &data->display;
 	if (data->pipe_crc)
 		return;
 
-	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_assert(data->pipe_crc);
 	igt_pipe_crc_start(data->pipe_crc);
@@ -108,7 +107,8 @@ static uint64_t pageflip_timeout_us(drmModeModeInfo *mode)
 }
 
 static void
-test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t modifier[2])
+test_flip_tiling(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
+		 uint64_t modifier[2])
 {
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
@@ -139,7 +139,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 	igt_require_f(try_commit(&data->display) == 0,
 		      "commit failed with " IGT_MODIFIER_FMT "\n",
 		      IGT_MODIFIER_ARGS(modifier[1]));
-	pipe_crc_new(data, pipe);
+	pipe_crc_new(data, crtc);
 	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &reference_crc);
 
 	/* Commit the first fb. */
@@ -266,7 +266,7 @@ int igt_main()
 						      igt_fb_modifier_name(modifier[0]),
 						      igt_fb_modifier_name(modifier[1]))
 						test_flip_tiling(&data,
-								 crtc->pipe,
+								 crtc,
 								 output,
 								 modifier);
 
diff --git a/tests/intel/kms_pipe_stress.c b/tests/intel/kms_pipe_stress.c
index 47e7524c6aa4..7b7a65ff5630 100644
--- a/tests/intel/kms_pipe_stress.c
+++ b/tests/intel/kms_pipe_stress.c
@@ -315,22 +315,22 @@ static void *gpu_load(void *ptr)
 	return NULL;
 }
 
-static inline uint32_t pipe_select(enum pipe pipe)
+static inline uint32_t pipe_select(igt_crtc_t *crtc)
 {
-	if (pipe > 1)
-		return pipe << DRM_VBLANK_HIGH_CRTC_SHIFT;
-	else if (pipe > 0)
+	if (crtc->pipe > 1)
+		return crtc->pipe << DRM_VBLANK_HIGH_CRTC_SHIFT;
+	else if (crtc->pipe > 0)
 		return DRM_VBLANK_SECONDARY;
 	else
 		return 0;
 }
 
-static unsigned get_vblank(int fd, enum pipe pipe, unsigned flags)
+static unsigned get_vblank(int fd, igt_crtc_t *crtc, unsigned flags)
 {
 	union drm_wait_vblank vbl;
 
 	memset(&vbl, 0, sizeof(vbl));
-	vbl.request.type = DRM_VBLANK_RELATIVE | pipe_select(pipe) | flags;
+	vbl.request.type = DRM_VBLANK_RELATIVE | pipe_select(crtc) | flags;
 	if (drmIoctl(fd, DRM_IOCTL_WAIT_VBLANK, &vbl))
 		return 0;
 
@@ -338,10 +338,8 @@ static unsigned get_vblank(int fd, enum pipe pipe, unsigned flags)
 }
 
 static int commit_mode(struct data *data, igt_output_t *output,
-		       enum pipe pipe, drmModeModeInfo *mode)
+		       igt_crtc_t *crtc, drmModeModeInfo *mode)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	int ret;
 
 	igt_output_override_mode(output, mode);
@@ -403,20 +401,21 @@ static int try_plane_scaling(struct data *data, igt_plane_t *plane,
 	return ret;
 }
 
-static void cleanup_plane_fbs(struct data *data, enum pipe pipe, int start, int end)
+static void cleanup_plane_fbs(struct data *data, igt_crtc_t *crtc, int start,
+			      int end)
 {
 	int i = start;
 
 	while (i < end) {
 		igt_remove_fb(data->display.drm_fd,
-			      &data->fb[pipe * MAX_PLANES + i]);
-		data->fb[pipe * MAX_PLANES + i].fb_id = 0;
+			      &data->fb[crtc->pipe * MAX_PLANES + i]);
+		data->fb[crtc->pipe * MAX_PLANES + i].fb_id = 0;
 		i++;
 	}
 }
 
 static int pipe_stress(struct data *data, igt_output_t *output,
-		       enum pipe pipe, drmModeModeInfo *mode)
+		       igt_crtc_t *crtc, drmModeModeInfo *mode)
 {
 	igt_plane_t *plane;
 	int i = 0;
@@ -430,13 +429,14 @@ static int pipe_stress(struct data *data, igt_output_t *output,
 	if (!mode)
 		mode = igt_output_get_mode(output);
 
-	if (data->last_mode[pipe] != mode) {
-		ret = commit_mode(data, output, pipe, mode);
+	if (data->last_mode[crtc->pipe] != mode) {
+		ret = commit_mode(data, output,
+				  crtc, mode);
 
 		if (!ret)
 			return ret;
 
-		data->last_mode[pipe] = mode;
+		data->last_mode[crtc->pipe] = mode;
 		new_mode = true;
 	}
 
@@ -444,18 +444,20 @@ static int pipe_stress(struct data *data, igt_output_t *output,
 	 * Looks like we can't have planes on that pipe at all
 	 * or mode hasn't changed
 	 */
-	if (!data->num_planes[pipe] || !new_mode)
+	if (!data->num_planes[crtc->pipe] || !new_mode)
 		return 0;
 
-	for_each_plane_on_pipe(&data->display, pipe, plane) {
+	for_each_plane_on_pipe(&data->display, crtc->pipe, plane) {
 		int plane_width, plane_height;
 		if (plane->type == DRM_PLANE_TYPE_CURSOR) {
-			cursor_plane_set_fb(plane, &data->cursor_fb[pipe],
+			cursor_plane_set_fb(plane,
+					    &data->cursor_fb[crtc->pipe],
 					    cursor_width, cursor_height);
 			plane_width = cursor_width;
 			plane_height = cursor_height;
 		} else {
-			universal_plane_set_fb(plane, &data->fb[pipe * MAX_PLANES + i],
+			universal_plane_set_fb(plane,
+					       &data->fb[crtc->pipe * MAX_PLANES + i],
 					       mode->hdisplay, mode->vdisplay);
 
 			plane_width = (mode->hdisplay * 3) / 4;
@@ -476,19 +478,24 @@ static int pipe_stress(struct data *data, igt_output_t *output,
 					 plane->index, plane_width, plane_height);
 			}
 			if (ret) {
-				igt_info("Plane %d pipe %d try commit failed, exiting\n", i, pipe);
-				data->num_planes[pipe] = i;
-				igt_info("Max num planes for pipe %d set to %d\n", pipe, i);
+				igt_info("Plane %d pipe %d try commit failed, exiting\n", i,
+					 crtc->pipe);
+				data->num_planes[crtc->pipe] = i;
+				igt_info("Max num planes for pipe %d set to %d\n",
+					 crtc->pipe, i);
 				/*
 				 * We have now determined max amount of full sized planes, we will just
 				 * keep it in mind and be smarter next time. Also lets remove unneeded fbs.
 				 * Don't destroy cursor_fb as will take care about it at the end.
 				 */
 				igt_plane_set_fb(plane, NULL);
-				cleanup_plane_fbs(data, pipe, i, MAX_PLANES);
+				cleanup_plane_fbs(data,
+						  crtc,
+						  i,
+						  MAX_PLANES);
 			}
 
-			if (++i >= data->num_planes[pipe])
+			if (++i >= data->num_planes[crtc->pipe])
 				break;
 		}
 	}
@@ -595,14 +602,16 @@ static void stress_pipes(struct data *data, struct timespec *start,
 			     "Currently we don't support more than %d planes!",
 			     MAX_PLANES);
 
-		ret = pipe_stress(data, output, pipe,
-				 data->highest_mode[pipe]);
+		ret = pipe_stress(data, output,
+				  igt_crtc_for_pipe(display, pipe),
+				  data->highest_mode[pipe]);
 		if (ret)
 			break;
 
 		igt_pipe_crc_start(data->pipe_crc[pipe]);
 		igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc[pipe], &crc);
-		get_vblank(data->display.drm_fd, pipe,
+		get_vblank(data->display.drm_fd,
+			   igt_crtc_for_pipe(display, pipe),
 			   DRM_VBLANK_NEXTONMISS);
 		igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc[pipe], &crc2);
 		igt_pipe_crc_stop(data->pipe_crc[pipe]);
diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index f31992a514a0..158a13923f82 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -154,11 +154,9 @@ create_fb_for_mode_position(data_t *data, drmModeModeInfo *mode,
 }
 
 static void
-prepare_planes(data_t *data, enum pipe pipe, int max_planes,
+prepare_planes(data_t *data, igt_crtc_t *crtc, int max_planes,
 	       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;
 	int *x;
@@ -228,11 +226,10 @@ prepare_planes(data_t *data, enum pipe pipe, int max_planes,
 }
 
 static void
-test_plane_position_with_output(data_t *data, enum pipe pipe, int max_planes,
+test_plane_position_with_output(data_t *data, igt_crtc_t *crtc,
+				int max_planes,
 				igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	int i;
 	int iterations = opt.iterations < 1 ? max_planes : opt.iterations;
 	bool loop_forever = opt.iterations == LOOP_FOREVER ? true : false;
@@ -242,7 +239,8 @@ test_plane_position_with_output(data_t *data, enum pipe pipe, int max_planes,
 
 	i = 0;
 	while (i < iterations || loop_forever) {
-		prepare_planes(data, crtc->pipe, max_planes, output);
+		prepare_planes(data, crtc,
+			       max_planes, output);
 		ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
 
 		for (int c = 0; c < max_planes; c++)
@@ -277,10 +275,9 @@ get_lowres_mode(data_t *data, const drmModeModeInfo *mode_default,
 }
 
 static void
-test_resolution_with_output(data_t *data, enum pipe pipe, int max_planes, igt_output_t *output)
+test_resolution_with_output(data_t *data, igt_crtc_t *crtc, int max_planes,
+			    igt_output_t *output)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	int iterations = opt.iterations < 1 ? max_planes : opt.iterations;
 	bool loop_forever = opt.iterations == LOOP_FOREVER ? true : false;
 	int i;
@@ -312,10 +309,8 @@ test_resolution_with_output(data_t *data, enum pipe pipe, int max_planes, igt_ou
 }
 
 static void
-run_test(data_t *data, enum pipe pipe, igt_output_t *output)
+run_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);
 	int n_planes = crtc->n_planes;
 	igt_display_reset(&data->display);
 
@@ -330,11 +325,15 @@ run_test(data_t *data, enum pipe pipe, igt_output_t *output)
 	test_init(data, n_planes, output);
 
 	igt_fork(child, 1) {
-		test_plane_position_with_output(data, crtc->pipe, n_planes,
+		test_plane_position_with_output(data,
+						crtc,
+						n_planes,
 						output);
 	}
 
-	test_resolution_with_output(data, crtc->pipe, n_planes, output);
+	test_resolution_with_output(data,
+				    crtc,
+				    n_planes, output);
 
 	igt_waitchildren();
 
@@ -361,7 +360,9 @@ run_tests_for_pipe(data_t *data)
 			igt_require(crtc->n_planes > 0);
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      igt_output_name(output))
-				run_test(data, crtc->pipe, output);
+				run_test(data,
+					 crtc,
+					 output);
 		}
 	}
 }
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index 37c439af7455..2c2ffa150c41 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -444,12 +444,11 @@ static bool write_srm_as_fw(const __u8 *srm, int len)
 }
 
 static void test_content_protection_on_output(igt_output_t *output,
-					      enum pipe pipe,
+					      igt_crtc_t *crtc,
 					      enum igt_commit_style commit_style,
 					      int content_type)
 {
 	igt_display_t *display = &data.display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	bool ret;
 
 	test_cp_enable_with_retry(output, commit_style, 3, content_type, false,
@@ -747,7 +746,7 @@ test_content_protection(enum igt_commit_style commit_style, int content_type)
 			igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
 				      output->name)
 				test_content_protection_on_output(output,
-								  crtc->pipe,
+								  crtc,
 								  commit_style,
 								  content_type);
 
diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index b6b155130edb..bd0226c4800f 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -897,15 +897,15 @@ static bool valid_pipe_output_combo(data_t *data)
 	return ret;
 }
 
-static bool execution_constraint(enum pipe pipe)
+static bool execution_constraint(igt_crtc_t *crtc)
 {
 	if (!extended &&
-	    pipe != active_pipes[0] &&
-	    pipe != active_pipes[last_pipe])
+	    crtc->pipe != active_pipes[0] &&
+	    crtc->pipe != active_pipes[last_pipe])
 		return true;
 
 	if (!extended && igt_run_in_simulation() &&
-	    pipe != active_pipes[0])
+	    crtc->pipe != active_pipes[0])
 		return true;
 
 	return false;
@@ -1008,7 +1008,7 @@ static void run_size_tests(data_t *data, int w, int h)
 
 			for_each_crtc_with_single_output(&data->display, crtc,
 							 data->output) {
-				if (execution_constraint(crtc->pipe))
+				if (execution_constraint(crtc))
 					continue;
 
 				data->crtc = crtc;
@@ -1049,7 +1049,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-size-change") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
@@ -1070,7 +1070,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-alpha-opaque") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
@@ -1091,7 +1091,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-alpha-transparent") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
@@ -1121,7 +1121,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-tearing-framebuffer-change") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
@@ -1141,7 +1141,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-tearing-position-change") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
@@ -1168,7 +1168,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-dpms") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
@@ -1190,7 +1190,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-suspend") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
@@ -1215,7 +1215,7 @@ static void run_tests_on_pipe(data_t *data)
 	igt_subtest_with_dynamic("cursor-size-hints") {
 		for_each_crtc_with_single_output(&data->display, crtc,
 						 data->output) {
-			if (execution_constraint(crtc->pipe))
+			if (execution_constraint(crtc))
 				continue;
 
 			data->crtc = crtc;
diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
index 0addd72a0472..5a2e3f1cfdcc 100644
--- a/tests/kms_hdr.c
+++ b/tests/kms_hdr.c
@@ -202,10 +202,9 @@ static void set_hdr_output_metadata(data_t *data,
 }
 
 /* Prepare test data. */
-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);
 
 	data->crtc = crtc;
 	igt_assert(data->crtc);
@@ -232,12 +231,11 @@ static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
 	data->h = data->mode->vdisplay;
 }
 
-static void test_bpc_switch_on_output(data_t *data, enum pipe pipe,
+static void test_bpc_switch_on_output(data_t *data, igt_crtc_t *crtc,
 				      igt_output_t *output,
 				      uint32_t flags)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crc_t ref_crc, new_crc;
 	igt_fb_t afb;
 	int afb_id, ret;
@@ -336,7 +334,8 @@ static void test_bpc_switch(data_t *data, uint32_t flags)
 				continue;
 			}
 
-			prepare_test(data, output, crtc->pipe);
+			prepare_test(data, output,
+				     crtc);
 
 			if (is_intel_device(data->fd) &&
 			    !igt_max_bpc_constraint(display, crtc->pipe, output, 10)) {
@@ -353,7 +352,8 @@ static void test_bpc_switch(data_t *data, uint32_t flags)
 
 			igt_dynamic_f("pipe-%s-%s",
 				      igt_crtc_name(crtc), output->name)
-				test_bpc_switch_on_output(data, crtc->pipe,
+				test_bpc_switch_on_output(data,
+							  crtc,
 							  output, flags);
 
 			/* One pipe is enough */
@@ -470,12 +470,11 @@ static void adjust_brightness(data_t *data, uint32_t flags)
 	igt_assert_eq(igt_backlight_write(context.old, "brightness", &context), 0);
 }
 
-static void test_static_toggle(data_t *data, enum pipe pipe,
+static void test_static_toggle(data_t *data, igt_crtc_t *crtc,
 			       igt_output_t *output,
 			       uint32_t flags)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	struct hdr_output_metadata hdr;
 	igt_crc_t ref_crc, new_crc;
 	igt_fb_t afb;
@@ -584,10 +583,10 @@ static void fill_hdr_output_metadata_sdr(struct hdr_output_metadata *meta)
 	meta->hdmi_metadata_type1.max_cll = 0;
 }
 
-static void test_static_swap(data_t *data, enum pipe pipe, igt_output_t *output, uint32_t flags)
+static void test_static_swap(data_t *data, igt_crtc_t *crtc,
+			     igt_output_t *output, uint32_t flags)
 {
 	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe);
 	igt_crc_t ref_crc, new_crc;
 	igt_fb_t afb;
 	int afb_id;
@@ -748,7 +747,8 @@ static void test_hdr(data_t *data, uint32_t flags)
 				continue;
 			}
 
-			prepare_test(data, output, crtc->pipe);
+			prepare_test(data, output,
+				     crtc);
 
 			/* Signal HDR requirement via metadata */
 			fill_hdr_output_metadata_st2084(&hdr);
@@ -787,10 +787,12 @@ static void test_hdr(data_t *data, uint32_t flags)
 				      igt_crtc_name(crtc), output->name) {
 				if (flags & (TEST_NONE | TEST_DPMS | TEST_SUSPEND |
 					     TEST_INVALID_HDR | TEST_BRIGHTNESS))
-					test_static_toggle(data, crtc->pipe,
+					test_static_toggle(data,
+							   crtc,
 							   output, flags);
 				if (flags & TEST_SWAP)
-					test_static_swap(data, crtc->pipe,
+					test_static_swap(data,
+							 crtc,
 							 output, flags);
 				if (flags & TEST_INVALID_METADATA_SIZES)
 					test_invalid_metadata_sizes(data, output);
diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c
index bf0f89844595..4b69f1a17e24 100644
--- a/tests/kms_plane_cursor.c
+++ b/tests/kms_plane_cursor.c
@@ -89,11 +89,9 @@ typedef struct data {
 } data_t;
 
 /* Common test setup. */
-static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output,
+static void test_init(data_t *data, igt_crtc_t *crtc, igt_output_t *output,
 		      unsigned int flags)
 {
-	igt_display_t *display = &data->display;
-	igt_crtc_t *crtc = igt_crtc_for_pipe(display, pipe_id);
 	data->crtc = crtc;
 	data->output = output;
 
@@ -343,7 +341,9 @@ int igt_main()
 				if (!intel_pipe_output_combo_valid(display))
 					continue;
 
-				test_init(&data, crtc->pipe, output,
+				test_init(&data,
+					  crtc,
+					  output,
 					  tests[i].flags);
 
 				for (j = 0; j < ARRAY_SIZE(cursor_sizes); j++) {
-- 
2.52.0


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

* ✓ Xe.CI.BAT: success for tests/kms: More igt_crtc_t conversions
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (20 preceding siblings ...)
  2026-02-20 14:01 ` [PATCH i-g-t 21/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 4 Ville Syrjala
@ 2026-02-20 17:33 ` Patchwork
  2026-02-20 17:49 ` ✓ i915.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-02-20 17:33 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: More igt_crtc_t conversions
URL   : https://patchwork.freedesktop.org/series/161893/
State : success

== Summary ==

CI Bug Log - changes from XEIGT_8764_BAT -> XEIGTPW_14582_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

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

### IGT changes ###

#### Warnings ####

  * igt@kms_dsc@dsc-basic:
    - bat-adlp-7:         [SKIP][1] ([Intel XE#455]) -> [SKIP][2] ([Intel XE#2244] / [Intel XE#455])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/bat-adlp-7/igt@kms_dsc@dsc-basic.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/bat-adlp-7/igt@kms_dsc@dsc-basic.html
    - bat-dg2-oem2:       [SKIP][3] ([Intel XE#455]) -> [SKIP][4] ([Intel XE#2244] / [Intel XE#455])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html

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


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

  * IGT: IGT_8764 -> IGTPW_14582
  * Linux: xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120 -> xe-4581-4359810f1f728eb3dfe95476e5de93fed017d159

  IGTPW_14582: 14582
  IGT_8764: 8764
  xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120: 157c1f59af33fb9acf6e0e055e7317b634711120
  xe-4581-4359810f1f728eb3dfe95476e5de93fed017d159: 4359810f1f728eb3dfe95476e5de93fed017d159

== Logs ==

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

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

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

* ✓ i915.CI.BAT: success for tests/kms: More igt_crtc_t conversions
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (21 preceding siblings ...)
  2026-02-20 17:33 ` ✓ Xe.CI.BAT: success for tests/kms: More igt_crtc_t conversions Patchwork
@ 2026-02-20 17:49 ` Patchwork
  2026-02-21  1:27 ` ✗ i915.CI.Full: failure " Patchwork
  2026-02-21  6:32 ` ✗ Xe.CI.FULL: " Patchwork
  24 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-02-20 17:49 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: More igt_crtc_t conversions
URL   : https://patchwork.freedesktop.org/series/161893/
State : success

== Summary ==

CI Bug Log - changes from IGT_8764 -> IGTPW_14582
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (42 -> 41)
------------------------------

  Additional (1): fi-glk-j4005 
  Missing    (2): bat-dg2-13 fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-glk-j4005:       NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/fi-glk-j4005/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-glk-j4005:       NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/fi-glk-j4005/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8764/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/bat-arls-5/igt@i915_selftest@live@workarounds.html

  * igt@kms_psr@psr-primary-page-flip:
    - fi-glk-j4005:       NOTRUN -> [SKIP][5] +12 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/fi-glk-j4005/igt@kms_psr@psr-primary-page-flip.html

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


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

  * CI: CI-20190529 -> None
  * IGT: IGT_8764 -> IGTPW_14582
  * Linux: CI_DRM_18008 -> CI_DRM_18013

  CI-20190529: 20190529
  CI_DRM_18008: 157c1f59af33fb9acf6e0e055e7317b634711120 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_18013: 5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_14582: 14582
  IGT_8764: 8764

== Logs ==

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

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

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

* ✗ i915.CI.Full: failure for tests/kms: More igt_crtc_t conversions
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (22 preceding siblings ...)
  2026-02-20 17:49 ` ✓ i915.CI.BAT: " Patchwork
@ 2026-02-21  1:27 ` Patchwork
  2026-02-21  6:32 ` ✗ Xe.CI.FULL: " Patchwork
  24 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-02-21  1:27 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: More igt_crtc_t conversions
URL   : https://patchwork.freedesktop.org/series/161893/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_18013_full -> IGTPW_14582_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_14582_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_14582_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_14582/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_14582_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_3d@basic:
    - shard-mtlp:         [PASS][1] -> [SKIP][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@kms_3d@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@kms_3d@basic.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf:
    - shard-mtlp:         NOTRUN -> [FAIL][3] +1 other test fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_psr2_sf@fbc-pr-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
    - shard-glk:          NOTRUN -> [FAIL][4] +13 other tests fail
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk2/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
    - shard-glk10:        NOTRUN -> [FAIL][5] +5 other tests fail
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk10/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-tglu-1:       NOTRUN -> [FAIL][6] +4 other tests fail
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area:
    - shard-snb:          NOTRUN -> [FAIL][7] +2 other tests fail
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-snb7/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html
    - shard-dg1:          NOTRUN -> [FAIL][8] +1 other test fail
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf:
    - shard-tglu:         NOTRUN -> [FAIL][9] +9 other tests fail
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [FAIL][10] +7 other tests fail
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-dg2:          NOTRUN -> [FAIL][11] +3 other tests fail
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-7/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
    - shard-mtlp:         [PASS][12] -> [FAIL][13] +10 other tests fail
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-8/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html

  * igt@testdisplay:
    - shard-snb:          [PASS][14] -> [DMESG-WARN][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-snb7/igt@testdisplay.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-snb7/igt@testdisplay.html

  
#### Warnings ####

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf:
    - shard-snb:          [SKIP][16] ([i915#11520]) -> [FAIL][17] +43 other tests fail
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-snb7/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-snb5/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf:
    - shard-glk:          [SKIP][18] ([i915#11520]) -> [FAIL][19] +3 other tests fail
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-glk1/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk5/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
    - shard-dg2:          [SKIP][20] ([i915#11520]) -> [FAIL][21] +42 other tests fail
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-8/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
    - shard-mtlp:         [SKIP][22] ([i915#9808]) -> [FAIL][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-rkl:          [SKIP][24] ([i915#11520]) -> [FAIL][25] +26 other tests fail
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
    - shard-tglu:         [SKIP][26] ([i915#11520]) -> [FAIL][27] +28 other tests fail
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-3/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
    - shard-mtlp:         [SKIP][28] ([i915#12316]) -> [FAIL][29] +32 other tests fail
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-1/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf:
    - shard-dg1:          [SKIP][30] ([i915#11520]) -> [FAIL][31] +43 other tests fail
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-12/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area:
    - shard-rkl:          [SKIP][32] ([i915#11520] / [i915#14544]) -> [FAIL][33] +4 other tests fail
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html

  
New tests
---------

  New tests have been introduced between CI_DRM_18013_full and IGTPW_14582_full:

### New IGT tests (11) ###

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.25] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-b-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [0.32, 0.72] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-b-hdmi-a-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.28, 0.63] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-b-hdmi-a-3:
    - Statuses : 2 pass(s)
    - Exec time: [0.32, 0.35] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.22] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-c-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.33, 0.64] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-c-hdmi-a-2:
    - Statuses : 2 pass(s)
    - Exec time: [0.27, 0.67] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-c-hdmi-a-3:
    - Statuses : 2 pass(s)
    - Exec time: [0.28, 0.36] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-d-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.23] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.34] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-d-hdmi-a-3:
    - Statuses : 2 pass(s)
    - Exec time: [0.32, 0.36] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-rkl:          NOTRUN -> [SKIP][34] ([i915#8411]) +2 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@api_intel_bb@object-reloc-keep-cache.html

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

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-tglu:         NOTRUN -> [SKIP][36] ([i915#3555] / [i915#9323]) +1 other test skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@gem_ccs@ctrl-surf-copy.html
    - shard-rkl:          NOTRUN -> [SKIP][37] ([i915#3555] / [i915#9323])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_ccs@ctrl-surf-copy-new-ctx:
    - shard-tglu-1:       NOTRUN -> [SKIP][38] ([i915#9323])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@gem_ccs@ctrl-surf-copy-new-ctx.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-dg2:          NOTRUN -> [SKIP][39] ([i915#7697])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@gem_close_race@multigpu-basic-threads.html
    - shard-tglu:         NOTRUN -> [SKIP][40] ([i915#7697])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_create@create-ext-set-pat:
    - shard-rkl:          NOTRUN -> [SKIP][41] ([i915#8562])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@gem_create@create-ext-set-pat.html
    - shard-tglu:         NOTRUN -> [SKIP][42] ([i915#8562])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-5/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_persistence@file:
    - shard-snb:          NOTRUN -> [SKIP][43] ([i915#1099]) +2 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-snb5/igt@gem_ctx_persistence@file.html

  * igt@gem_ctx_sseu@engines:
    - shard-rkl:          NOTRUN -> [SKIP][44] ([i915#280]) +1 other test skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@gem_ctx_sseu@engines.html
    - shard-tglu-1:       NOTRUN -> [SKIP][45] ([i915#280])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@gem_ctx_sseu@engines.html
    - shard-dg1:          NOTRUN -> [SKIP][46] ([i915#280])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@gem_ctx_sseu@engines.html
    - shard-mtlp:         NOTRUN -> [SKIP][47] ([i915#280])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-5/igt@gem_ctx_sseu@engines.html
    - shard-dg2:          NOTRUN -> [SKIP][48] ([i915#280])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-7/igt@gem_ctx_sseu@engines.html

  * igt@gem_exec_balancer@bonded-semaphore:
    - shard-dg2:          NOTRUN -> [SKIP][49] ([i915#4812])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@gem_exec_balancer@bonded-semaphore.html

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-rkl:          NOTRUN -> [SKIP][50] ([i915#4525]) +2 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@gem_exec_balancer@parallel-bb-first.html
    - shard-tglu-1:       NOTRUN -> [SKIP][51] ([i915#4525])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_balancer@sliced:
    - shard-dg1:          NOTRUN -> [SKIP][52] ([i915#4812])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@gem_exec_balancer@sliced.html

  * igt@gem_exec_capture@capture:
    - shard-mtlp:         NOTRUN -> [FAIL][53] ([i915#11965]) +1 other test fail
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@gem_exec_capture@capture.html

  * igt@gem_exec_capture@capture-recoverable:
    - shard-tglu-1:       NOTRUN -> [SKIP][54] ([i915#6344])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@gem_exec_capture@capture-recoverable.html

  * igt@gem_exec_capture@capture@vecs0-lmem0:
    - shard-dg2:          NOTRUN -> [FAIL][55] ([i915#11965]) +4 other tests fail
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@gem_exec_capture@capture@vecs0-lmem0.html
    - shard-dg1:          NOTRUN -> [FAIL][56] ([i915#11965]) +2 other tests fail
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-17/igt@gem_exec_capture@capture@vecs0-lmem0.html

  * igt@gem_exec_flush@basic-uc-ro-default:
    - shard-dg2:          NOTRUN -> [SKIP][57] ([i915#3539] / [i915#4852])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@gem_exec_flush@basic-uc-ro-default.html

  * igt@gem_exec_flush@basic-wb-ro-before-default:
    - shard-dg1:          NOTRUN -> [SKIP][58] ([i915#3539] / [i915#4852]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-17/igt@gem_exec_flush@basic-wb-ro-before-default.html

  * igt@gem_exec_reloc@basic-cpu-wc-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][59] ([i915#3281]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-7/igt@gem_exec_reloc@basic-cpu-wc-noreloc.html
    - shard-dg2:          NOTRUN -> [SKIP][60] ([i915#3281]) +2 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@gem_exec_reloc@basic-cpu-wc-noreloc.html

  * igt@gem_exec_reloc@basic-wc-gtt-noreloc:
    - shard-dg1:          NOTRUN -> [SKIP][61] ([i915#3281]) +3 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@gem_exec_reloc@basic-wc-gtt-noreloc.html

  * igt@gem_exec_suspend@basic-s0@smem:
    - shard-rkl:          [PASS][62] -> [INCOMPLETE][63] ([i915#13356]) +1 other test incomplete
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@gem_exec_suspend@basic-s0@smem.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@gem_fence_thrash@bo-write-verify-y:
    - shard-mtlp:         NOTRUN -> [SKIP][64] ([i915#4860])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-2/igt@gem_fence_thrash@bo-write-verify-y.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy:
    - shard-dg2:          NOTRUN -> [SKIP][65] ([i915#4860])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html

  * igt@gem_huc_copy@huc-copy:
    - shard-rkl:          NOTRUN -> [SKIP][66] ([i915#2190])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-rkl:          NOTRUN -> [SKIP][67] ([i915#4613] / [i915#7582])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-1/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@heavy-verify-multi:
    - shard-rkl:          NOTRUN -> [SKIP][68] ([i915#14544] / [i915#4613])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gem_lmem_swapping@heavy-verify-multi.html

  * igt@gem_lmem_swapping@heavy-verify-random:
    - shard-rkl:          NOTRUN -> [SKIP][69] ([i915#4613]) +2 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@gem_lmem_swapping@heavy-verify-random.html

  * igt@gem_lmem_swapping@parallel-random:
    - shard-mtlp:         NOTRUN -> [SKIP][70] ([i915#4613])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@gem_lmem_swapping@parallel-random.html

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

  * igt@gem_lmem_swapping@random-engines:
    - shard-glk:          NOTRUN -> [SKIP][72] ([i915#4613]) +8 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk1/igt@gem_lmem_swapping@random-engines.html

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

  * igt@gem_madvise@dontneed-before-pwrite:
    - shard-dg1:          NOTRUN -> [SKIP][74] ([i915#3282]) +1 other test skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@gem_madvise@dontneed-before-pwrite.html

  * igt@gem_media_vme:
    - shard-tglu:         NOTRUN -> [SKIP][75] ([i915#284])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@gem_media_vme.html

  * igt@gem_mmap@bad-offset:
    - shard-dg1:          NOTRUN -> [SKIP][76] ([i915#4083]) +3 other tests skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@gem_mmap@bad-offset.html

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

  * igt@gem_mmap_gtt@big-bo-tiledy:
    - shard-mtlp:         NOTRUN -> [SKIP][78] ([i915#4077]) +2 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@gem_mmap_gtt@big-bo-tiledy.html

  * igt@gem_mmap_gtt@cpuset-basic-small-copy-xy:
    - shard-dg1:          NOTRUN -> [SKIP][79] ([i915#4077]) +4 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html

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

  * igt@gem_mmap_wc@write-wc-read-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][81] ([i915#4083]) +2 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-1/igt@gem_mmap_wc@write-wc-read-gtt.html

  * igt@gem_partial_pwrite_pread@reads-display:
    - shard-dg2:          NOTRUN -> [SKIP][82] ([i915#3282])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-7/igt@gem_partial_pwrite_pread@reads-display.html

  * igt@gem_partial_pwrite_pread@writes-after-reads:
    - shard-rkl:          NOTRUN -> [SKIP][83] ([i915#3282]) +4 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads.html

  * igt@gem_pxp@reject-modify-context-protection-off-1:
    - shard-dg2:          NOTRUN -> [SKIP][84] ([i915#4270])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-6/igt@gem_pxp@reject-modify-context-protection-off-1.html

  * igt@gem_pxp@verify-pxp-stale-buf-optout-execution:
    - shard-dg1:          NOTRUN -> [SKIP][85] ([i915#4270]) +1 other test skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@gem_pxp@verify-pxp-stale-buf-optout-execution.html

  * igt@gem_render_copy@yf-tiled-ccs-to-x-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][86] ([i915#8428]) +1 other test skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-2/igt@gem_render_copy@yf-tiled-ccs-to-x-tiled.html
    - shard-dg2:          NOTRUN -> [SKIP][87] ([i915#5190] / [i915#8428]) +1 other test skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-8/igt@gem_render_copy@yf-tiled-ccs-to-x-tiled.html

  * igt@gem_tiled_pread_pwrite:
    - shard-mtlp:         NOTRUN -> [SKIP][88] ([i915#4079])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-4/igt@gem_tiled_pread_pwrite.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][89] ([i915#3297]) +1 other test skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html
    - shard-rkl:          NOTRUN -> [SKIP][90] ([i915#14544] / [i915#3297])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-mtlp:         NOTRUN -> [SKIP][91] ([i915#3297])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-2/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
    - shard-dg2:          NOTRUN -> [SKIP][92] ([i915#3297] / [i915#4880])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-1/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
    - shard-dg1:          NOTRUN -> [SKIP][93] ([i915#3297] / [i915#4880])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@relocations:
    - shard-dg2:          NOTRUN -> [SKIP][94] ([i915#3281] / [i915#3297])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@gem_userptr_blits@relocations.html

  * igt@gem_userptr_blits@unsync-unmap:
    - shard-tglu-1:       NOTRUN -> [SKIP][95] ([i915#3297]) +1 other test skip
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@gem_userptr_blits@unsync-unmap.html

  * igt@gem_vm_create@invalid-create:
    - shard-snb:          NOTRUN -> [SKIP][96] +205 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-snb7/igt@gem_vm_create@invalid-create.html

  * igt@gen9_exec_parse@batch-zero-length:
    - shard-tglu:         NOTRUN -> [SKIP][97] ([i915#2527] / [i915#2856]) +1 other test skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@gen9_exec_parse@batch-zero-length.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-rkl:          NOTRUN -> [SKIP][98] ([i915#2527]) +1 other test skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@gen9_exec_parse@bb-oversize.html
    - shard-tglu-1:       NOTRUN -> [SKIP][99] ([i915#2527] / [i915#2856]) +2 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@gen9_exec_parse@bb-oversize.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2:          NOTRUN -> [SKIP][100] ([i915#2856]) +1 other test skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-7/igt@gen9_exec_parse@unaligned-access.html

  * igt@i915_drm_fdinfo@virtual-busy-all:
    - shard-mtlp:         NOTRUN -> [SKIP][101] ([i915#14118])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@i915_drm_fdinfo@virtual-busy-all.html
    - shard-dg1:          NOTRUN -> [SKIP][102] ([i915#14118])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@i915_drm_fdinfo@virtual-busy-all.html

  * igt@i915_drm_fdinfo@virtual-busy-idle-all:
    - shard-dg2:          NOTRUN -> [SKIP][103] ([i915#14118]) +1 other test skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@i915_drm_fdinfo@virtual-busy-idle-all.html

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

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

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

  * igt@i915_module_load@fault-injection@intel_gt_init-enodev:
    - shard-rkl:          NOTRUN -> [SKIP][107] ([i915#15479]) +4 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@i915_module_load@fault-injection@intel_gt_init-enodev.html

  * igt@i915_module_load@reload-no-display:
    - shard-snb:          NOTRUN -> [DMESG-WARN][108] ([i915#14545])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-snb1/igt@i915_module_load@reload-no-display.html
    - shard-tglu:         [PASS][109] -> [DMESG-WARN][110] ([i915#13029] / [i915#14545])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-8/igt@i915_module_load@reload-no-display.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-5/igt@i915_module_load@reload-no-display.html

  * igt@i915_pm_freq_api@freq-reset:
    - shard-tglu-1:       NOTRUN -> [SKIP][111] ([i915#8399]) +1 other test skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@i915_pm_freq_api@freq-reset.html

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

  * igt@i915_pm_rpm@system-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][113] ([i915#13356])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk6/igt@i915_pm_rpm@system-suspend.html

  * igt@i915_pm_rpm@system-suspend-devices:
    - shard-rkl:          [PASS][114] -> [ABORT][115] ([i915#15060])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@i915_pm_rpm@system-suspend-devices.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-1/igt@i915_pm_rpm@system-suspend-devices.html

  * igt@i915_pm_rps@min-max-config-idle:
    - shard-dg1:          NOTRUN -> [SKIP][116] ([i915#11681] / [i915#6621])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@i915_pm_rps@min-max-config-idle.html

  * igt@i915_pm_rps@thresholds-idle-park:
    - shard-dg2:          NOTRUN -> [SKIP][117] ([i915#11681])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@i915_pm_rps@thresholds-idle-park.html
    - shard-dg1:          NOTRUN -> [SKIP][118] ([i915#11681])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@i915_pm_rps@thresholds-idle-park.html
    - shard-mtlp:         NOTRUN -> [SKIP][119] ([i915#11681])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@i915_pm_rps@thresholds-idle-park.html

  * igt@i915_power@sanity:
    - shard-mtlp:         [PASS][120] -> [SKIP][121] ([i915#7984])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-7/igt@i915_power@sanity.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@i915_power@sanity.html

  * igt@i915_query@query-topology-coherent-slice-mask:
    - shard-dg2:          NOTRUN -> [SKIP][122] ([i915#6188])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-7/igt@i915_query@query-topology-coherent-slice-mask.html

  * igt@i915_query@test-query-geometry-subslices:
    - shard-rkl:          NOTRUN -> [SKIP][123] ([i915#5723])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@i915_query@test-query-geometry-subslices.html

  * igt@i915_selftest@live@workarounds:
    - shard-dg2:          [PASS][124] -> [DMESG-FAIL][125] ([i915#12061]) +1 other test dmesg-fail
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-7/igt@i915_selftest@live@workarounds.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@i915_selftest@live@workarounds.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-glk:          NOTRUN -> [INCOMPLETE][126] ([i915#4817]) +1 other test incomplete
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk9/igt@i915_suspend@basic-s3-without-i915.html

  * igt@intel_hwmon@hwmon-write:
    - shard-rkl:          NOTRUN -> [SKIP][127] ([i915#7707])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@intel_hwmon@hwmon-write.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - shard-mtlp:         NOTRUN -> [SKIP][128] ([i915#4212])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-dg1:          [PASS][129] -> [FAIL][130] ([i915#14888])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-16/igt@kms_async_flips@alternate-sync-async-flip.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_async_flips@alternate-sync-async-flip.html
    - shard-glk:          [PASS][131] -> [FAIL][132] ([i915#14888]) +1 other test fail
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-glk6/igt@kms_async_flips@alternate-sync-async-flip.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk5/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1:
    - shard-dg1:          NOTRUN -> [FAIL][133] ([i915#14888])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1.html

  * igt@kms_async_flips@async-flip-suspend-resume:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][134] ([i915#12761]) +1 other test incomplete
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_async_flips@async-flip-suspend-resume.html
    - shard-glk:          NOTRUN -> [INCOMPLETE][135] ([i915#12761])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk2/igt@kms_async_flips@async-flip-suspend-resume.html

  * igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][136] ([i915#12761] / [i915#14995])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk2/igt@kms_async_flips@async-flip-suspend-resume@pipe-a-hdmi-a-2.html

  * igt@kms_async_flips@test-cursor:
    - shard-mtlp:         NOTRUN -> [SKIP][137] ([i915#10333])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-7/igt@kms_async_flips@test-cursor.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglu-1:       NOTRUN -> [SKIP][138] ([i915#9531])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-dg2:          NOTRUN -> [FAIL][139] ([i915#5956]) +1 other test fail
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-8/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-mtlp:         [PASS][140] -> [FAIL][141] ([i915#5956]) +1 other test fail
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
    - shard-dg1:          NOTRUN -> [SKIP][142] ([i915#1769] / [i915#3555])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-tglu:         NOTRUN -> [SKIP][143] ([i915#1769] / [i915#3555])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-4/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
    - shard-glk:          NOTRUN -> [SKIP][144] ([i915#1769])
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk5/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-270:
    - shard-dg2:          NOTRUN -> [SKIP][145] +6 other tests skip
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
    - shard-rkl:          NOTRUN -> [SKIP][146] ([i915#5286]) +4 other tests skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-1/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][147] ([i915#4538] / [i915#5286]) +2 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
    - shard-tglu:         NOTRUN -> [SKIP][148] ([i915#5286]) +6 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-4/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][149] ([i915#5286]) +3 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [PASS][150] -> [FAIL][151] ([i915#5138])
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-rkl:          NOTRUN -> [SKIP][152] ([i915#3828])
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][153] ([i915#3828]) +1 other test skip
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][154] ([i915#3638]) +4 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
    - shard-mtlp:         NOTRUN -> [SKIP][155] +8 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-2/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
    - shard-dg1:          NOTRUN -> [SKIP][156] ([i915#3638]) +1 other test skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][157] ([i915#14544] / [i915#3638])
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-270:
    - shard-glk10:        NOTRUN -> [SKIP][158] +142 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk10/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-dg2:          NOTRUN -> [SKIP][159] ([i915#5190]) +1 other test skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-6/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-90:
    - shard-dg2:          NOTRUN -> [SKIP][160] ([i915#4538] / [i915#5190]) +5 other tests skip
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-1/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-addfb-size-overflow:
    - shard-mtlp:         NOTRUN -> [SKIP][161] ([i915#6187])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-8/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][162] +38 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html
    - shard-dg1:          NOTRUN -> [SKIP][163] ([i915#4538]) +2 other tests skip
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][164] ([i915#6095]) +213 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][165] ([i915#12313]) +1 other test skip
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
    - shard-dg1:          NOTRUN -> [SKIP][166] ([i915#12313]) +1 other test skip
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc:
    - shard-rkl:          NOTRUN -> [SKIP][167] ([i915#14098] / [i915#14544] / [i915#6095]) +4 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_ccs@crc-primary-basic-4-tiled-dg2-rc-ccs-cc.html

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

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][169] ([i915#12313] / [i915#14544])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][170] ([i915#6095]) +71 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][171] ([i915#12313])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html
    - shard-tglu:         NOTRUN -> [SKIP][172] ([i915#12313])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html
    - shard-mtlp:         NOTRUN -> [SKIP][173] ([i915#12313])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html

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

  * igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][175] ([i915#10307] / [i915#10434] / [i915#6095]) +2 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-yf-tiled-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][176] ([i915#12805])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][177] ([i915#15582]) +3 other tests incomplete
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk5/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:          [PASS][178] -> [INCOMPLETE][179] ([i915#15582])
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][180] ([i915#15582])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][181] ([i915#6095]) +49 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][182] ([i915#6095]) +94 other tests skip
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][183] ([i915#14098] / [i915#6095]) +43 other tests skip
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][184] ([i915#10307] / [i915#6095]) +153 other tests skip
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-tglu-1:       NOTRUN -> [SKIP][185] ([i915#12313])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][186] ([i915#6095]) +29 other tests skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1.html

  * igt@kms_cdclk@mode-transition:
    - shard-tglu:         NOTRUN -> [SKIP][187] ([i915#3742])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-4/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][188] ([i915#11151] / [i915#7828]) +8 other tests skip
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html
    - shard-mtlp:         NOTRUN -> [SKIP][189] ([i915#11151] / [i915#7828]) +3 other tests skip
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k:
    - shard-tglu-1:       NOTRUN -> [SKIP][190] ([i915#11151] / [i915#7828]) +5 other tests skip
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html

  * igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
    - shard-dg2:          NOTRUN -> [SKIP][191] ([i915#11151] / [i915#7828]) +5 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html

  * igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode:
    - shard-rkl:          NOTRUN -> [SKIP][192] ([i915#11151] / [i915#14544] / [i915#7828])
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - shard-rkl:          NOTRUN -> [SKIP][193] ([i915#11151] / [i915#7828]) +6 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-1/igt@kms_chamelium_hpd@vga-hpd-fast.html
    - shard-dg1:          NOTRUN -> [SKIP][194] ([i915#11151] / [i915#7828]) +4 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_content_protection@atomic:
    - shard-dg1:          NOTRUN -> [SKIP][195] ([i915#6944] / [i915#7116] / [i915#9424])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_content_protection@atomic.html
    - shard-mtlp:         NOTRUN -> [SKIP][196] ([i915#6944] / [i915#9424])
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-8/igt@kms_content_protection@atomic.html
    - shard-dg2:          NOTRUN -> [SKIP][197] ([i915#6944] / [i915#7118] / [i915#9424])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-6/igt@kms_content_protection@atomic.html
    - shard-rkl:          NOTRUN -> [SKIP][198] ([i915#14544] / [i915#6944] / [i915#7118] / [i915#9424])
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_content_protection@atomic.html

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

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][200] ([i915#15330] / [i915#3116] / [i915#3299])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-0.html

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

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

  * igt@kms_content_protection@dp-mst-type-0-hdcp14:
    - shard-rkl:          NOTRUN -> [SKIP][203] ([i915#15330])
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_content_protection@dp-mst-type-0-hdcp14.html
    - shard-tglu-1:       NOTRUN -> [SKIP][204] ([i915#15330])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_content_protection@dp-mst-type-0-hdcp14.html

  * igt@kms_content_protection@legacy:
    - shard-tglu:         NOTRUN -> [SKIP][205] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424]) +2 other tests skip
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-5/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@legacy-hdcp14:
    - shard-rkl:          NOTRUN -> [SKIP][206] ([i915#6944])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_content_protection@legacy-hdcp14.html

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

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

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [SKIP][209] ([i915#6944] / [i915#7118])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@kms_content_protection@srm.html
    - shard-tglu:         NOTRUN -> [SKIP][210] ([i915#6944] / [i915#7116] / [i915#7118])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-4/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-tglu-1:       NOTRUN -> [SKIP][211] ([i915#13049]) +1 other test skip
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-mtlp:         NOTRUN -> [SKIP][212] ([i915#13049])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-2/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-dg2:          NOTRUN -> [SKIP][213] ([i915#3555])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_cursor_crc@cursor-random-128x42:
    - shard-tglu:         [PASS][214] -> [FAIL][215] ([i915#13566]) +7 other tests fail
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-9/igt@kms_cursor_crc@cursor-random-128x42.html
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-6/igt@kms_cursor_crc@cursor-random-128x42.html

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

  * igt@kms_cursor_crc@cursor-random-64x21:
    - shard-tglu:         NOTRUN -> [FAIL][217] ([i915#13566]) +1 other test fail
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_cursor_crc@cursor-random-64x21.html
    - shard-mtlp:         NOTRUN -> [SKIP][218] ([i915#8814])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-7/igt@kms_cursor_crc@cursor-random-64x21.html

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

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][220] ([i915#13049]) +1 other test skip
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_cursor_crc@cursor-sliding-512x512.html
    - shard-tglu:         NOTRUN -> [SKIP][221] ([i915#13049])
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-sliding-64x21:
    - shard-rkl:          [PASS][222] -> [FAIL][223] ([i915#13566]) +5 other tests fail
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_cursor_crc@cursor-sliding-64x21.html
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-64x21.html

  * igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [FAIL][224] ([i915#13566]) +5 other tests fail
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-64x21@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-sliding-max-size:
    - shard-rkl:          NOTRUN -> [SKIP][225] ([i915#3555]) +1 other test skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_cursor_crc@cursor-sliding-max-size.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-rkl:          NOTRUN -> [SKIP][226] +18 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][227] ([i915#13046] / [i915#5354]) +3 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
    - shard-rkl:          [PASS][228] -> [FAIL][229] ([i915#15564])
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][230] ([i915#9809]) +2 other tests skip
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-tglu:         NOTRUN -> [SKIP][231] +67 other tests skip
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-tglu:         NOTRUN -> [SKIP][232] ([i915#4103]) +2 other tests skip
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][233] ([i915#4213])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-dg2:          NOTRUN -> [SKIP][234] ([i915#4103] / [i915#4213])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-rkl:          NOTRUN -> [SKIP][235] ([i915#4103])
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-dg1:          NOTRUN -> [SKIP][236] ([i915#4103] / [i915#4213])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

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

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglu:         NOTRUN -> [SKIP][238] ([i915#13691])
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-tglu:         NOTRUN -> [SKIP][239] ([i915#13748])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-3/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-rkl:          NOTRUN -> [SKIP][240] ([i915#13707])
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - shard-dg1:          NOTRUN -> [SKIP][241] ([i915#13707])
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-rkl:          NOTRUN -> [SKIP][242] ([i915#3555] / [i915#3840])
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-dg2:          NOTRUN -> [SKIP][243] ([i915#3840] / [i915#9053])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

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

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][245] ([i915#3469])
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-3/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@display-4x:
    - shard-tglu-1:       NOTRUN -> [SKIP][246] ([i915#1839])
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-dg2:          NOTRUN -> [SKIP][247] ([i915#9337])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-6/igt@kms_feature_discovery@dp-mst.html
    - shard-rkl:          NOTRUN -> [SKIP][248] ([i915#14544] / [i915#9337])
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_feature_discovery@dp-mst.html
    - shard-dg1:          NOTRUN -> [SKIP][249] ([i915#9337])
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_feature_discovery@dp-mst.html
    - shard-tglu:         NOTRUN -> [SKIP][250] ([i915#9337])
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_feature_discovery@dp-mst.html
    - shard-mtlp:         NOTRUN -> [SKIP][251] ([i915#9337])
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-8/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr2:
    - shard-tglu:         NOTRUN -> [SKIP][252] ([i915#658])
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_feature_discovery@psr2.html
    - shard-rkl:          NOTRUN -> [SKIP][253] ([i915#658])
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-dg2:          NOTRUN -> [SKIP][254] ([i915#9934]) +3 other tests skip
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-8/igt@kms_flip@2x-absolute-wf_vblank.html
    - shard-dg1:          NOTRUN -> [SKIP][255] ([i915#9934]) +4 other tests skip
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank:
    - shard-tglu:         NOTRUN -> [SKIP][256] ([i915#3637] / [i915#9934]) +6 other tests skip
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][257] ([i915#9934]) +5 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
    - shard-mtlp:         NOTRUN -> [SKIP][258] ([i915#3637] / [i915#9934]) +2 other tests skip
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@2x-flip-vs-fences:
    - shard-tglu-1:       NOTRUN -> [SKIP][259] ([i915#3637] / [i915#9934]) +4 other tests skip
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_flip@2x-flip-vs-fences.html

  * igt@kms_flip@2x-flip-vs-panning-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][260] ([i915#14544] / [i915#9934]) +1 other test skip
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_flip@2x-flip-vs-panning-interruptible.html

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

  * igt@kms_flip@flip-vs-fences-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][263] ([i915#8381]) +1 other test skip
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_flip@flip-vs-fences-interruptible.html
    - shard-dg1:          NOTRUN -> [SKIP][264] ([i915#8381])
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_flip@flip-vs-fences-interruptible.html
    - shard-mtlp:         NOTRUN -> [SKIP][265] ([i915#8381])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_flip@flip-vs-fences-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][266] ([i915#15643]) +4 other tests skip
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][267] ([i915#15643])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
    - shard-rkl:          NOTRUN -> [SKIP][268] ([i915#15643])
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][269] ([i915#15643])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html
    - shard-dg2:          NOTRUN -> [SKIP][270] ([i915#15643] / [i915#5190])
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling:
    - shard-dg1:          [PASS][271] -> [DMESG-WARN][272] ([i915#4423])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-18/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][273] ([i915#15643]) +4 other tests skip
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

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

  * igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw:
    - shard-dg2:          NOTRUN -> [SKIP][275] ([i915#5354]) +14 other tests skip
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
    - shard-dg1:          NOTRUN -> [SKIP][276] +22 other tests skip
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][277] ([i915#8708]) +4 other tests skip
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][278] ([i915#8708]) +6 other tests skip
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-blt:
    - shard-rkl:          NOTRUN -> [SKIP][279] ([i915#14544] / [i915#15102])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][280] ([i915#15104])
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][281] ([i915#15104])
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][282] ([i915#15102] / [i915#3458]) +8 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff:
    - shard-mtlp:         NOTRUN -> [SKIP][283] ([i915#1825]) +8 other tests skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][284] ([i915#15102] / [i915#3023]) +17 other tests skip
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][285] ([i915#15102]) +6 other tests skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt:
    - shard-tglu:         NOTRUN -> [SKIP][286] ([i915#15102]) +26 other tests skip
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt.html
    - shard-dg2:          NOTRUN -> [SKIP][287] ([i915#15102])
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt.html
    - shard-dg1:          NOTRUN -> [SKIP][288] ([i915#15102])
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][289] ([i915#15102]) +13 other tests skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt:
    - shard-dg2:          NOTRUN -> [SKIP][290] ([i915#15102] / [i915#3458]) +7 other tests skip
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt.html
    - shard-rkl:          NOTRUN -> [SKIP][291] ([i915#14544] / [i915#15102] / [i915#3023]) +4 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt.html

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

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-gtt:
    - shard-rkl:          NOTRUN -> [SKIP][293] ([i915#14544] / [i915#1825]) +4 other tests skip
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg2:          NOTRUN -> [SKIP][294] ([i915#12713])
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-7/igt@kms_hdr@brightness-with-hdr.html
    - shard-tglu-1:       NOTRUN -> [SKIP][295] ([i915#12713])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@invalid-hdr:
    - shard-tglu-1:       NOTRUN -> [SKIP][296] ([i915#3555] / [i915#8228])
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_hdr@invalid-hdr.html

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

  * igt@kms_hdr@static-toggle-dpms:
    - shard-dg2:          [PASS][298] -> [SKIP][299] ([i915#3555] / [i915#8228])
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@kms_hdr@static-toggle-dpms.html
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_hdr@static-toggle-dpms.html
    - shard-rkl:          [PASS][300] -> [SKIP][301] ([i915#3555] / [i915#8228]) +1 other test skip
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_hdr@static-toggle-dpms.html
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][302] ([i915#15460])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-5/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-tglu-1:       NOTRUN -> [SKIP][303] ([i915#15458])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - shard-tglu-1:       NOTRUN -> [SKIP][304] ([i915#15460])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][305] ([i915#15458])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-3/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_panel_fitting@legacy:
    - shard-dg2:          NOTRUN -> [SKIP][306] ([i915#6301])
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_panel_fitting@legacy.html

  * igt@kms_pipe_stress@stress-xrgb8888-4tiled:
    - shard-rkl:          NOTRUN -> [SKIP][307] ([i915#14712])
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html

  * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier:
    - shard-mtlp:         NOTRUN -> [SKIP][308] ([i915#15709]) +1 other test skip
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-8/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7:
    - shard-tglu:         NOTRUN -> [SKIP][309] ([i915#15608]) +1 other test skip
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-4/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5:
    - shard-mtlp:         NOTRUN -> [SKIP][310] ([i915#15608]) +1 other test skip
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html
    - shard-dg2:          NOTRUN -> [SKIP][311] ([i915#15608]) +1 other test skip
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier:
    - shard-rkl:          NOTRUN -> [SKIP][312] ([i915#15709]) +1 other test skip
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html
    - shard-tglu:         NOTRUN -> [SKIP][313] ([i915#15709])
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-10/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5:
    - shard-rkl:          NOTRUN -> [SKIP][314] ([i915#15608]) +3 other tests skip
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-7:
    - shard-tglu-1:       NOTRUN -> [SKIP][315] ([i915#15608]) +1 other test skip
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-7.html
    - shard-dg1:          NOTRUN -> [SKIP][316] ([i915#15608]) +3 other tests skip
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-7.html

  * igt@kms_plane@pixel-format-y-tiled-modifier-source-clamping:
    - shard-dg2:          NOTRUN -> [SKIP][317] ([i915#15709]) +3 other tests skip
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_plane@pixel-format-y-tiled-modifier-source-clamping.html

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

  * igt@kms_plane_alpha_blend@alpha-basic:
    - shard-glk:          NOTRUN -> [FAIL][319] ([i915#12178])
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk2/igt@kms_plane_alpha_blend@alpha-basic.html

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][320] ([i915#7862]) +1 other test fail
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk2/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1.html

  * igt@kms_plane_alpha_blend@alpha-transparent-fb:
    - shard-glk:          NOTRUN -> [FAIL][321] ([i915#10647] / [i915#12177])
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk5/igt@kms_plane_alpha_blend@alpha-transparent-fb.html

  * igt@kms_plane_alpha_blend@constant-alpha-max:
    - shard-glk:          NOTRUN -> [FAIL][322] ([i915#10647] / [i915#12169])
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk1/igt@kms_plane_alpha_blend@constant-alpha-max.html

  * igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][323] ([i915#10647]) +3 other tests fail
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk1/igt@kms_plane_alpha_blend@constant-alpha-max@pipe-c-hdmi-a-1.html

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

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-rkl:          NOTRUN -> [SKIP][325] ([i915#13958])
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-mtlp:         NOTRUN -> [SKIP][326] ([i915#14259])
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@kms_plane_multiple@tiling-y.html
    - shard-dg2:          NOTRUN -> [SKIP][327] ([i915#14259])
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-rkl:          NOTRUN -> [SKIP][328] ([i915#14259])
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_plane_multiple@tiling-yf.html
    - shard-tglu:         NOTRUN -> [SKIP][329] ([i915#14259])
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-10/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-dg2:          NOTRUN -> [SKIP][330] ([i915#13046] / [i915#5354] / [i915#9423])
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
    - shard-tglu-1:       NOTRUN -> [SKIP][331] ([i915#15329] / [i915#3555])
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
    - shard-tglu-1:       NOTRUN -> [SKIP][332] ([i915#15329]) +3 other tests skip
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation:
    - shard-glk:          NOTRUN -> [SKIP][333] +396 other tests skip
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk5/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation.html

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c:
    - shard-rkl:          NOTRUN -> [SKIP][334] ([i915#15329]) +3 other tests skip
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75:
    - shard-mtlp:         NOTRUN -> [SKIP][335] ([i915#15329] / [i915#6953])
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-d:
    - shard-mtlp:         NOTRUN -> [SKIP][336] ([i915#15329]) +3 other tests skip
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-1/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75@pipe-d.html

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

  * igt@kms_pm_backlight@basic-brightness:
    - shard-tglu-1:       NOTRUN -> [SKIP][338] ([i915#9812])
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][339] ([i915#12343])
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-10/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-tglu-1:       NOTRUN -> [SKIP][340] ([i915#9685])
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-dg1:          NOTRUN -> [SKIP][341] ([i915#9685])
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_pm_dc@dc5-psr.html
    - shard-dg2:          NOTRUN -> [SKIP][342] ([i915#9685])
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-tglu-1:       NOTRUN -> [SKIP][343] ([i915#3828]) +1 other test skip
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-tglu-1:       NOTRUN -> [SKIP][344] ([i915#8430])
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-dg2:          [PASS][345] -> [SKIP][346] ([i915#15073]) +4 other tests skip
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-6/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg2:          NOTRUN -> [SKIP][347] ([i915#15073])
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-6/igt@kms_pm_rpm@modeset-lpsp.html
    - shard-rkl:          NOTRUN -> [SKIP][348] ([i915#14544] / [i915#15073]) +1 other test skip
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_pm_rpm@modeset-lpsp.html
    - shard-dg1:          NOTRUN -> [SKIP][349] ([i915#15073]) +1 other test skip
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-16/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-mtlp:         NOTRUN -> [SKIP][350] ([i915#15073])
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-4/igt@kms_pm_rpm@modeset-non-lpsp.html
    - shard-rkl:          [PASS][351] -> [SKIP][352] ([i915#15073])
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp.html
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-dg1:          [PASS][353] -> [SKIP][354] ([i915#15073]) +2 other tests skip
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-13/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
    - shard-tglu:         NOTRUN -> [SKIP][355] ([i915#15073])
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@system-suspend-idle:
    - shard-rkl:          [PASS][356] -> [INCOMPLETE][357] ([i915#14419])
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_pm_rpm@system-suspend-idle.html
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_pm_rpm@system-suspend-idle.html

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

  * igt@kms_prime@d3hot:
    - shard-tglu:         NOTRUN -> [SKIP][359] ([i915#6524]) +1 other test skip
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-6/igt@kms_prime@d3hot.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-rkl:          NOTRUN -> [SKIP][360] ([i915#9683])
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-tglu:         NOTRUN -> [SKIP][361] ([i915#9683])
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-6/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr@fbc-pr-cursor-render:
    - shard-mtlp:         NOTRUN -> [SKIP][362] ([i915#9688]) +8 other tests skip
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@kms_psr@fbc-pr-cursor-render.html

  * igt@kms_psr@fbc-pr-primary-blt:
    - shard-rkl:          NOTRUN -> [SKIP][363] ([i915#1072] / [i915#14544] / [i915#9732]) +3 other tests skip
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_psr@fbc-pr-primary-blt.html

  * igt@kms_psr@fbc-pr-primary-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][364] ([i915#1072] / [i915#9732]) +9 other tests skip
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_psr@fbc-pr-primary-mmap-gtt.html

  * igt@kms_psr@fbc-psr-sprite-plane-move:
    - shard-tglu:         NOTRUN -> [SKIP][365] ([i915#9732]) +18 other tests skip
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-9/igt@kms_psr@fbc-psr-sprite-plane-move.html

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

  * igt@kms_psr@fbc-psr2-sprite-render:
    - shard-rkl:          NOTRUN -> [SKIP][367] ([i915#1072] / [i915#9732]) +19 other tests skip
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_psr@fbc-psr2-sprite-render.html
    - shard-dg1:          NOTRUN -> [SKIP][368] ([i915#1072] / [i915#9732]) +9 other tests skip
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@kms_psr@fbc-psr2-sprite-render.html

  * igt@kms_psr@psr-primary-mmap-gtt@edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][369] ([i915#4077] / [i915#9688]) +1 other test skip
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-2/igt@kms_psr@psr-primary-mmap-gtt@edp-1.html

  * igt@kms_rotation_crc@exhaust-fences:
    - shard-dg2:          NOTRUN -> [SKIP][370] ([i915#4235])
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_rotation_crc@exhaust-fences.html

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

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-tglu:         NOTRUN -> [SKIP][372] ([i915#5289])
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-4/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-mtlp:         NOTRUN -> [SKIP][373] ([i915#12755])
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-6/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][374] ([i915#5289])
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
    - shard-mtlp:         NOTRUN -> [SKIP][375] ([i915#5289])
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-rkl:          NOTRUN -> [SKIP][376] ([i915#5289]) +1 other test skip
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
    - shard-dg1:          NOTRUN -> [SKIP][377] ([i915#5289]) +1 other test skip
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-17/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-tglu:         NOTRUN -> [SKIP][378] ([i915#8623])
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-8/igt@kms_tiled_display@basic-test-pattern.html
    - shard-glk:          NOTRUN -> [FAIL][379] ([i915#10959])
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk2/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@ts-continuation-dpms-suspend:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][380] ([i915#12276]) +1 other test incomplete
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_vblank@ts-continuation-dpms-suspend.html

  * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][381] ([i915#12276]) +1 other test incomplete
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk10/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vrr@flip-basic-fastset:
    - shard-tglu:         NOTRUN -> [SKIP][382] ([i915#9906])
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-6/igt@kms_vrr@flip-basic-fastset.html
    - shard-mtlp:         NOTRUN -> [SKIP][383] ([i915#8808] / [i915#9906])
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@kms_vrr@flip-basic-fastset.html
    - shard-dg2:          NOTRUN -> [SKIP][384] ([i915#9906])
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_vrr@flip-basic-fastset.html
    - shard-rkl:          NOTRUN -> [SKIP][385] ([i915#9906])
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_vrr@flip-basic-fastset.html
    - shard-dg1:          NOTRUN -> [SKIP][386] ([i915#9906])
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_vrr@flip-basic-fastset.html

  * igt@kms_vrr@flip-suspend:
    - shard-mtlp:         NOTRUN -> [SKIP][387] ([i915#3555] / [i915#8808])
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-7/igt@kms_vrr@flip-suspend.html
    - shard-dg2:          NOTRUN -> [SKIP][388] ([i915#15243] / [i915#3555])
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_vrr@flip-suspend.html
    - shard-rkl:          NOTRUN -> [SKIP][389] ([i915#15243] / [i915#3555])
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_vrr@flip-suspend.html
    - shard-dg1:          NOTRUN -> [SKIP][390] ([i915#3555])
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-14/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@lobf:
    - shard-tglu-1:       NOTRUN -> [SKIP][391] ([i915#11920])
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_vrr@lobf.html

  * igt@kms_vrr@negative-basic:
    - shard-dg2:          [PASS][392] -> [SKIP][393] ([i915#3555] / [i915#9906])
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@kms_vrr@negative-basic.html
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-6/igt@kms_vrr@negative-basic.html

  * igt@kms_vrr@seamless-rr-switch-vrr:
    - shard-tglu-1:       NOTRUN -> [SKIP][394] ([i915#9906])
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-vrr.html

  * igt@perf@global-sseu-config:
    - shard-dg2:          NOTRUN -> [SKIP][395] ([i915#7387])
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@perf@global-sseu-config.html

  * igt@perf_pmu@event-wait:
    - shard-rkl:          NOTRUN -> [SKIP][396] ([i915#14544]) +6 other tests skip
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@perf_pmu@event-wait.html

  * igt@perf_pmu@module-unload:
    - shard-dg2:          NOTRUN -> [FAIL][397] ([i915#14433])
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-7/igt@perf_pmu@module-unload.html

  * igt@perf_pmu@rc6-suspend:
    - shard-glk:          NOTRUN -> [INCOMPLETE][398] ([i915#13356] / [i915#14242])
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-glk9/igt@perf_pmu@rc6-suspend.html

  * igt@prime_mmap@test_aperture_limit:
    - shard-dg2:          NOTRUN -> [SKIP][399] ([i915#14121]) +1 other test skip
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@prime_mmap@test_aperture_limit.html

  * igt@prime_vgem@basic-fence-read:
    - shard-rkl:          NOTRUN -> [SKIP][400] ([i915#3291] / [i915#3708])
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@prime_vgem@basic-fence-read.html
    - shard-dg1:          NOTRUN -> [SKIP][401] ([i915#3708])
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-18/igt@prime_vgem@basic-fence-read.html

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

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-dg1:          NOTRUN -> [SKIP][403] ([i915#9917])
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
    - shard-tglu:         NOTRUN -> [FAIL][404] ([i915#12910])
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html
    - shard-rkl:          NOTRUN -> [SKIP][405] ([i915#14544] / [i915#9917])
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html

  
#### Possible fixes ####

  * igt@gem_eio@in-flight-suspend:
    - shard-rkl:          [INCOMPLETE][406] ([i915#13390]) -> [PASS][407]
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@gem_eio@in-flight-suspend.html
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@gem_eio@in-flight-suspend.html

  * igt@gem_lmem_swapping@smem-oom:
    - shard-dg2:          [FAIL][408] -> [PASS][409]
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@gem_lmem_swapping@smem-oom.html
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@gem_lmem_swapping@smem-oom.html
    - shard-dg1:          [FAIL][410] -> [PASS][411]
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-18/igt@gem_lmem_swapping@smem-oom.html
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@gem_lmem_swapping@smem-oom.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2:          [CRASH][412] ([i915#5493]) -> [PASS][413]
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@gem_lmem_swapping@smem-oom@lmem0.html
    - shard-dg1:          [CRASH][414] ([i915#5493]) -> [PASS][415]
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-18/igt@gem_lmem_swapping@smem-oom@lmem0.html
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_mmap_offset@clear-via-pagefault:
    - shard-mtlp:         [DMESG-WARN][416] ([i915#15478]) -> [PASS][417] +1 other test pass
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-7/igt@gem_mmap_offset@clear-via-pagefault.html
   [417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-3/igt@gem_mmap_offset@clear-via-pagefault.html

  * igt@i915_pm_freq_api@freq-suspend@gt0:
    - shard-dg2:          [INCOMPLETE][418] ([i915#13356] / [i915#13820]) -> [PASS][419] +1 other test pass
   [418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-5/igt@i915_pm_freq_api@freq-suspend@gt0.html
   [419]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-8/igt@i915_pm_freq_api@freq-suspend@gt0.html

  * igt@i915_pm_rpm@system-suspend:
    - shard-rkl:          [INCOMPLETE][420] ([i915#13356]) -> [PASS][421]
   [420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@i915_pm_rpm@system-suspend.html
   [421]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@i915_pm_rpm@system-suspend.html

  * igt@i915_pm_rps@reset:
    - shard-mtlp:         [ABORT][422] -> [PASS][423]
   [422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-2/igt@i915_pm_rps@reset.html
   [423]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-5/igt@i915_pm_rps@reset.html

  * igt@i915_selftest@live:
    - shard-mtlp:         [DMESG-FAIL][424] ([i915#12061] / [i915#15560]) -> [PASS][425]
   [424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@i915_selftest@live.html
   [425]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-4/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - shard-mtlp:         [DMESG-FAIL][426] ([i915#12061]) -> [PASS][427]
   [426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@i915_selftest@live@workarounds.html
   [427]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-4/igt@i915_selftest@live@workarounds.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-dg2:          [DMESG-WARN][428] ([i915#14545]) -> [PASS][429] +1 other test pass
   [428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-6/igt@i915_suspend@basic-s3-without-i915.html
   [429]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-5/igt@i915_suspend@basic-s3-without-i915.html
    - shard-rkl:          [ABORT][430] ([i915#15131]) -> [PASS][431]
   [430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@i915_suspend@basic-s3-without-i915.html
   [431]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@i915_suspend@basic-s3-without-i915.html
    - shard-dg1:          [DMESG-WARN][432] ([i915#14545]) -> [PASS][433]
   [432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-17/igt@i915_suspend@basic-s3-without-i915.html
   [433]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-17/igt@i915_suspend@basic-s3-without-i915.html

  * igt@i915_suspend@debugfs-reader:
    - shard-rkl:          [INCOMPLETE][434] ([i915#4817]) -> [PASS][435]
   [434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@i915_suspend@debugfs-reader.html
   [435]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@i915_suspend@debugfs-reader.html

  * igt@i915_suspend@sysfs-reader:
    - shard-rkl:          [ABORT][436] ([i915#15140]) -> [PASS][437]
   [436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@i915_suspend@sysfs-reader.html
   [437]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@i915_suspend@sysfs-reader.html

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-b-hdmi-a-2:
    - shard-rkl:          [FAIL][438] -> [PASS][439] +1 other test pass
   [438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_async_flips@alternate-sync-async-flip@pipe-b-hdmi-a-2.html
   [439]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_async_flips@alternate-sync-async-flip@pipe-b-hdmi-a-2.html

  * igt@kms_cursor_crc@cursor-onscreen-128x42:
    - shard-rkl:          [FAIL][440] ([i915#13566]) -> [PASS][441] +2 other tests pass
   [440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_cursor_crc@cursor-onscreen-128x42.html
   [441]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-128x42.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85:
    - shard-tglu:         [FAIL][442] ([i915#13566]) -> [PASS][443] +1 other test pass
   [442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-4/igt@kms_cursor_crc@cursor-onscreen-256x85.html
   [443]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-2/igt@kms_cursor_crc@cursor-onscreen-256x85.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-rkl:          [SKIP][444] ([i915#3555] / [i915#8228]) -> [PASS][445]
   [444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_hdr@invalid-metadata-sizes.html
   [445]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-1/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-rkl:          [SKIP][446] ([i915#15073]) -> [PASS][447]
   [446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_pm_rpm@dpms-non-lpsp.html
   [447]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-dg2:          [SKIP][448] ([i915#15073]) -> [PASS][449] +1 other test pass
   [448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-1/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [449]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_rotation_crc@primary-rotation-180:
    - shard-dg1:          [DMESG-WARN][450] ([i915#4423]) -> [PASS][451]
   [450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-18/igt@kms_rotation_crc@primary-rotation-180.html
   [451]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-17/igt@kms_rotation_crc@primary-rotation-180.html

  * igt@kms_setmode@basic:
    - shard-mtlp:         [FAIL][452] ([i915#15106]) -> [PASS][453] +1 other test pass
   [452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@kms_setmode@basic.html
   [453]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-8/igt@kms_setmode@basic.html
    - shard-rkl:          [FAIL][454] ([i915#15106]) -> [PASS][455]
   [454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_setmode@basic.html
   [455]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_setmode@basic.html

  * igt@kms_vrr@negative-basic:
    - shard-mtlp:         [FAIL][456] ([i915#15420]) -> [PASS][457] +1 other test pass
   [456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@kms_vrr@negative-basic.html
   [457]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-8/igt@kms_vrr@negative-basic.html

  * igt@perf_pmu@most-busy-check-all@bcs0:
    - shard-mtlp:         [FAIL][458] ([i915#15520]) -> [PASS][459] +1 other test pass
   [458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-8/igt@perf_pmu@most-busy-check-all@bcs0.html
   [459]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-4/igt@perf_pmu@most-busy-check-all@bcs0.html

  
#### Warnings ####

  * igt@device_reset@cold-reset-bound:
    - shard-rkl:          [SKIP][460] ([i915#11078] / [i915#14544]) -> [SKIP][461] ([i915#11078])
   [460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@device_reset@cold-reset-bound.html
   [461]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@device_reset@cold-reset-bound.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-rkl:          [SKIP][462] ([i915#9323]) -> [SKIP][463] ([i915#14544] / [i915#9323])
   [462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@gem_ccs@block-multicopy-compressed.html
   [463]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@block-multicopy-inplace:
    - shard-rkl:          [SKIP][464] ([i915#14544] / [i915#3555] / [i915#9323]) -> [SKIP][465] ([i915#3555] / [i915#9323])
   [464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_ccs@block-multicopy-inplace.html
   [465]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@gem_ccs@block-multicopy-inplace.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-rkl:          [SKIP][466] ([i915#7697]) -> [SKIP][467] ([i915#14544] / [i915#7697])
   [466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@gem_close_race@multigpu-basic-threads.html
   [467]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_exec_capture@capture-recoverable:
    - shard-rkl:          [SKIP][468] ([i915#14544] / [i915#6344]) -> [SKIP][469] ([i915#6344])
   [468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_exec_capture@capture-recoverable.html
   [469]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@gem_exec_capture@capture-recoverable.html

  * igt@gem_exec_reloc@basic-gtt-active:
    - shard-rkl:          [SKIP][470] ([i915#14544] / [i915#3281]) -> [SKIP][471] ([i915#3281]) +2 other tests skip
   [470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-active.html
   [471]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@gem_exec_reloc@basic-gtt-active.html

  * igt@gem_exec_reloc@basic-gtt-wc-noreloc:
    - shard-rkl:          [SKIP][472] ([i915#3281]) -> [SKIP][473] ([i915#14544] / [i915#3281]) +5 other tests skip
   [472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-2/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html
   [473]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gem_exec_reloc@basic-gtt-wc-noreloc.html

  * igt@gem_lmem_swapping@verify-ccs:
    - shard-rkl:          [SKIP][474] ([i915#14544] / [i915#4613]) -> [SKIP][475] ([i915#4613]) +1 other test skip
   [474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_lmem_swapping@verify-ccs.html
   [475]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@gem_lmem_swapping@verify-ccs.html

  * igt@gem_media_vme:
    - shard-rkl:          [SKIP][476] ([i915#284]) -> [SKIP][477] ([i915#14544] / [i915#284])
   [476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@gem_media_vme.html
   [477]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gem_media_vme.html

  * igt@gem_pread@exhaustion:
    - shard-tglu:         [ABORT][478] ([i915#15647]) -> [WARN][479] ([i915#2658])
   [478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-10/igt@gem_pread@exhaustion.html
   [479]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-3/igt@gem_pread@exhaustion.html

  * igt@gem_pwrite@basic-self:
    - shard-rkl:          [SKIP][480] ([i915#14544] / [i915#3282]) -> [SKIP][481] ([i915#3282]) +2 other tests skip
   [480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_pwrite@basic-self.html
   [481]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@gem_pwrite@basic-self.html

  * igt@gem_pwrite_snooped:
    - shard-rkl:          [SKIP][482] ([i915#3282]) -> [SKIP][483] ([i915#14544] / [i915#3282]) +3 other tests skip
   [482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@gem_pwrite_snooped.html
   [483]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gem_pwrite_snooped.html

  * igt@gen9_exec_parse@cmd-crossing-page:
    - shard-rkl:          [SKIP][484] ([i915#2527]) -> [SKIP][485] ([i915#14544] / [i915#2527])
   [484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@gen9_exec_parse@cmd-crossing-page.html
   [485]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@gen9_exec_parse@cmd-crossing-page.html

  * igt@gen9_exec_parse@valid-registers:
    - shard-rkl:          [SKIP][486] ([i915#14544] / [i915#2527]) -> [SKIP][487] ([i915#2527]) +1 other test skip
   [486]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gen9_exec_parse@valid-registers.html
   [487]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@gen9_exec_parse@valid-registers.html

  * igt@i915_pm_freq_api@freq-suspend:
    - shard-rkl:          [SKIP][488] ([i915#14544] / [i915#8399]) -> [SKIP][489] ([i915#8399]) +1 other test skip
   [488]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@i915_pm_freq_api@freq-suspend.html
   [489]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@i915_pm_freq_api@freq-suspend.html

  * igt@i915_query@hwconfig_table:
    - shard-rkl:          [SKIP][490] ([i915#14544] / [i915#6245]) -> [SKIP][491] ([i915#6245])
   [490]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@i915_query@hwconfig_table.html
   [491]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@i915_query@hwconfig_table.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-rkl:          [SKIP][492] ([i915#12454] / [i915#12712]) -> [SKIP][493] ([i915#12454] / [i915#12712] / [i915#14544])
   [492]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html
   [493]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-180:
    - shard-rkl:          [SKIP][494] ([i915#5286]) -> [SKIP][495] ([i915#14544] / [i915#5286]) +5 other tests skip
   [494]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_big_fb@4-tiled-16bpp-rotate-180.html
   [495]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-180.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-90:
    - shard-rkl:          [SKIP][496] ([i915#14544] / [i915#5286]) -> [SKIP][497] ([i915#5286]) +2 other tests skip
   [496]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
   [497]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@linear-8bpp-rotate-90:
    - shard-rkl:          [SKIP][498] ([i915#3638]) -> [SKIP][499] ([i915#14544] / [i915#3638])
   [498]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_big_fb@linear-8bpp-rotate-90.html
   [499]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_big_fb@linear-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-270:
    - shard-rkl:          [SKIP][500] ([i915#14544]) -> [SKIP][501] +11 other tests skip
   [500]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html
   [501]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
    - shard-dg1:          [SKIP][502] ([i915#4538]) -> [SKIP][503] ([i915#4423] / [i915#4538])
   [502]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-13/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html
   [503]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-17/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs:
    - shard-rkl:          [SKIP][504] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][505] ([i915#14098] / [i915#6095]) +10 other tests skip
   [504]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs.html
   [505]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_ccs@bad-pixel-format-4-tiled-mtl-mc-ccs.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          [SKIP][506] ([i915#6095]) -> [SKIP][507] ([i915#14544] / [i915#6095]) +6 other tests skip
   [506]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html
   [507]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
    - shard-rkl:          [SKIP][508] ([i915#14098] / [i915#6095]) -> [SKIP][509] ([i915#14098] / [i915#14544] / [i915#6095]) +8 other tests skip
   [508]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
   [509]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
    - shard-rkl:          [SKIP][510] ([i915#12313]) -> [SKIP][511] ([i915#12313] / [i915#14544])
   [510]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
   [511]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          [SKIP][512] ([i915#14544] / [i915#6095]) -> [SKIP][513] ([i915#6095]) +9 other tests skip
   [512]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2.html
   [513]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_chamelium_audio@dp-audio-edid:
    - shard-rkl:          [SKIP][514] ([i915#11151] / [i915#7828]) -> [SKIP][515] ([i915#11151] / [i915#14544] / [i915#7828]) +6 other tests skip
   [514]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_chamelium_audio@dp-audio-edid.html
   [515]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_chamelium_audio@dp-audio-edid.html

  * igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k:
    - shard-dg1:          [SKIP][516] ([i915#11151] / [i915#4423] / [i915#7828]) -> [SKIP][517] ([i915#11151] / [i915#7828])
   [516]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-17/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html
   [517]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-12/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html

  * igt@kms_chamelium_hpd@vga-hpd-after-suspend:
    - shard-rkl:          [SKIP][518] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][519] ([i915#11151] / [i915#7828]) +4 other tests skip
   [518]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html
   [519]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-dg2:          [SKIP][520] ([i915#6944] / [i915#7118] / [i915#9424]) -> [FAIL][521] ([i915#7173])
   [520]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-8/igt@kms_content_protection@atomic-dpms.html
   [521]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@content-type-change:
    - shard-rkl:          [SKIP][522] ([i915#14544] / [i915#6944] / [i915#9424]) -> [SKIP][523] ([i915#6944] / [i915#9424])
   [522]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_content_protection@content-type-change.html
   [523]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_content_protection@content-type-change.html

  * igt@kms_content_protection@dp-mst-type-0-suspend-resume:
    - shard-rkl:          [SKIP][524] ([i915#15330]) -> [SKIP][525] ([i915#14544] / [i915#15330])
   [524]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html
   [525]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html

  * igt@kms_content_protection@lic-type-0:
    - shard-dg2:          [SKIP][526] ([i915#6944] / [i915#9424]) -> [FAIL][527] ([i915#7173])
   [526]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-5/igt@kms_content_protection@lic-type-0.html
   [527]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-11/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@mei-interface:
    - shard-dg1:          [SKIP][528] ([i915#6944] / [i915#9424]) -> [SKIP][529] ([i915#9433])
   [528]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-18/igt@kms_content_protection@mei-interface.html
   [529]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg1-13/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@type1:
    - shard-dg2:          [SKIP][530] ([i915#6944] / [i915#7118] / [i915#7162] / [i915#9424]) -> [SKIP][531] ([i915#6944] / [i915#7118] / [i915#9424])
   [530]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@kms_content_protection@type1.html
   [531]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-3/igt@kms_content_protection@type1.html

  * igt@kms_content_protection@uevent:
    - shard-rkl:          [SKIP][532] ([i915#14544] / [i915#6944] / [i915#7118] / [i915#9424]) -> [SKIP][533] ([i915#6944] / [i915#7118] / [i915#9424])
   [532]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_content_protection@uevent.html
   [533]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_content_protection@uevent.html

  * igt@kms_content_protection@uevent-hdcp14:
    - shard-rkl:          [SKIP][534] ([i915#6944]) -> [SKIP][535] ([i915#14544] / [i915#6944])
   [534]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_content_protection@uevent-hdcp14.html
   [535]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_content_protection@uevent-hdcp14.html

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

  * igt@kms_display_modes@extended-mode-basic:
    - shard-rkl:          [SKIP][538] ([i915#13691] / [i915#14544]) -> [SKIP][539] ([i915#13691])
   [538]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_display_modes@extended-mode-basic.html
   [539]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-3/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-rkl:          [SKIP][540] ([i915#13749] / [i915#14544]) -> [SKIP][541] ([i915#13749])
   [540]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_dp_link_training@non-uhbr-mst.html
   [541]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_dp_linktrain_fallback@dsc-fallback:
    - shard-rkl:          [SKIP][542] ([i915#13707]) -> [SKIP][543] ([i915#13707] / [i915#14544])
   [542]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_dp_linktrain_fallback@dsc-fallback.html
   [543]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_dp_linktrain_fallback@dsc-fallback.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-rkl:          [SKIP][544] ([i915#3840]) -> [SKIP][545] ([i915#14544] / [i915#3840])
   [544]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
   [545]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-rkl:          [SKIP][546] ([i915#14544] / [i915#3555] / [i915#3840]) -> [SKIP][547] ([i915#3555] / [i915#3840])
   [546]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_dsc@dsc-with-bpc.html
   [547]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_feature_discovery@chamelium:
    - shard-rkl:          [SKIP][548] ([i915#4854]) -> [SKIP][549] ([i915#14544] / [i915#4854])
   [548]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_feature_discovery@chamelium.html
   [549]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_feature_discovery@chamelium.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-rkl:          [SKIP][550] ([i915#9934]) -> [SKIP][551] ([i915#14544] / [i915#9934]) +3 other tests skip
   [550]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_flip@2x-modeset-vs-vblank-race.html
   [551]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
    - shard-rkl:          [SKIP][552] ([i915#14544] / [i915#9934]) -> [SKIP][553] ([i915#9934]) +3 other tests skip
   [552]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
   [553]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-rkl:          [SKIP][554] ([i915#14544] / [i915#15643]) -> [SKIP][555] ([i915#15643]) +1 other test skip
   [554]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
   [555]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling:
    - shard-rkl:          [SKIP][556] ([i915#15643]) -> [SKIP][557] ([i915#14544] / [i915#15643]) +1 other test skip
   [556]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html
   [557]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt:
    - shard-rkl:          [SKIP][558] ([i915#14544] / [i915#1825]) -> [SKIP][559] ([i915#1825]) +17 other tests skip
   [558]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html
   [559]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-rkl:          [SKIP][560] ([i915#5439]) -> [SKIP][561] ([i915#14544] / [i915#5439])
   [560]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
   [561]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-rkl:          [SKIP][562] ([i915#15102] / [i915#3023]) -> [SKIP][563] ([i915#14544] / [i915#15102] / [i915#3023]) +13 other tests skip
   [562]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [563]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-dg2:          [SKIP][564] ([i915#15102] / [i915#3458]) -> [SKIP][565] ([i915#10433] / [i915#15102] / [i915#3458]) +3 other tests skip
   [564]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [565]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-rkl:          [SKIP][566] ([i915#1825]) -> [SKIP][567] ([i915#14544] / [i915#1825]) +23 other tests skip
   [566]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html
   [567]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-rkl:          [SKIP][568] ([i915#14544] / [i915#5439]) -> [SKIP][569] ([i915#5439])
   [568]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
   [569]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move:
    - shard-dg2:          [SKIP][570] ([i915#10433] / [i915#15102] / [i915#3458]) -> [SKIP][571] ([i915#15102] / [i915#3458]) +3 other tests skip
   [570]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html
   [571]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-modesetfrombusy:
    - shard-rkl:          [SKIP][572] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][573] ([i915#15102] / [i915#3023]) +12 other tests skip
   [572]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html
   [573]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-mtlp:         [SKIP][574] ([i915#1187] / [i915#12713]) -> [SKIP][575] ([i915#12713])
   [574]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-1/igt@kms_hdr@brightness-with-hdr.html
   [575]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-mtlp-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-rkl:          [SKIP][576] ([i915#14544] / [i915#15458]) -> [SKIP][577] ([i915#15458])
   [576]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_joiner@basic-force-ultra-joiner.html
   [577]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - shard-rkl:          [SKIP][578] ([i915#15459]) -> [SKIP][579] ([i915#14544] / [i915#15459])
   [578]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_joiner@invalid-modeset-force-big-joiner.html
   [579]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping:
    - shard-rkl:          [SKIP][580] ([i915#14544] / [i915#15709]) -> [SKIP][581] ([i915#15709])
   [580]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html
   [581]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier:
    - shard-rkl:          [SKIP][582] ([i915#15709]) -> [SKIP][583] ([i915#14544] / [i915#15709]) +3 other tests skip
   [582]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_plane@pixel-format-yf-tiled-modifier.html
   [583]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_plane@pixel-format-yf-tiled-modifier.html

  * igt@kms_plane_multiple@2x-tiling-4:
    - shard-rkl:          [SKIP][584] ([i915#13958]) -> [SKIP][585] ([i915#13958] / [i915#14544])
   [584]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_plane_multiple@2x-tiling-4.html
   [585]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_plane_multiple@2x-tiling-4.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-rkl:          [SKIP][586] ([i915#14544] / [i915#5354]) -> [SKIP][587] ([i915#5354])
   [586]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_pm_backlight@bad-brightness.html
   [587]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-7/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-tglu:         [FAIL][588] -> [SKIP][589] ([i915#15128])
   [588]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-5/igt@kms_pm_dc@dc6-dpms.html
   [589]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-tglu-6/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-rkl:          [SKIP][590] ([i915#14544] / [i915#9685]) -> [SKIP][591] ([i915#9685]) +1 other test skip
   [590]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_pm_dc@dc6-psr.html
   [591]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-2/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          [SKIP][592] ([i915#14544] / [i915#9340]) -> [SKIP][593] ([i915#3828])
   [592]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_pm_lpsp@kms-lpsp.html
   [593]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-5/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_prime@basic-crc-hybrid:
    - shard-rkl:          [SKIP][594] ([i915#6524]) -> [SKIP][595] ([i915#14544] / [i915#6524])
   [594]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_prime@basic-crc-hybrid.html
   [595]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_prime@basic-crc-hybrid.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-rkl:          [SKIP][596] ([i915#9683]) -> [SKIP][597] ([i915#14544] / [i915#9683])
   [596]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_psr2_su@page_flip-xrgb8888.html
   [597]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-pr-no-drrs:
    - shard-rkl:          [SKIP][598] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][599] ([i915#1072] / [i915#9732]) +9 other tests skip
   [598]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_psr@fbc-pr-no-drrs.html
   [599]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_psr@fbc-pr-no-drrs.html

  * igt@kms_psr@fbc-psr-primary-page-flip:
    - shard-rkl:          [SKIP][600] ([i915#1072] / [i915#9732]) -> [SKIP][601] ([i915#1072] / [i915#14544] / [i915#9732]) +11 other tests skip
   [600]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-2/igt@kms_psr@fbc-psr-primary-page-flip.html
   [601]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_psr@fbc-psr-primary-page-flip.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-rkl:          [SKIP][602] ([i915#9685]) -> [SKIP][603] ([i915#14544] / [i915#9685])
   [602]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [603]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-rkl:          [SKIP][604] ([i915#5289]) -> [SKIP][605] ([i915#14544] / [i915#5289])
   [604]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
   [605]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-rkl:          [SKIP][606] ([i915#14544] / [i915#3555]) -> [SKIP][607] ([i915#3555]) +3 other tests skip
   [606]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_setmode@basic-clone-single-crtc.html
   [607]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-rkl:          [SKIP][608] ([i915#3555]) -> [SKIP][609] ([i915#14544] / [i915#3555]) +1 other test skip
   [608]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_setmode@invalid-clone-exclusive-crtc.html
   [609]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-rkl:          [SKIP][610] ([i915#8623]) -> [SKIP][611] ([i915#14544] / [i915#8623])
   [610]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_tiled_display@basic-test-pattern.html
   [611]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vrr@flip-basic:
    - shard-rkl:          [SKIP][612] ([i915#15243] / [i915#3555]) -> [SKIP][613] ([i915#14544] / [i915#15243] / [i915#3555])
   [612]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_vrr@flip-basic.html
   [613]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@kms_vrr@flip-basic.html

  * igt@kms_vrr@flip-dpms:
    - shard-rkl:          [SKIP][614] ([i915#14544] / [i915#15243] / [i915#3555]) -> [SKIP][615] ([i915#15243] / [i915#3555])
   [614]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_vrr@flip-dpms.html
   [615]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-4/igt@kms_vrr@flip-dpms.html

  * igt@prime_vgem@fence-read-hang:
    - shard-rkl:          [SKIP][616] ([i915#14544] / [i915#3708]) -> [SKIP][617] ([i915#3708])
   [616]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@prime_vgem@fence-read-hang.html
   [617]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-8/igt@prime_vgem@fence-read-hang.html

  * igt@tools_test@sysfs_l3_parity:
    - shard-rkl:          [SKIP][618] -> [SKIP][619] ([i915#14544]) +9 other tests skip
   [618]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@tools_test@sysfs_l3_parity.html
   [619]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14582/shard-rkl-6/igt@tools_test@sysfs_l3_parity.html

  
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10333]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10333
  [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#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#10959]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10959
  [i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099
  [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
  [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#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920
  [i915#11965]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11965
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169
  [i915#12177]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12177
  [i915#12178]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12178
  [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#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#12454]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12454
  [i915#12712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12712
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910
  [i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13390]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13390
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13748]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13748
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13820
  [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#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118
  [i915#14121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14121
  [i915#14242]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14242
  [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259
  [i915#14419]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14419
  [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#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
  [i915#14888]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14888
  [i915#14995]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14995
  [i915#15060]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15060
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15104
  [i915#15106]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15106
  [i915#15128]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15128
  [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
  [i915#15140]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15140
  [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#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460
  [i915#15478]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15478
  [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#15520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15520
  [i915#15560]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15560
  [i915#15564]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15564
  [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582
  [i915#15608]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15608
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#15647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15647
  [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
  [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#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [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#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284
  [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#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
  [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#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [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#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
  [i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [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#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
  [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
  [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#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493
  [i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723
  [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6187
  [i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188
  [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
  [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7162]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7162
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7387
  [i915#7582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7582
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#7862]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7862
  [i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
  [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#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8808
  [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
  [i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [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#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [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#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808
  [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_8764 -> IGTPW_14582
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_18013: 5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_14582: 14582
  IGT_8764: 8764
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* ✗ Xe.CI.FULL: failure for tests/kms: More igt_crtc_t conversions
  2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
                   ` (23 preceding siblings ...)
  2026-02-21  1:27 ` ✗ i915.CI.Full: failure " Patchwork
@ 2026-02-21  6:32 ` Patchwork
  24 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-02-21  6:32 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms: More igt_crtc_t conversions
URL   : https://patchwork.freedesktop.org/series/161893/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8764_FULL -> XEIGTPW_14582_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_14582_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_14582_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_14582_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-bmg:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [FAIL][3] +4 other tests fail
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
    - shard-lnl:          NOTRUN -> [FAIL][4] +2 other tests fail
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-3/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area:
    - shard-lnl:          [PASS][5] -> [FAIL][6] +11 other tests fail
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-5/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-2/igt@kms_psr2_sf@psr2-overlay-primary-update-sf-dmg-area.html

  * igt@xe_pm_residency@cpg-basic:
    - shard-bmg:          [PASS][7] -> [ABORT][8]
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@xe_pm_residency@cpg-basic.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-9/igt@xe_pm_residency@cpg-basic.html

  
#### Warnings ####

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-lnl:          [SKIP][9] ([Intel XE#1406] / [Intel XE#2893] / [Intel XE#4608]) -> [FAIL][10] +9 other tests fail
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-5/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-lnl:          [SKIP][11] ([Intel XE#1406] / [Intel XE#2893]) -> [FAIL][12] +22 other tests fail
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-6/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-1/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
    - shard-bmg:          [SKIP][13] ([Intel XE#1406] / [Intel XE#1489]) -> [FAIL][14] +39 other tests fail
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-2/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-9/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html

  
New tests
---------

  New tests have been introduced between XEIGT_8764_FULL and XEIGTPW_14582_FULL:

### New IGT tests (8) ###

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-b-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.44] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.39] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-b-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.42] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-c-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.46] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.33] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-c-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.39] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-d-dp-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.49] s

  * igt@kms_concurrent@multi-plane-atomic-lowres@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [0.38] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_async_flips@alternate-sync-async-flip-atomic:
    - shard-bmg:          [PASS][15] -> [FAIL][16] ([Intel XE#3718] / [Intel XE#6078])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-7/igt@kms_async_flips@alternate-sync-async-flip-atomic.html

  * igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2:
    - shard-bmg:          [PASS][17] -> [FAIL][18] ([Intel XE#6078])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-7/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-c-dp-2.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2327]) +3 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
    - shard-lnl:          NOTRUN -> [SKIP][20] ([Intel XE#1407])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-2/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#7059])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#1124]) +6 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-6/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-lnl:          NOTRUN -> [SKIP][23] ([Intel XE#1124]) +3 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-5/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
    - shard-lnl:          NOTRUN -> [SKIP][24] ([Intel XE#2191])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-6/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#2314] / [Intel XE#2894])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p:
    - shard-lnl:          NOTRUN -> [SKIP][26] ([Intel XE#1512])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-6/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-1-displays-3840x2160p:
    - shard-bmg:          [PASS][27] -> [SKIP][28] ([Intel XE#367])
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-5/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-9/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-3-displays-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#367])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-4/igt@kms_bw@linear-tiling-3-displays-2560x1440p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs:
    - shard-lnl:          NOTRUN -> [SKIP][30] ([Intel XE#2887]) +3 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-3/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#2652]) +11 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-4/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#3432])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#2887]) +12 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs.html

  * igt@kms_chamelium_audio@dp-audio-edid:
    - shard-lnl:          NOTRUN -> [SKIP][34] ([Intel XE#373]) +2 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-2/igt@kms_chamelium_audio@dp-audio-edid.html

  * igt@kms_chamelium_color@ctm-blue-to-red:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#2325]) +2 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-4/igt@kms_chamelium_color@ctm-blue-to-red.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#2252]) +6 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-dp-1:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#6969]) +1 other test skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-dp-1.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-dp-1:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#6969] / [Intel XE#7006])
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-dp-1.html

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-bmg:          NOTRUN -> [FAIL][39] ([Intel XE#3304]) +2 other tests fail
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@kms_content_protection@atomic-hdcp14.html

  * igt@kms_content_protection@lic-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#2341]) +1 other test skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@kms_content_protection@lic-type-1.html

  * igt@kms_cursor_crc@cursor-offscreen-128x42:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#2320]) +3 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@kms_cursor_crc@cursor-offscreen-128x42.html

  * igt@kms_cursor_crc@cursor-rapid-movement-256x85:
    - shard-lnl:          NOTRUN -> [SKIP][42] ([Intel XE#1424]) +1 other test skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-6/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#2321]) +1 other test skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-bmg:          [PASS][44] -> [DMESG-WARN][45] ([Intel XE#5354])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#2244])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-6/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_fbcon_fbt@psr:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#776])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@display-4x:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#1138])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@kms_feature_discovery@display-4x.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-lnl:          NOTRUN -> [SKIP][49] ([Intel XE#1421]) +1 other test skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-4/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [PASS][50] -> [FAIL][51] ([Intel XE#301] / [Intel XE#3149]) +1 other test fail
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling:
    - shard-lnl:          NOTRUN -> [SKIP][52] ([Intel XE#1397] / [Intel XE#1745])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-8/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling@pipe-a-default-mode:
    - shard-lnl:          NOTRUN -> [SKIP][53] ([Intel XE#1397])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-8/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][54] ([Intel XE#7178]) +2 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-lnl:          NOTRUN -> [SKIP][55] ([Intel XE#7178]) +1 other test skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

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

  * igt@kms_frontbuffer_tracking@drrs-modesetfrombusy:
    - shard-lnl:          NOTRUN -> [SKIP][57] ([Intel XE#651]) +3 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-2/igt@kms_frontbuffer_tracking@drrs-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#2311]) +17 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-render.html

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

  * igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][60] ([Intel XE#7061]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-argb161616f-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt:
    - shard-lnl:          NOTRUN -> [SKIP][61] ([Intel XE#6312])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-mmap-wc:
    - shard-lnl:          NOTRUN -> [SKIP][62] ([Intel XE#7061])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-4/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#2313]) +22 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-lnl:          NOTRUN -> [SKIP][64] ([Intel XE#656]) +8 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_joiner@basic-max-non-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#4298])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-1/igt@kms_joiner@basic-max-non-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-lnl:          NOTRUN -> [SKIP][66] ([Intel XE#6900])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier:
    - shard-bmg:          NOTRUN -> [SKIP][67] ([Intel XE#7283]) +1 other test skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-lnl:          NOTRUN -> [SKIP][68] ([Intel XE#599])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-1/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-lnl:          NOTRUN -> [SKIP][69] ([Intel XE#4596])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-8/igt@kms_plane_multiple@2x-tiling-y.html
    - shard-bmg:          NOTRUN -> [SKIP][70] ([Intel XE#5021])
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25:
    - shard-lnl:          NOTRUN -> [SKIP][71] ([Intel XE#2763] / [Intel XE#6886]) +3 other tests skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5:
    - shard-bmg:          NOTRUN -> [SKIP][72] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#870])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-lnl:          NOTRUN -> [SKIP][74] ([Intel XE#1128] / [Intel XE#1406])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-4/igt@kms_psr2_su@page_flip-p010.html
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#1406] / [Intel XE#2387])
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-7/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@pr-sprite-render:
    - shard-bmg:          NOTRUN -> [SKIP][76] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +5 other tests skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@kms_psr@pr-sprite-render.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-lnl:          [PASS][77] -> [SKIP][78] ([Intel XE#1406] / [Intel XE#4692])
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-5/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-8/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-bmg:          NOTRUN -> [SKIP][79] ([Intel XE#1435])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_sharpness_filter@filter-tap:
    - shard-bmg:          NOTRUN -> [SKIP][80] ([Intel XE#6503])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@kms_sharpness_filter@filter-tap.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          NOTRUN -> [FAIL][81] ([Intel XE#1729])
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-bmg:          NOTRUN -> [SKIP][82] ([Intel XE#1499]) +1 other test skip
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
    - shard-lnl:          [PASS][83] -> [FAIL][84] ([Intel XE#2142]) +1 other test fail
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-4/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-5/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html

  * igt@xe_eudebug@attach-debug-metadata:
    - shard-lnl:          NOTRUN -> [SKIP][85] ([Intel XE#4837])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@xe_eudebug@attach-debug-metadata.html

  * igt@xe_eudebug@basic-vm-bind-vm-destroy-discovery:
    - shard-bmg:          NOTRUN -> [SKIP][86] ([Intel XE#4837])
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@xe_eudebug@basic-vm-bind-vm-destroy-discovery.html

  * igt@xe_eudebug_online@set-breakpoint:
    - shard-lnl:          NOTRUN -> [SKIP][87] ([Intel XE#4837] / [Intel XE#6665])
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@xe_eudebug_online@set-breakpoint.html

  * igt@xe_eudebug_online@set-breakpoint-sigint-debugger:
    - shard-bmg:          NOTRUN -> [SKIP][88] ([Intel XE#4837] / [Intel XE#6665]) +4 other tests skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@xe_eudebug_online@set-breakpoint-sigint-debugger.html

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

  * igt@xe_evict@evict-small-cm:
    - shard-lnl:          NOTRUN -> [SKIP][90] ([Intel XE#6540] / [Intel XE#688]) +1 other test skip
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-1/igt@xe_evict@evict-small-cm.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue:
    - shard-lnl:          NOTRUN -> [SKIP][91] ([Intel XE#1392]) +1 other test skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-4/igt@xe_exec_basic@multigpu-once-bindexecqueue.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][92] ([Intel XE#2322]) +6 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm:
    - shard-bmg:          NOTRUN -> [SKIP][93] ([Intel XE#7136]) +8 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-7/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm.html
    - shard-lnl:          NOTRUN -> [SKIP][94] ([Intel XE#7136])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-2/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm.html

  * igt@xe_exec_multi_queue@max-queues-preempt-mode-dyn-priority-smem:
    - shard-lnl:          NOTRUN -> [SKIP][95] ([Intel XE#6874]) +7 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-6/igt@xe_exec_multi_queue@max-queues-preempt-mode-dyn-priority-smem.html

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

  * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-single-vma:
    - shard-lnl:          NOTRUN -> [SKIP][97] ([Intel XE#6196])
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-8/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-single-vma.html

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

  * igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr:
    - shard-bmg:          NOTRUN -> [SKIP][99] ([Intel XE#7138]) +8 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr.html

  * igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc:
    - shard-bmg:          [PASS][100] -> [ABORT][101] ([Intel XE#5545] / [Intel XE#6652])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-7/igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@xe_fault_injection@vm-bind-fail-xe_vma_ops_alloc.html

  * igt@xe_mmap@pci-membarrier-parallel:
    - shard-lnl:          NOTRUN -> [SKIP][102] ([Intel XE#5100])
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-5/igt@xe_mmap@pci-membarrier-parallel.html

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

  * igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch:
    - shard-lnl:          NOTRUN -> [SKIP][104] ([Intel XE#6964])
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch.html

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

  * igt@xe_pm@d3hot-i2c:
    - shard-bmg:          NOTRUN -> [SKIP][106] ([Intel XE#5742])
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-8/igt@xe_pm@d3hot-i2c.html

  * igt@xe_pm@vram-d3cold-threshold:
    - shard-lnl:          NOTRUN -> [SKIP][107] ([Intel XE#579])
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@xe_pm@vram-d3cold-threshold.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-rpm:
    - shard-bmg:          NOTRUN -> [SKIP][108] ([Intel XE#4733])
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@xe_pxp@pxp-stale-bo-bind-post-rpm.html

  * igt@xe_query@multigpu-query-invalid-extension:
    - shard-bmg:          NOTRUN -> [SKIP][109] ([Intel XE#944]) +1 other test skip
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@xe_query@multigpu-query-invalid-extension.html

  * igt@xe_query@multigpu-query-pxp-status:
    - shard-lnl:          NOTRUN -> [SKIP][110] ([Intel XE#944]) +1 other test skip
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@xe_query@multigpu-query-pxp-status.html

  * igt@xe_sriov_flr@flr-each-isolation:
    - shard-lnl:          NOTRUN -> [SKIP][111] ([Intel XE#3342])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-7/igt@xe_sriov_flr@flr-each-isolation.html

  
#### Possible fixes ####

  * igt@kms_async_flips@async-flip-with-page-flip-events-linear:
    - shard-lnl:          [FAIL][112] ([Intel XE#5993]) -> [PASS][113] +3 other tests pass
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-2/igt@kms_async_flips@async-flip-with-page-flip-events-linear.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-6/igt@kms_async_flips@async-flip-with-page-flip-events-linear.html

  * igt@kms_setmode@basic@pipe-b-edp-1:
    - shard-lnl:          [FAIL][114] ([Intel XE#6361]) -> [PASS][115] +2 other tests pass
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-3/igt@kms_setmode@basic@pipe-b-edp-1.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-8/igt@kms_setmode@basic@pipe-b-edp-1.html

  * igt@xe_exec_basic@many-execqueues-rebind:
    - shard-bmg:          [ABORT][116] -> [PASS][117] +1 other test pass
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-2/igt@xe_exec_basic@many-execqueues-rebind.html
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-9/igt@xe_exec_basic@many-execqueues-rebind.html

  * igt@xe_exec_system_allocator@process-many-stride-new-madvise:
    - shard-bmg:          [INCOMPLETE][118] ([Intel XE#2594]) -> [PASS][119] +1 other test pass
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-9/igt@xe_exec_system_allocator@process-many-stride-new-madvise.html
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@xe_exec_system_allocator@process-many-stride-new-madvise.html

  * igt@xe_pm_residency@aspm_link_residency:
    - shard-bmg:          [SKIP][120] ([Intel XE#7258]) -> [PASS][121]
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-6/igt@xe_pm_residency@aspm_link_residency.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-2/igt@xe_pm_residency@aspm_link_residency.html

  
#### Warnings ####

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-d-hdmi-a-3:
    - shard-bmg:          [SKIP][122] ([Intel XE#2652] / [Intel XE#787]) -> [SKIP][123] ([Intel XE#2652]) +41 other tests skip
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html

  * igt@kms_color_pipeline@plane-lut3d-green-only:
    - shard-bmg:          [SKIP][124] ([Intel XE#6969] / [Intel XE#7006]) -> [SKIP][125] ([Intel XE#6969] / [Intel XE#7006] / [Intel XE#7289])
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_color_pipeline@plane-lut3d-green-only.html
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_color_pipeline@plane-lut3d-green-only.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-edp-1:
    - shard-lnl:          [SKIP][126] ([Intel XE#6969]) -> [SKIP][127] ([Intel XE#6969] / [Intel XE#7289]) +1 other test skip
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-6/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-edp-1.html
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-1/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-edp-1.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-hdmi-a-3:
    - shard-bmg:          [SKIP][128] ([Intel XE#6969]) -> [SKIP][129] ([Intel XE#6969] / [Intel XE#7289])
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-hdmi-a-3.html
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-5/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-hdmi-a-3.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-edp-1:
    - shard-lnl:          [SKIP][130] ([Intel XE#6969] / [Intel XE#7006]) -> [SKIP][131] ([Intel XE#6969] / [Intel XE#7006] / [Intel XE#7289]) +1 other test skip
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-6/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-edp-1.html
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-1/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-edp-1.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
    - shard-lnl:          [SKIP][132] ([Intel XE#6886]) -> [SKIP][133] ([Intel XE#2763] / [Intel XE#6886]) +49 other tests skip
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b:
    - shard-bmg:          [SKIP][134] ([Intel XE#6886]) -> [SKIP][135] ([Intel XE#2763] / [Intel XE#6886]) +24 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14582/shard-bmg-3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [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#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
  [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#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142
  [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#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#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#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
  [Intel XE#4692]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4692
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
  [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
  [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
  [Intel XE#5742]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5742
  [Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
  [Intel XE#586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/586
  [Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
  [Intel XE#5993]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5993
  [Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
  [Intel XE#6196]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6196
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6361
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [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#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
  [Intel XE#7006]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7006
  [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#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
  [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
  [Intel XE#7258]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7258
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7289]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7289
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * IGT: IGT_8764 -> IGTPW_14582
  * Linux: xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120 -> xe-4581-4359810f1f728eb3dfe95476e5de93fed017d159

  IGTPW_14582: 14582
  IGT_8764: 8764
  xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120: 157c1f59af33fb9acf6e0e055e7317b634711120
  xe-4581-4359810f1f728eb3dfe95476e5de93fed017d159: 4359810f1f728eb3dfe95476e5de93fed017d159

== Logs ==

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

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

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

end of thread, other threads:[~2026-02-21  6:32 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-20 14:01 [PATCH i-g-t 00/21] tests/kms: More igt_crtc_t conversions Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 01/21] tests/intel/kms_flip_scaled_crc: Remove unused 'enum pipe pipe' Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 02/21] tests/kms_concurrent: Actually run the test over all connected crtcs Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 03/21] tests/amdgpu/amd_abm: Don't use uninitialized 'pipe' Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 04/21] tests/kms: Use 'enum pipe' over int' Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 05/21] lib/kms: Add igt_crtc_for_crtc_id() Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 06/21] tests/kms_lease: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 07/21] tests/kms_lease: Pass lease_t to prepare_crtc() Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 08/21] tests/intel/kms_frontbuffer_tracking: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 09/21] tests/kms_plane_scaling: " Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 10/21] tests/drm_read: " Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 11/21] tests/intel/kms_psr2_sf: Convert pipes[] to crtcs[] Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 12/21] tests/kms_vblank: Use igt_crtc_t instead of enum pipe Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 13/21] tests/kms_plane_multiple: " Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 14/21] tests/kms_tiled_display: " Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 15/21] tests/intel/kms_psr: " Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 16/21] tests/kms_prime: " Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 17/21] tests/chamelium: " Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 18/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 1 Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 19/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 2 Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 20/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 3 Ville Syrjala
2026-02-20 14:01 ` [PATCH i-g-t 21/21] tests/kms: Use igt_crtc_t instead of enum pipe, part 4 Ville Syrjala
2026-02-20 17:33 ` ✓ Xe.CI.BAT: success for tests/kms: More igt_crtc_t conversions Patchwork
2026-02-20 17:49 ` ✓ i915.CI.BAT: " Patchwork
2026-02-21  1:27 ` ✗ i915.CI.Full: failure " Patchwork
2026-02-21  6:32 ` ✗ Xe.CI.FULL: " Patchwork

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