Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst
@ 2025-02-03  8:12 Kunal Joshi
  2025-02-03  8:12 ` [PATCH i-g-t 1/5] tests/intel/kms_joiner_helper: add helper for joiner-related functions Kunal Joshi
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Kunal Joshi @ 2025-02-03  8:12 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

Add new test subtests kms_dp_linktraining to validate both
UHBR and non-UHBR link rates over SST and MST configurations.
Add four new subtests (uhbr-sst, uhbr-mst, non-uhbr-sst, non-uhbr-mst)
to check if the link rates match the expected UHBR or NON-UHBR capability
and whether the outputs are MST or SST.

Kunal Joshi (5):
  tests/intel/kms_joiner_helper: add helper for joiner-related functions
  tests/intel/kms_mst_helper: add helper for MST-related functions
  lib/igt_kms: add function to set link params
  tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over
    SST/MST
  HAX: DO NOT MERGE

 lib/igt_kms.c                            |  33 ++
 lib/igt_kms.h                            |   2 +
 tests/intel-ci/fast-feedback.testlist    |  14 +
 tests/intel-ci/xe-fast-feedback.testlist |  14 +
 tests/intel/kms_dp_linktrain_fallback.c  |  28 +-
 tests/intel/kms_dp_linktraining.c        | 372 +++++++++++++++++++++++
 tests/intel/kms_joiner.c                 |  15 +-
 tests/intel/kms_joiner_helper.c          | 176 +++++++++++
 tests/intel/kms_joiner_helper.h          |  15 +
 tests/intel/kms_mst_helper.c             |  48 +++
 tests/intel/kms_mst_helper.h             |  10 +
 tests/meson.build                        |   6 +
 12 files changed, 696 insertions(+), 37 deletions(-)
 create mode 100644 tests/intel/kms_dp_linktraining.c
 create mode 100644 tests/intel/kms_joiner_helper.c
 create mode 100644 tests/intel/kms_joiner_helper.h
 create mode 100644 tests/intel/kms_mst_helper.c
 create mode 100644 tests/intel/kms_mst_helper.h

-- 
2.25.1


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

* [PATCH i-g-t 1/5] tests/intel/kms_joiner_helper: add helper for joiner-related functions
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
@ 2025-02-03  8:12 ` Kunal Joshi
  2025-02-03  8:12 ` [PATCH i-g-t 2/5] tests/intel/kms_mst_helper: add helper for MST-related functions Kunal Joshi
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Kunal Joshi @ 2025-02-03  8:12 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Jeevan B

Add helper to handle Big Joiner and Ultra Joiner
logic in a centralized manner. Add utility functions
to set and manage master pipes, as well as to assign
consecutive pipes for multi-pipe configurations.

v2: cosmetic changes (Swati)

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/intel/kms_joiner.c        |  15 +--
 tests/intel/kms_joiner_helper.c | 176 ++++++++++++++++++++++++++++++++
 tests/intel/kms_joiner_helper.h |  15 +++
 tests/meson.build               |   1 +
 4 files changed, 194 insertions(+), 13 deletions(-)
 create mode 100644 tests/intel/kms_joiner_helper.c
 create mode 100644 tests/intel/kms_joiner_helper.h

diff --git a/tests/intel/kms_joiner.c b/tests/intel/kms_joiner.c
index 086cfeb71..0a9910046 100644
--- a/tests/intel/kms_joiner.c
+++ b/tests/intel/kms_joiner.c
@@ -37,6 +37,7 @@
 #include "igt.h"
 #include "xe/xe_query.h"
 #include "kms_dsc_helper.c"
+#include "kms_joiner_helper.h"
 
 /**
  * SUBTEST: invalid-modeset-big-joiner
@@ -100,18 +101,6 @@ typedef struct {
 
 static int max_dotclock;
 
-static void set_all_master_pipes_for_platform(data_t *data)
-{
-	enum pipe pipe;
-
-	for (pipe = PIPE_A; pipe < IGT_MAX_PIPES - 1; pipe++) {
-		if (data->display.pipes[pipe].enabled && data->display.pipes[pipe + 1].enabled) {
-			data->master_pipes |= BIT(pipe);
-			igt_info("Found master pipe %s\n", kmstest_pipe_name(pipe));
-		}
-	}
-}
-
 static void enable_force_joiner_on_all_non_big_joiner_outputs(data_t *data)
 {
 	bool status;
@@ -512,7 +501,7 @@ igt_main
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
 		kmstest_set_vt_graphics_mode();
 		igt_display_require(&data.display, data.drm_fd);
-		set_all_master_pipes_for_platform(&data);
+		igt_set_all_master_pipes_for_platform(&data.display, &data.master_pipes);
 		igt_require(data.display.is_atomic);
 		max_dotclock = igt_get_max_dotclock(data.drm_fd);
 
diff --git a/tests/intel/kms_joiner_helper.c b/tests/intel/kms_joiner_helper.c
new file mode 100644
index 000000000..a2155f809
--- /dev/null
+++ b/tests/intel/kms_joiner_helper.c
@@ -0,0 +1,176 @@
+#include "kms_joiner_helper.h"
+#include "igt.h"
+#include "igt_kms.h"
+#include "intel_chipset.h"
+
+/*
+ * Detect if the output needs 1, 2, or 4 pipes (non-joiner, big joiner, ultra).
+ */
+static int get_required_pipes(int drm_fd, igt_output_t *output)
+{
+	bool is_big = false, is_ultra = false;
+	int max_dotclock;
+	drmModeModeInfo mode;
+
+	if (!is_intel_device(drm_fd))
+		return -1;
+
+	max_dotclock = igt_get_max_dotclock(drm_fd);
+
+	is_ultra = ultrajoiner_mode_found(drm_fd,
+			output->config.connector,
+			max_dotclock,
+			&mode);
+	is_big = bigjoiner_mode_found(drm_fd,
+			output->config.connector,
+			max_dotclock,
+			&mode);
+
+	if (is_ultra)
+		return 4;
+	if (is_big)
+		return 2;
+
+	return 1;
+}
+
+/*
+ * Internal helper to find a block of consecutive free pipes
+ * in available_pipes_mask. If count > 1, the first pipe must also
+ * be in master_pipes_mask.
+ *
+ * Returns the starting pipe index or -1 if not found.
+ */
+static int find_consecutive_pipes(int n_pipes,
+				  uint32_t available_pipes_mask,
+				  uint32_t master_pipes_mask,
+				  int count)
+{
+	int i = 0, pipe_idx = 0;
+	bool can_use;
+
+	for (int start = 0; start < n_pipes; start++) {
+		if (((start + count) - 1) >= n_pipes)
+			break;
+
+		if ((count > 1) && (!(BIT(start) & master_pipes_mask)))
+			continue;
+
+		can_use = true;
+		for (i = 0; i < count; i++) {
+			pipe_idx = start + i;
+			if (!(BIT(pipe_idx) & available_pipes_mask)) {
+				can_use = false;
+				break;
+			}
+		}
+		if (can_use)
+			return start;
+	}
+	return -1;
+}
+
+static enum pipe get_next_master_pipe(uint32_t pipe_mask)
+{
+	int i;
+
+	if (!pipe_mask)
+		return PIPE_NONE;
+
+	i = ffs(pipe_mask) - 1;
+
+	if (i < 0)
+		return PIPE_NONE;
+
+	return i;
+}
+
+/**
+ * igt_set_all_master_pipes_for_platform:
+ * @master_pipes: Pointer to the variable to store the master pipes bitmask.
+ * @display: The display structure containing pipe information.
+ *
+ * This function sets the master pipes for the platform by checking if consecutive
+ * pipes are enabled. If both pipe and the next pipe are enabled, the pipe is
+ * considered a master pipe.
+ */
+void igt_set_all_master_pipes_for_platform(igt_display_t *display, uint32_t *master_pipes)
+{
+	enum pipe pipe;
+
+	*master_pipes = 0;
+	for (pipe = PIPE_A; pipe < IGT_MAX_PIPES - 1; pipe++) {
+		if (display->pipes[pipe].enabled && display->pipes[pipe + 1].enabled) {
+			*master_pipes |= BIT(pipe);
+			igt_info("Found master pipe %s\n", kmstest_pipe_name(pipe));
+		}
+	}
+}
+
+/*
+ * @drm_fd: DRM file descriptor
+ * @outputs: array of pointers to igt_output_t
+ * @num_outputs: how many outputs in the array
+ * @n_pipes: total number of pipes available
+ * @used_pipes_mask: pointer to a bitmask (in/out) of already-used pipes
+ * @master_pipes_mask: bitmask of valid "master" pipes
+ * @valid_pipes_mask: bitmask of valid (non-fused) pipes
+ *
+ * Assign pipes to outputs based on the number of required pipes.
+ * This function will assign 1, 2, or 4 consecutive pipes to each output.
+ * It will also mark the used pipes in the bitmask.
+ *
+ * Returns: true if all outputs can be assigned successfully; false otherwise.
+ */
+bool igt_assign_pipes_for_outputs(int drm_fd,
+				  igt_output_t **outputs,
+				  int num_outputs,
+				  int n_pipes,
+				  uint32_t *used_pipes_mask,
+				  uint32_t master_pipes_mask,
+				  uint32_t valid_pipes_mask)
+{
+	int i = 0, idx  = 0, needed = 0, start = 0;
+	uint32_t available_pipes_mask = 0;
+	enum pipe mp = PIPE_NONE;
+	igt_output_t *out;
+
+	for (idx = 0; idx < num_outputs; idx++) {
+		out = outputs[idx];
+		needed = get_required_pipes(drm_fd, out);
+		if (needed < 0)
+			return false;
+
+		available_pipes_mask = (~(*used_pipes_mask)) & valid_pipes_mask;
+		start = find_consecutive_pipes(n_pipes, available_pipes_mask,
+				master_pipes_mask, needed);
+
+		if (start < 0) {
+			igt_debug("Cannot allocate %d consecutive pipes for output %s\n",
+					needed, out->name);
+			return false;
+		}
+
+		igt_info("Assigning %d pipes [start=%s..%s] to output %s\n",
+				needed, kmstest_pipe_name(start),
+				kmstest_pipe_name(start + needed - 1), out->name);
+
+		if (needed > 1) {
+			mp = get_next_master_pipe(BIT(start));
+
+			if (mp == PIPE_NONE) {
+				igt_debug("Failed to confirm master pipe for %s\n",
+						out->name);
+				return false;
+			}
+			igt_output_set_pipe(out, start);
+			igt_debug("Using pipe %s as master.\n",
+					kmstest_pipe_name(start));
+		} else
+			igt_output_set_pipe(out, start);
+
+		for (i = 0; i < needed; i++)
+			*used_pipes_mask |= BIT(start + i);
+	}
+	return true;
+}
diff --git a/tests/intel/kms_joiner_helper.h b/tests/intel/kms_joiner_helper.h
new file mode 100644
index 000000000..95e71a229
--- /dev/null
+++ b/tests/intel/kms_joiner_helper.h
@@ -0,0 +1,15 @@
+#ifndef KMS_JOINER_HELPER_H
+#define KMS_JOINER_HELPER_H
+
+#include "igt_kms.h"
+
+void igt_set_all_master_pipes_for_platform(igt_display_t *display,
+					   uint32_t *master_pipes);
+bool igt_assign_pipes_for_outputs(int drm_fd,
+				  igt_output_t **outputs,
+				  int num_outputs,
+				  int n_pipes,
+				  uint32_t *used_pipes_mask,
+				  uint32_t master_pipes_mask,
+				  uint32_t valid_pipes_mask);
+#endif
diff --git a/tests/meson.build b/tests/meson.build
index 33dffad31..b2a7d7760 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -367,6 +367,7 @@ extra_sources = {
 	'kms_chamelium_frames': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
 	'kms_chamelium_hpd': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
 	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
+	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
 	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],
 }
 
-- 
2.25.1


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

* [PATCH i-g-t 2/5] tests/intel/kms_mst_helper: add helper for MST-related functions
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
  2025-02-03  8:12 ` [PATCH i-g-t 1/5] tests/intel/kms_joiner_helper: add helper for joiner-related functions Kunal Joshi
@ 2025-02-03  8:12 ` Kunal Joshi
  2025-02-10  7:16   ` Nautiyal, Ankit K
  2025-02-03  8:12 ` [PATCH i-g-t 3/5] lib/igt_kms: add function to set link params Kunal Joshi
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Kunal Joshi @ 2025-02-03  8:12 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi, Jeevan B

Add helper to centralize commonly used MST-related logic.
igt_find_all_mst_output_in_topology() enumerates MST outputs
that share the same root connector id.

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/intel/kms_dp_linktrain_fallback.c | 28 +++------------
 tests/intel/kms_mst_helper.c            | 48 +++++++++++++++++++++++++
 tests/intel/kms_mst_helper.h            | 10 ++++++
 tests/meson.build                       |  1 +
 4 files changed, 63 insertions(+), 24 deletions(-)
 create mode 100644 tests/intel/kms_mst_helper.c
 create mode 100644 tests/intel/kms_mst_helper.h

diff --git a/tests/intel/kms_dp_linktrain_fallback.c b/tests/intel/kms_dp_linktrain_fallback.c
index 415005774..bcfb2f0a0 100644
--- a/tests/intel/kms_dp_linktrain_fallback.c
+++ b/tests/intel/kms_dp_linktrain_fallback.c
@@ -16,6 +16,7 @@
 #include <sys/types.h>
 #include "igt_sysfs.h"
 #include "igt.h"
+#include "kms_mst_helper.h"
 
 /**
  * SUBTEST: dp-fallback
@@ -47,28 +48,6 @@ typedef int (*condition_check_fn)(int drm_fd, igt_output_t *output);
 
 IGT_TEST_DESCRIPTION("Test link training fallback");
 
-static void find_mst_outputs(int drm_fd, data_t *data,
-			     igt_output_t *output,
-			     igt_output_t *mst_outputs[],
-			     int *num_mst_outputs)
-{
-	int output_root_id, root_id;
-	igt_output_t *connector_output;
-
-	output_root_id = igt_get_dp_mst_connector_id(output);
-	/*
-	 * If output is MST check all other connected output which shares
-	 * same path and fill mst_outputs and num_mst_outputs
-	 */
-	for_each_connected_output(&data->display, connector_output) {
-		if (!igt_check_output_is_dp_mst(connector_output))
-			continue;
-		root_id = igt_get_dp_mst_connector_id(connector_output);
-		if (((*num_mst_outputs) < IGT_MAX_PIPES) && root_id == output_root_id)
-			mst_outputs[(*num_mst_outputs)++] = connector_output;
-	}
-}
-
 static bool setup_mst_outputs(data_t *data, igt_output_t *mst_output[],
 			      int *output_count)
 {
@@ -83,8 +62,9 @@ static bool setup_mst_outputs(data_t *data, igt_output_t *mst_output[],
 		    traversed_mst_outputs[i] == data->output->config.connector->connector_id)
 			return false;
 
-	find_mst_outputs(data->drm_fd, data, data->output,
-			 mst_output, output_count);
+       igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd, &data->display, data->output,
+							mst_output, output_count),
+		    "Unable to find mst outputs\n");
 
 	for (i = 0; i < *output_count; i++) {
 		output = mst_output[i];
diff --git a/tests/intel/kms_mst_helper.c b/tests/intel/kms_mst_helper.c
new file mode 100644
index 000000000..9d52068f7
--- /dev/null
+++ b/tests/intel/kms_mst_helper.c
@@ -0,0 +1,48 @@
+#include "kms_mst_helper.h"
+
+/*
+ * @drm_fd: DRM file descriptor
+ * @display: pointer to an #igt_display_t structure
+ * @output: target output
+ * @mst_outputs: filled with mst output of same toplogy as @output
+ * @num_mst_outputs: filled with count of mst outputs found in topology
+ * @n_pipes: total number of pipes available
+ * @used_pipes_mask: pointer to a bitmask (in/out) of already-used pipes
+ * @master_pipes_mask: bitmask of valid "master" pipes
+ * @valid_pipes_mask: bitmask of valid (non-fused) pipes
+ *
+ * Assign pipes to outputs based on the number of required pipes.
+ * This function will assign 1, 2, or 4 consecutive pipes to each output.
+ * It will also mark the used pipes in the bitmask.
+ *
+ * Returns: true if all outputs can be assigned successfully; false otherwise.
+ */
+bool igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
+					 igt_output_t *output,
+					 igt_output_t *mst_outputs[],
+					 int *num_mst_outputs)
+{
+	int output_root_id, root_id;
+	igt_output_t *connector_output;
+
+	if (!igt_check_output_is_dp_mst(output))
+		return false;
+
+	output_root_id = igt_get_dp_mst_connector_id(output);
+	if (output_root_id == -EINVAL)
+		return false;
+
+	/*
+	 * If output is MST, check all other connected output which shares
+	 * same path and fill mst_outputs and num_mst_outputs
+	 */
+	for_each_connected_output(display, connector_output) {
+		if (!igt_check_output_is_dp_mst(connector_output))
+			continue;
+
+		root_id = igt_get_dp_mst_connector_id(connector_output);
+		if (((*num_mst_outputs) < IGT_MAX_PIPES) && root_id == output_root_id)
+			mst_outputs[(*num_mst_outputs)++] = connector_output;
+	}
+	return true;
+}
diff --git a/tests/intel/kms_mst_helper.h b/tests/intel/kms_mst_helper.h
new file mode 100644
index 000000000..291fcebfe
--- /dev/null
+++ b/tests/intel/kms_mst_helper.h
@@ -0,0 +1,10 @@
+#ifndef KMS_MST_HELPER_H
+#define KMS_MST_HELPER_H
+
+#include "igt.h"
+
+bool igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
+					 igt_output_t *output,
+					 igt_output_t *mst_outputs[],
+					 int *num_mst_outputs);
+#endif
diff --git a/tests/meson.build b/tests/meson.build
index b2a7d7760..b9dd162cc 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -367,6 +367,7 @@ extra_sources = {
 	'kms_chamelium_frames': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
 	'kms_chamelium_hpd': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
 	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
+        'kms_dp_linktrain_fallback': [ join_paths ('intel', 'kms_mst_helper.c') ],
 	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
 	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],
 }
-- 
2.25.1


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

* [PATCH i-g-t 3/5] lib/igt_kms: add function to set link params
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
  2025-02-03  8:12 ` [PATCH i-g-t 1/5] tests/intel/kms_joiner_helper: add helper for joiner-related functions Kunal Joshi
  2025-02-03  8:12 ` [PATCH i-g-t 2/5] tests/intel/kms_mst_helper: add helper for MST-related functions Kunal Joshi
@ 2025-02-03  8:12 ` Kunal Joshi
  2025-02-11  9:53   ` [i-g-t,3/5] " Murthy, Arun R
  2025-02-03  8:12 ` [PATCH i-g-t 4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST Kunal Joshi
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Kunal Joshi @ 2025-02-03  8:12 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

add function to force link rate and lane count
for given output, install exit handle to set auto
at exit

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_kms.c | 33 +++++++++++++++++++++++++++++++++
 lib/igt_kms.h |  2 ++
 2 files changed, 35 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 90f44b4d3..424056252 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -7190,6 +7190,39 @@ void igt_reset_link_params(int drm_fd, igt_output_t *output)
 	drmModeFreeConnector(temp);
 }
 
+/**
+ * igt_set_link_params:
+ * @drm_fd: A drm file descriptor
+ * @output: Target output
+ *
+ * set link rate and lane count to given value, also installs exit handler
+ * to set link rate and lane count to auto on exit
+ */
+void igt_set_link_params(int drm_fd, igt_output_t *output,
+			   char *link_rate, char *lane_count)
+{
+	bool valid;
+	drmModeConnector *temp;
+
+	valid = true;
+	valid = valid && connector_attr_set_debugfs(drm_fd, output->config.connector,
+						    "i915_dp_force_link_rate",
+						    link_rate, "auto", true);
+	valid = valid && connector_attr_set_debugfs(drm_fd, output->config.connector,
+						    "i915_dp_force_lane_count",
+						    lane_count, "auto", true);
+	igt_assert_f(valid, "Unable to set attr or install exit handler\n");
+	dump_connector_attrs();
+	igt_install_exit_handler(reset_connectors_at_exit);
+
+	/*
+	 * To allow callers to always use GetConnectorCurrent we need to force a
+	 * redetection here.
+	 */
+	temp = drmModeGetConnector(drm_fd, output->config.connector->connector_id);
+	drmModeFreeConnector(temp);
+}
+
 /**
  * igt_backlight_read:
  * @result:	Pointer to store the result
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 8810123fb..f696847a4 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1268,6 +1268,8 @@ bool igt_has_force_link_training_failure_debugfs(int drmfd, igt_output_t *output
 int igt_get_dp_pending_lt_failures(int drm_fd, igt_output_t *output);
 int igt_get_dp_pending_retrain(int drm_fd, igt_output_t *output);
 void igt_reset_link_params(int drm_fd, igt_output_t *output);
+void igt_set_link_params(int drm_fd, igt_output_t *output,
+			   char *link_rate, char *lane_count);
 int igt_backlight_read(int *result, const char *fname, igt_backlight_context_t *context);
 int igt_backlight_write(int value, const char *fname, igt_backlight_context_t *context);
 
-- 
2.25.1


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

* [PATCH i-g-t 4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
                   ` (2 preceding siblings ...)
  2025-02-03  8:12 ` [PATCH i-g-t 3/5] lib/igt_kms: add function to set link params Kunal Joshi
@ 2025-02-03  8:12 ` Kunal Joshi
  2025-02-04 14:01   ` Sharma, Swati2
  2025-02-11 12:39   ` [i-g-t,4/5] " Murthy, Arun R
  2025-02-03  8:12 ` [PATCH i-g-t 5/5] HAX: DO NOT MERGE Kunal Joshi
                   ` (3 subsequent siblings)
  7 siblings, 2 replies; 13+ messages in thread
From: Kunal Joshi @ 2025-02-03  8:12 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

Add new test subtests kms_dp_linktraining
to validate both UHBR and non-UHBR link rates over SST
and MST configurations.
Add four new subtests (uhbr-sst, uhbr-mst, non-uhbr-sst, non-uhbr-mst)
to check if the link rates match the expected UHBR or NON-UHBR capability
and whether the outputs are MST or SST.

v2: Add definition for UHBR_LINK_RATE
v3: Add failure criteria (Jani Nikula)

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/intel/kms_dp_linktraining.c | 372 ++++++++++++++++++++++++++++++
 tests/meson.build                 |   4 +
 2 files changed, 376 insertions(+)
 create mode 100644 tests/intel/kms_dp_linktraining.c

diff --git a/tests/intel/kms_dp_linktraining.c b/tests/intel/kms_dp_linktraining.c
new file mode 100644
index 000000000..6cedc47db
--- /dev/null
+++ b/tests/intel/kms_dp_linktraining.c
@@ -0,0 +1,372 @@
+// SPDX-License-Identifier: MIT
+/**
+ * TEST: kms dp linktraining
+ * Category: Display
+ * Description: Test to validate link training on SST/MST with UHBR/NON_UHBR rates
+ * Driver requirement: i915, xe
+ * Functionality: linktraining
+ * Mega feature: General Display Features
+ * Test category: functionality test
+ */
+
+/**
+ * SUBTEST: uhbr-sst
+ * Description: Test we can drive UHBR rates over SST.
+ * Functionality: feature_discovery, uhbr, sst
+ * Test category: functionality test
+ *
+ * SUBTEST: uhbr-mst
+ * Description: Test we can drive UHBR rates over MST.
+ * Functionality: feature_discovery, uhbr, mst
+ * Test category: functionality test
+ *
+ * SUBTEST: non-uhbr-sst
+ * Description: Test we can drive non-UHBR rates over SST.
+ * Functionality: feature_discovery, sst
+ * Test category: functionality test
+ *
+ * SUBTEST: non-uhbr-mst
+ * Description: Test we can drive non-UHBR rates over MST.
+ * Functionality: feature_discovery, mst
+ * Test category: functionality test
+ */
+
+#include "igt.h"
+#include "igt_kms.h"
+#include "intel/kms_joiner_helper.h"
+#include "intel/kms_mst_helper.h"
+
+/*
+ * DP Spec defines 10, 13.5, and 20 Gbps as UHBR.
+ * Anything below that is considered NON-UHBR.
+ */
+#define UHBR_LINK_RATE	1000000
+#define RETRAIN_COUNT	1
+
+typedef struct {
+	int drm_fd;
+	igt_display_t display;
+	igt_output_t *output;
+} data_t;
+
+/*
+ * check_condition_with_timeout - Polls check_fn until it returns 0
+ * or until 'timeout' seconds elapse.
+ */
+static int check_condition_with_timeout(int drm_fd, igt_output_t *output,
+		int (*check_fn)(int, igt_output_t *),
+		double interval, double timeout)
+{
+	struct timespec start_time, current_time;
+	double elapsed_time;
+	int ret;
+
+	clock_gettime(CLOCK_MONOTONIC, &start_time);
+
+	while (true) {
+		ret = check_fn(drm_fd, output);
+		if (ret == 0)
+			return 0;
+
+		clock_gettime(CLOCK_MONOTONIC, &current_time);
+		elapsed_time = (current_time.tv_sec - start_time.tv_sec) +
+			(current_time.tv_nsec - start_time.tv_nsec) / 1e9;
+		if (elapsed_time >= timeout)
+			return -1;
+
+		usleep((useconds_t)(interval * 1e6));
+	}
+}
+
+/*
+ * assert_link_status_good - Verifies link-status == GOOD
+ * for either a single SST output or all MST outputs in the topology.
+ */
+static void assert_link_status_good(data_t *data, bool mst)
+{
+	igt_output_t *outputs[IGT_MAX_PIPES];
+	uint32_t link_status_prop_id;
+	uint64_t link_status_value;
+	drmModePropertyPtr link_status_prop;
+	int count = 0;
+	int i;
+
+	if (mst) {
+		igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd,
+					&data->display, data->output,
+					outputs, &count),
+				"Unable to find MST outputs\n");
+
+		for (i = 0; i < count; i++) {
+			kmstest_get_property(data->drm_fd,
+					outputs[i]->config.connector->connector_id,
+					DRM_MODE_OBJECT_CONNECTOR,
+					"link-status",
+					&link_status_prop_id,
+					&link_status_value,
+					&link_status_prop);
+
+			igt_assert_eq(link_status_value,
+					DRM_MODE_LINK_STATUS_GOOD);
+		}
+	} else {
+		kmstest_get_property(data->drm_fd,
+				data->output->config.connector->connector_id,
+				DRM_MODE_OBJECT_CONNECTOR,
+				"link-status",
+				&link_status_prop_id,
+				&link_status_value,
+				&link_status_prop);
+
+		igt_assert_eq(link_status_value, DRM_MODE_LINK_STATUS_GOOD);
+	}
+}
+
+/*
+ * setup_planes_fbs - Create solid-color FBs and attach them to the primary plane.
+ */
+static void setup_planes_fbs(data_t *data, igt_output_t *outs[],
+		int count, drmModeModeInfo *modes[],
+		struct igt_fb fbs[], struct igt_plane *planes[])
+{
+	int i;
+
+	for (i = 0; i < count; i++) {
+		modes[i] = igt_output_get_mode(outs[i]);
+		igt_info("Mode %dx%d@%d on output %s\n",
+				modes[i]->hdisplay, modes[i]->vdisplay,
+				modes[i]->vrefresh, igt_output_name(outs[i]));
+
+		planes[i] = igt_output_get_plane_type(outs[i],
+				DRM_PLANE_TYPE_PRIMARY);
+
+		igt_create_color_fb(data->drm_fd, modes[i]->hdisplay,
+				modes[i]->vdisplay,
+				DRM_FORMAT_XRGB8888,
+				DRM_FORMAT_MOD_LINEAR,
+				0.0, 1.0, 0.0, &fbs[i]);
+
+		igt_plane_set_fb(planes[i], &fbs[i]);
+	}
+}
+
+/*
+ * fit_modes_in_bw - Tries atomic TEST_ONLY commit; if it fails, overrides
+ * output modes to fit bandwidth.
+ */
+static bool fit_modes_in_bw(data_t *data)
+{
+	int ret;
+
+	ret = igt_display_try_commit_atomic(&data->display,
+			DRM_MODE_ATOMIC_TEST_ONLY |
+			DRM_MODE_ATOMIC_ALLOW_MODESET,
+			NULL);
+	if (ret != 0) {
+		bool found;
+
+		found = igt_override_all_active_output_modes_to_fit_bw(&data->display);
+		igt_require_f(found, "No valid mode combo found for modeset\n");
+	}
+
+	return true;
+}
+
+static void do_modeset(data_t *data, bool mst)
+{
+	uint32_t master_pipes_mask = 0;
+	uint32_t valid_pipes_mask = 0;
+	uint32_t used_pipes_mask = 0;
+	igt_output_t *outs[IGT_MAX_PIPES];
+	drmModeModeInfo *modes[IGT_MAX_PIPES];
+	struct igt_fb fbs[IGT_MAX_PIPES];
+	struct igt_plane *planes[IGT_MAX_PIPES];
+	int n_pipes = 0;
+	int out_count = 0;
+	int i;
+
+	for_each_pipe(&data->display, i) {
+		valid_pipes_mask |= BIT(i);
+		n_pipes++;
+	}
+
+	if (mst) {
+		igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd,
+					&data->display,
+					data->output, outs,
+					&out_count),
+				"Unable to find MST outputs\n");
+	} else {
+		outs[0] = data->output;
+		out_count = 1;
+	}
+
+	igt_assert_f(out_count > 0, "Require at least one output\n");
+
+	igt_set_all_master_pipes_for_platform(&data->display, &master_pipes_mask);
+
+	igt_assert_f(igt_assign_pipes_for_outputs(data->drm_fd,
+				outs,
+				out_count,
+				n_pipes,
+				&used_pipes_mask,
+				master_pipes_mask,
+				valid_pipes_mask),
+			"Unable to assign pipes for outputs\n");
+
+	setup_planes_fbs(data, outs, out_count, modes, fbs, planes);
+	fit_modes_in_bw(data);
+	igt_display_commit2(&data->display, COMMIT_ATOMIC);
+}
+
+/*
+ * run_link_rate_test - Main link training routine. Expects the MST vs. SST check
+ * to be done beforehand. Returns true if tested at the correct rate.
+ */
+static bool run_link_rate_test(data_t *data, bool mst, bool uhbr)
+{
+	int max_link_rate;
+	int max_lane_count;
+	int current_link_rate;
+	bool is_uhbr_output;
+	char rate_str[32];
+	char lane_str[32];
+
+	igt_display_reset(&data->display);
+	igt_reset_link_params(data->drm_fd, data->output);
+
+	/* Retrain at default/driver parameters */
+	igt_force_link_retrain(data->drm_fd, data->output, RETRAIN_COUNT);
+	igt_assert_eq(check_condition_with_timeout(data->drm_fd, data->output,
+		      igt_get_dp_pending_retrain, 1.0, 20.0), 0);
+	assert_link_status_good(data, mst);
+	do_modeset(data, mst);
+
+	/* FIXME : Driver may lie max link rate or max lane count */
+	/* Read max_link_rate and max_lane_count */
+	max_link_rate = igt_get_max_link_rate(data->drm_fd, data->output);
+	max_lane_count = igt_get_max_lane_count(data->drm_fd, data->output);
+
+	/* Check sink supports uhbr or not */
+	is_uhbr_output = (max_link_rate >= UHBR_LINK_RATE);
+	if ((uhbr && !is_uhbr_output) || (!uhbr && is_uhbr_output)) {
+		igt_info("Test expects %s, but output %s is %s.\n",
+			 uhbr ? "UHBR" : "NON-UHBR",
+			 data->output->name,
+			 is_uhbr_output ? "UHBR" : "NON-UHBR");
+		igt_info("----------------------------------------------------\n");
+		return false;
+	}
+
+	snprintf(rate_str, sizeof(rate_str), "%d", max_link_rate);
+	snprintf(lane_str, sizeof(lane_str), "%d", max_lane_count);
+	igt_info("Max link rate for %s is %s, lane count = %d\n",
+		 data->output->name, rate_str, max_lane_count);
+
+	/* Force retrain at max link params */
+	igt_set_link_params(data->drm_fd, data->output, rate_str, lane_str);
+	igt_force_link_retrain(data->drm_fd, data->output, RETRAIN_COUNT);
+	igt_assert_eq(check_condition_with_timeout(data->drm_fd, data->output,
+		      igt_get_dp_pending_retrain, 1.0, 20.0), 0);
+	assert_link_status_good(data, mst);
+
+	current_link_rate = igt_get_current_link_rate(data->drm_fd, data->output);
+	igt_info("Current link rate is %d\n", current_link_rate);
+	igt_assert_f(current_link_rate == max_link_rate,
+		     "Link training did not succeed at max link rate.\n");
+	igt_assert_f(is_uhbr_output ?
+		     current_link_rate >= UHBR_LINK_RATE :
+		     current_link_rate < UHBR_LINK_RATE,
+		     is_uhbr_output ? "Link training didn't happen at uhbr rates" :
+		     "Link training didn't happen at non-uhbr rates");
+	igt_info("----------------------------------------------------\n");
+	return true;
+}
+
+/*
+ * test_link_rate - Iterates over connected DP outputs. Checks MST vs. SST
+ * early, then calls run_link_rate_test(). Returns true if it ran on at
+ * least one matching output.
+ */
+static bool test_link_rate(data_t *data, bool mst, bool uhbr)
+{
+	bool ran_any_output = false, is_mst = false;
+	igt_output_t *tmp_output;
+
+	igt_skip_on_f(!is_intel_device(data->drm_fd),
+			"Test supported only on Intel platforms.\n");
+
+	for_each_connected_output(&data->display, tmp_output) {
+		if (tmp_output->config.connector->connector_type !=
+		    DRM_MODE_CONNECTOR_DisplayPort) {
+			igt_info("Skipping non-DisplayPort output %s\n",
+					tmp_output->name);
+			igt_info("----------------------------------------------------\n");
+			continue;
+		}
+
+		/* Early skip if MST vs. SST does not match. */
+		is_mst = igt_check_output_is_dp_mst(tmp_output);
+		if (mst && !is_mst) {
+			igt_info("Skipping %s: MST requested but it's SST.\n",
+					tmp_output->name);
+			igt_info("----------------------------------------------------\n");
+			continue;
+		} else if (!mst && is_mst) {
+			igt_info("Skipping %s: SST requested but it's MST.\n",
+					tmp_output->name);
+			igt_info("----------------------------------------------------\n");
+			continue;
+		}
+		data->output = tmp_output;
+		igt_info("Running link training test for %s\n",
+			 data->output->name);
+		ran_any_output = ran_any_output | run_link_rate_test(data, mst, uhbr);
+	}
+	return ran_any_output;
+}
+
+IGT_TEST_DESCRIPTION("Test to validate link training on SST/MST with "
+		"UHBR/NON_UHBR rates");
+
+igt_main
+{
+	data_t data = {};
+
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
+		kmstest_set_vt_graphics_mode();
+		igt_display_require(&data.display, data.drm_fd);
+		igt_display_require_output(&data.display);
+	}
+
+	igt_describe("Test we can drive UHBR rates over SST");
+	igt_subtest("uhbr-sst") {
+		igt_require_f(test_link_rate(&data, false, true),
+			      "Didn't find any SST output with UHBR rates.\n");
+	}
+
+	igt_describe("Test we can drive UHBR rates over MST");
+	igt_subtest("uhbr-mst") {
+		igt_require_f(test_link_rate(&data, true, true),
+			      "Didn't find any MST output with UHBR rates.\n");
+	}
+
+	igt_describe("Test we can drive NON-UHBR rates over SST");
+	igt_subtest("non-uhbr-sst") {
+		igt_require_f(test_link_rate(&data, false, false),
+			      "Didn't find any SST output with NON-UHBR rates.\n");
+	}
+
+	igt_describe("Test we can drive NON-UHBR rates over MST");
+	igt_subtest("non-uhbr-mst") {
+		igt_require_f(test_link_rate(&data, true, false),
+			      "Didn't find any MST output with NON-UHBR rates.\n");
+	}
+
+	igt_fixture {
+		igt_reset_connectors();
+		igt_display_fini(&data.display);
+		close(data.drm_fd);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index b9dd162cc..926c5825f 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -246,6 +246,7 @@ intel_kms_progs = [
 	'kms_ccs',
 	'kms_cdclk',
 	'kms_dirtyfb',
+	'kms_dp_linktraining',
         'kms_dp_linktrain_fallback',
 	'kms_draw_crc',
 	'kms_dsc',
@@ -367,6 +368,9 @@ extra_sources = {
 	'kms_chamelium_frames': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
 	'kms_chamelium_hpd': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
 	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
+	'kms_dp_linktraining': [
+		join_paths ('intel', 'kms_joiner_helper.c'),
+		join_paths ('intel', 'kms_mst_helper.c') ],
         'kms_dp_linktrain_fallback': [ join_paths ('intel', 'kms_mst_helper.c') ],
 	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
 	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],
-- 
2.25.1


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

* [PATCH i-g-t 5/5] HAX: DO NOT MERGE
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
                   ` (3 preceding siblings ...)
  2025-02-03  8:12 ` [PATCH i-g-t 4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST Kunal Joshi
@ 2025-02-03  8:12 ` Kunal Joshi
  2025-02-04  0:33 ` ✗ i915.CI.BAT: failure for add test to validate uhbr/non-uhbr over sst/mst (rev3) Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Kunal Joshi @ 2025-02-03  8:12 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

HAX patch do not merge

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/intel-ci/fast-feedback.testlist    | 14 ++++++++++++++
 tests/intel-ci/xe-fast-feedback.testlist | 14 ++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index be0965110..57126a87f 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -1,6 +1,20 @@
 # Try to load the driver if it's not available yet.
 igt@i915_module_load@load
 
+igt@kms_dp_linktraining@uhbr-sst
+igt@kms_dp_linktraining@uhbr-mst
+igt@kms_dp_linktraining@non-uhbr-sst
+igt@kms_dp_linktraining@non-uhbr-mst
+igt@kms_joiner@basic-big-joiner
+igt@kms_joiner@basic-ultra-joiner
+igt@kms_joiner@invalid-modeset-big-joiner
+igt@kms_joiner@invalid-modeset-ultra-joiner
+igt@kms_joiner@basic-force-big-joiner
+igt@kms_joiner@invalid-modeset-force-big-joiner
+igt@kms_joiner@basic-force-ultra-joiner
+igt@kms_joiner@invalid-modeset-force-ultra-joiner
+igt@kms_dp_linktrain_fallback@dp-fallback
+
 # Keep alphabetically sorted by default
 igt@core_auth@basic-auth
 igt@debugfs_test@read_all_entries
diff --git a/tests/intel-ci/xe-fast-feedback.testlist b/tests/intel-ci/xe-fast-feedback.testlist
index 0234d3e72..8f0e5ca48 100644
--- a/tests/intel-ci/xe-fast-feedback.testlist
+++ b/tests/intel-ci/xe-fast-feedback.testlist
@@ -1,6 +1,20 @@
 # Should be the first test
 igt@xe_module_load@load
 
+igt@kms_dp_linktraining@uhbr-sst
+igt@kms_dp_linktraining@uhbr-mst
+igt@kms_dp_linktraining@non-uhbr-sst
+igt@kms_dp_linktraining@non-uhbr-mst
+igt@kms_joiner@basic-big-joiner
+igt@kms_joiner@basic-ultra-joiner
+igt@kms_joiner@invalid-modeset-big-joiner
+igt@kms_joiner@invalid-modeset-ultra-joiner
+igt@kms_joiner@basic-force-big-joiner
+igt@kms_joiner@invalid-modeset-force-big-joiner
+igt@kms_joiner@basic-force-ultra-joiner
+igt@kms_joiner@invalid-modeset-force-ultra-joiner
+igt@kms_dp_linktrain_fallback@dp-fallback
+
 igt@fbdev@eof
 igt@fbdev@info
 igt@fbdev@nullptr
-- 
2.25.1


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

* ✗ i915.CI.BAT: failure for add test to validate uhbr/non-uhbr over sst/mst (rev3)
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
                   ` (4 preceding siblings ...)
  2025-02-03  8:12 ` [PATCH i-g-t 5/5] HAX: DO NOT MERGE Kunal Joshi
@ 2025-02-04  0:33 ` Patchwork
  2025-02-04  1:12 ` ✗ Xe.CI.BAT: " Patchwork
  2025-02-04  3:07 ` ✗ Xe.CI.Full: " Patchwork
  7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2025-02-04  0:33 UTC (permalink / raw)
  To: Kunal Joshi; +Cc: igt-dev

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

== Series Details ==

Series: add test to validate uhbr/non-uhbr over sst/mst (rev3)
URL   : https://patchwork.freedesktop.org/series/143039/
State : failure

== Summary ==

CI Bug Log - changes from IGT_8221 -> IGTPW_12534
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_12534 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_12534, 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_12534/index.html

Participating hosts (45 -> 42)
------------------------------

  Missing    (3): fi-pnv-d510 bat-adlp-6 fi-snb-2520m 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - bat-dg2-9:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-9/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * {igt@kms_dp_linktraining@non-uhbr-mst} (NEW):
    - bat-dg2-9:          NOTRUN -> [SKIP][2] +2 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-9/igt@kms_dp_linktraining@non-uhbr-mst.html
    - {bat-mtlp-9}:       NOTRUN -> [FAIL][3] +1 other test fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-9/igt@kms_dp_linktraining@non-uhbr-mst.html

  * {igt@kms_dp_linktraining@non-uhbr-sst} (NEW):
    - bat-dg1-7:          NOTRUN -> [SKIP][4] +3 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-7/igt@kms_dp_linktraining@non-uhbr-sst.html
    - bat-twl-1:          NOTRUN -> [SKIP][5] +3 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-1/igt@kms_dp_linktraining@non-uhbr-sst.html
    - bat-rplp-1:         NOTRUN -> [SKIP][6] +3 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rplp-1/igt@kms_dp_linktraining@non-uhbr-sst.html

  * {igt@kms_dp_linktraining@uhbr-mst} (NEW):
    - fi-rkl-11600:       NOTRUN -> [SKIP][7] +3 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-rkl-11600/igt@kms_dp_linktraining@uhbr-mst.html
    - bat-arlh-3:         NOTRUN -> [SKIP][8] +3 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-3/igt@kms_dp_linktraining@uhbr-mst.html
    - bat-adlp-9:         NOTRUN -> [SKIP][9] +2 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-9/igt@kms_dp_linktraining@uhbr-mst.html
    - bat-rpls-4:         NOTRUN -> [SKIP][10] +4 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rpls-4/igt@kms_dp_linktraining@uhbr-mst.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][11] +3 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-tgl-1115g4/igt@kms_dp_linktraining@uhbr-mst.html

  * {igt@kms_dp_linktraining@uhbr-sst} (NEW):
    - bat-jsl-3:          NOTRUN -> [SKIP][12] +3 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-3/igt@kms_dp_linktraining@uhbr-sst.html
    - bat-twl-2:          NOTRUN -> [SKIP][13] +3 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-2/igt@kms_dp_linktraining@uhbr-sst.html
    - bat-dg2-11:         NOTRUN -> [SKIP][14] +3 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-11/igt@kms_dp_linktraining@uhbr-sst.html
    - bat-dg2-14:         NOTRUN -> [SKIP][15] +2 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-14/igt@kms_dp_linktraining@uhbr-sst.html
    - {bat-mtlp-9}:       NOTRUN -> [SKIP][16] +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-9/igt@kms_dp_linktraining@uhbr-sst.html
    - {bat-arls-6}:       NOTRUN -> [SKIP][17] +3 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arls-6/igt@kms_dp_linktraining@uhbr-sst.html
    - bat-dg2-8:          NOTRUN -> [SKIP][18] +2 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-8/igt@kms_dp_linktraining@uhbr-sst.html
    - bat-adls-6:         NOTRUN -> [SKIP][19] +2 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adls-6/igt@kms_dp_linktraining@uhbr-sst.html
    - bat-jsl-1:          NOTRUN -> [SKIP][20] +3 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-1/igt@kms_dp_linktraining@uhbr-sst.html
    - bat-arls-5:         NOTRUN -> [SKIP][21] +2 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arls-5/igt@kms_dp_linktraining@uhbr-sst.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - {bat-mtlp-9}:       NOTRUN -> [SKIP][22]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-9/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_joiner@basic-force-big-joiner@single:
    - {bat-mtlp-9}:       NOTRUN -> [FAIL][23] +2 other tests fail
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-9/igt@kms_joiner@basic-force-big-joiner@single.html

  
New tests
---------

  New tests have been introduced between IGT_8221 and IGTPW_12534:

### New IGT tests (4) ###

  * igt@kms_dp_linktraining@non-uhbr-mst:
    - Statuses : 1 fail(s) 40 skip(s)
    - Exec time: [0.0, 20.09] s

  * igt@kms_dp_linktraining@non-uhbr-sst:
    - Statuses : 1 dmesg-fail(s) 9 pass(s) 31 skip(s)
    - Exec time: [0.0, 23.00] s

  * igt@kms_dp_linktraining@uhbr-mst:
    - Statuses : 1 fail(s) 40 skip(s)
    - Exec time: [0.0, 20.05] s

  * igt@kms_dp_linktraining@uhbr-sst:
    - Statuses : 1 dmesg-fail(s) 40 skip(s)
    - Exec time: [0.0, 22.05] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@workarounds:
    - bat-arlh-3:         [PASS][24] -> [DMESG-FAIL][25] ([i915#12061]) +1 other test dmesg-fail
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-arlh-3/igt@i915_selftest@live@workarounds.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-3/igt@i915_selftest@live@workarounds.html
    - bat-mtlp-6:         [PASS][26] -> [DMESG-FAIL][27] ([i915#12061]) +1 other test dmesg-fail
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-mtlp-6/igt@i915_selftest@live@workarounds.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-6/igt@i915_selftest@live@workarounds.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - fi-cfl-guc:         NOTRUN -> [SKIP][28] +12 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-cfl-guc/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - fi-cfl-8109u:       NOTRUN -> [DMESG-WARN][29] ([i915#11621])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-cfl-8109u/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - fi-kbl-8809g:       NOTRUN -> [SKIP][30] +12 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-kbl-8809g/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][31] ([i915#12402])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-tgl-1115g4/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][32] ([i915#9792]) +4 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-6/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-twl-2:          NOTRUN -> [SKIP][33] ([i915#12402])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-2/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-dg2-11:         NOTRUN -> [SKIP][34] ([i915#12402])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-11/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-jsl-3:          NOTRUN -> [SKIP][35] ([i915#12402])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-3/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-jsl-1:          NOTRUN -> [SKIP][36] ([i915#12402])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-1/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-arlh-3:         NOTRUN -> [SKIP][37] ([i915#12402])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-3/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-dg1-7:          NOTRUN -> [SKIP][38] ([i915#12402])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-7/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-twl-1:          NOTRUN -> [SKIP][39] ([i915#12402])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-1/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-rplp-1:         NOTRUN -> [SKIP][40] ([i915#12402])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rplp-1/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][41] ([i915#12402])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-rkl-11600/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * {igt@kms_dp_linktraining@non-uhbr-mst} (NEW):
    - fi-kbl-x1275:       NOTRUN -> [SKIP][42] +12 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-kbl-x1275/igt@kms_dp_linktraining@non-uhbr-mst.html
    - bat-adlp-11:        NOTRUN -> [SKIP][43] ([i915#10470]) +4 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-11/igt@kms_dp_linktraining@non-uhbr-mst.html
    - fi-cfl-8109u:       NOTRUN -> [SKIP][44] +9 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-cfl-8109u/igt@kms_dp_linktraining@non-uhbr-mst.html
    - bat-dg1-6:          NOTRUN -> [SKIP][45] ([i915#12311]) +4 other tests skip
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-6/igt@kms_dp_linktraining@non-uhbr-mst.html

  * {igt@kms_dp_linktraining@non-uhbr-sst} (NEW):
    - fi-glk-j4005:       NOTRUN -> [SKIP][46] +12 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-glk-j4005/igt@kms_dp_linktraining@non-uhbr-sst.html
    - fi-cfl-8109u:       NOTRUN -> [DMESG-FAIL][47] ([i915#11621]) +1 other test dmesg-fail
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-cfl-8109u/igt@kms_dp_linktraining@non-uhbr-sst.html

  * {igt@kms_dp_linktraining@uhbr-mst} (NEW):
    - bat-arlh-2:         NOTRUN -> [SKIP][48] ([i915#11346]) +6 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-2/igt@kms_dp_linktraining@uhbr-mst.html
    - fi-kbl-7567u:       NOTRUN -> [SKIP][49] +10 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-kbl-7567u/igt@kms_dp_linktraining@uhbr-mst.html
    - bat-apl-1:          NOTRUN -> [SKIP][50] +10 other tests skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-apl-1/igt@kms_dp_linktraining@uhbr-mst.html

  * {igt@kms_dp_linktraining@uhbr-sst} (NEW):
    - fi-blb-e6850:       NOTRUN -> [SKIP][51] +12 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-blb-e6850/igt@kms_dp_linktraining@uhbr-sst.html

  * igt@kms_joiner@basic-big-joiner:
    - bat-atsm-1:         NOTRUN -> [SKIP][52] ([i915#6078]) +12 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-atsm-1/igt@kms_joiner@basic-big-joiner.html
    - bat-jsl-3:          NOTRUN -> [SKIP][53] ([i915#10656]) +1 other test skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-3/igt@kms_joiner@basic-big-joiner.html
    - bat-adls-6:         NOTRUN -> [SKIP][54] ([i915#10656]) +1 other test skip
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adls-6/igt@kms_joiner@basic-big-joiner.html
    - bat-jsl-1:          NOTRUN -> [SKIP][55] ([i915#10656]) +1 other test skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-1/igt@kms_joiner@basic-big-joiner.html
    - bat-arlh-3:         NOTRUN -> [SKIP][56] ([i915#11575]) +1 other test skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-3/igt@kms_joiner@basic-big-joiner.html
    - bat-dg1-7:          NOTRUN -> [SKIP][57] ([i915#10656]) +1 other test skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-7/igt@kms_joiner@basic-big-joiner.html
    - bat-adlp-9:         NOTRUN -> [SKIP][58] ([i915#10656]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-9/igt@kms_joiner@basic-big-joiner.html
    - bat-rpls-4:         NOTRUN -> [SKIP][59] ([i915#10656]) +1 other test skip
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rpls-4/igt@kms_joiner@basic-big-joiner.html
    - bat-twl-1:          NOTRUN -> [SKIP][60] ([i915#10656]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-1/igt@kms_joiner@basic-big-joiner.html
    - bat-arls-5:         NOTRUN -> [SKIP][61] ([i915#10656]) +1 other test skip
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arls-5/igt@kms_joiner@basic-big-joiner.html
    - bat-rplp-1:         NOTRUN -> [SKIP][62] ([i915#10656]) +1 other test skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rplp-1/igt@kms_joiner@basic-big-joiner.html
    - bat-arlh-2:         NOTRUN -> [SKIP][63] ([i915#11346] / [i915#11575]) +1 other test skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-2/igt@kms_joiner@basic-big-joiner.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][64] ([i915#10656]) +1 other test skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-rkl-11600/igt@kms_joiner@basic-big-joiner.html
    - bat-adlp-11:        NOTRUN -> [SKIP][65] ([i915#10656]) +1 other test skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-11/igt@kms_joiner@basic-big-joiner.html
    - bat-dg1-6:          NOTRUN -> [SKIP][66] ([i915#10656] / [i915#12311]) +1 other test skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-6/igt@kms_joiner@basic-big-joiner.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][67] ([i915#10656]) +1 other test skip
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-tgl-1115g4/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-force-big-joiner:
    - fi-ilk-650:         NOTRUN -> [SKIP][68] +12 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-ilk-650/igt@kms_joiner@basic-force-big-joiner.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][69] ([i915#12388]) +1 other test skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-tgl-1115g4/igt@kms_joiner@basic-force-big-joiner.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][70] ([i915#12388]) +1 other test skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-6/igt@kms_joiner@basic-force-big-joiner.html
    - bat-dg2-11:         NOTRUN -> [SKIP][71] ([i915#12388]) +1 other test skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-11/igt@kms_joiner@basic-force-big-joiner.html
    - bat-jsl-3:          NOTRUN -> [SKIP][72] ([i915#12388]) +1 other test skip
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-3/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - bat-jsl-3:          NOTRUN -> [SKIP][73] ([i915#12394]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-3/igt@kms_joiner@basic-force-ultra-joiner.html
    - bat-dg2-8:          NOTRUN -> [SKIP][74] ([i915#10656]) +3 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-8/igt@kms_joiner@basic-force-ultra-joiner.html
    - bat-adls-6:         NOTRUN -> [SKIP][75] ([i915#12394]) +1 other test skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adls-6/igt@kms_joiner@basic-force-ultra-joiner.html
    - bat-jsl-1:          NOTRUN -> [SKIP][76] ([i915#12394]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-1/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - fi-cfl-8700k:       NOTRUN -> [SKIP][77] +12 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-cfl-8700k/igt@kms_joiner@basic-ultra-joiner.html
    - bat-dg2-14:         NOTRUN -> [SKIP][78] ([i915#12339]) +1 other test skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-14/igt@kms_joiner@basic-ultra-joiner.html
    - fi-bsw-nick:        NOTRUN -> [SKIP][79] +12 other tests skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-bsw-nick/igt@kms_joiner@basic-ultra-joiner.html
    - bat-kbl-2:          NOTRUN -> [SKIP][80] +12 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-kbl-2/igt@kms_joiner@basic-ultra-joiner.html
    - bat-jsl-3:          NOTRUN -> [SKIP][81] ([i915#12339]) +1 other test skip
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-3/igt@kms_joiner@basic-ultra-joiner.html
    - bat-dg2-8:          NOTRUN -> [SKIP][82] ([i915#12339]) +1 other test skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-8/igt@kms_joiner@basic-ultra-joiner.html
    - bat-adls-6:         NOTRUN -> [SKIP][83] ([i915#12339]) +1 other test skip
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adls-6/igt@kms_joiner@basic-ultra-joiner.html
    - bat-jsl-1:          NOTRUN -> [SKIP][84] ([i915#12339]) +1 other test skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-1/igt@kms_joiner@basic-ultra-joiner.html
    - bat-arlh-3:         NOTRUN -> [SKIP][85] ([i915#12339]) +1 other test skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-3/igt@kms_joiner@basic-ultra-joiner.html
    - bat-dg1-7:          NOTRUN -> [SKIP][86] ([i915#12339]) +1 other test skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-7/igt@kms_joiner@basic-ultra-joiner.html
    - bat-adlp-9:         NOTRUN -> [SKIP][87] ([i915#12339]) +1 other test skip
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-9/igt@kms_joiner@basic-ultra-joiner.html
    - bat-rpls-4:         NOTRUN -> [SKIP][88] ([i915#12339]) +1 other test skip
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rpls-4/igt@kms_joiner@basic-ultra-joiner.html
    - bat-twl-1:          NOTRUN -> [SKIP][89] ([i915#12339]) +1 other test skip
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-1/igt@kms_joiner@basic-ultra-joiner.html
    - bat-arls-5:         NOTRUN -> [SKIP][90] ([i915#12339]) +1 other test skip
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arls-5/igt@kms_joiner@basic-ultra-joiner.html
    - bat-rplp-1:         NOTRUN -> [SKIP][91] ([i915#12339]) +1 other test skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rplp-1/igt@kms_joiner@basic-ultra-joiner.html
    - bat-arlh-2:         NOTRUN -> [SKIP][92] ([i915#11346] / [i915#12339]) +1 other test skip
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-2/igt@kms_joiner@basic-ultra-joiner.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][93] ([i915#12339]) +1 other test skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-rkl-11600/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - bat-twl-2:          NOTRUN -> [SKIP][94] ([i915#10656]) +1 other test skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-2/igt@kms_joiner@invalid-modeset-big-joiner.html
    - bat-dg2-11:         NOTRUN -> [SKIP][95] ([i915#10656]) +3 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-11/igt@kms_joiner@invalid-modeset-big-joiner.html
    - bat-dg2-14:         NOTRUN -> [SKIP][96] ([i915#10656]) +3 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-14/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-big-joiner:
    - fi-hsw-4770:        NOTRUN -> [SKIP][97] +12 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-hsw-4770/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - fi-ivb-3770:        NOTRUN -> [SKIP][98] +12 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-ivb-3770/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - fi-elk-e7500:       NOTRUN -> [SKIP][99] +12 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-elk-e7500/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - fi-kbl-guc:         NOTRUN -> [SKIP][100] +12 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-kbl-guc/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - bat-adls-6:         NOTRUN -> [SKIP][101] ([i915#12388]) +1 other test skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adls-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - bat-jsl-1:          NOTRUN -> [SKIP][102] ([i915#12388]) +1 other test skip
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-jsl-1/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - bat-dg1-7:          NOTRUN -> [SKIP][103] ([i915#12388]) +1 other test skip
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-7/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - bat-rpls-4:         NOTRUN -> [SKIP][104] ([i915#12388]) +1 other test skip
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rpls-4/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][105] ([i915#12388]) +1 other test skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-rkl-11600/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - bat-adlp-11:        NOTRUN -> [SKIP][106] ([i915#12388]) +1 other test skip
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-11/igt@kms_joiner@invalid-modeset-force-big-joiner.html
    - bat-dg1-6:          NOTRUN -> [SKIP][107] ([i915#12311] / [i915#12388]) +1 other test skip
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-6/igt@kms_joiner@invalid-modeset-force-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - fi-bsw-n3050:       NOTRUN -> [SKIP][108] +12 other tests skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-bsw-n3050/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-arlh-3:         NOTRUN -> [SKIP][109] ([i915#12394]) +1 other test skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-3/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-dg1-7:          NOTRUN -> [SKIP][110] ([i915#12394]) +1 other test skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-7/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-adlp-9:         NOTRUN -> [SKIP][111] ([i915#12394]) +1 other test skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-9/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-twl-1:          NOTRUN -> [SKIP][112] ([i915#12394]) +1 other test skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-1/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-arls-5:         NOTRUN -> [SKIP][113] ([i915#12394]) +1 other test skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arls-5/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-rplp-1:         NOTRUN -> [SKIP][114] ([i915#12394]) +1 other test skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rplp-1/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-arlh-2:         NOTRUN -> [SKIP][115] ([i915#11346] / [i915#12394]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arlh-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - fi-rkl-11600:       NOTRUN -> [SKIP][116] ([i915#12394]) +1 other test skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-rkl-11600/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][117] ([i915#12394]) +1 other test skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-tgl-1115g4/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][118] ([i915#10656]) +3 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-6/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-dg2-9:          NOTRUN -> [SKIP][119] ([i915#10656]) +3 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-9/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-adlp-11:        NOTRUN -> [SKIP][120] ([i915#12394]) +1 other test skip
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-11/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-dg1-6:          NOTRUN -> [SKIP][121] ([i915#12311] / [i915#12394]) +1 other test skip
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-6/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-twl-2:          NOTRUN -> [SKIP][122] ([i915#12394]) +1 other test skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - bat-dg2-9:          NOTRUN -> [SKIP][123] ([i915#12339]) +1 other test skip
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-9/igt@kms_joiner@invalid-modeset-ultra-joiner.html
    - bat-adlp-11:        NOTRUN -> [SKIP][124] ([i915#12339]) +1 other test skip
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-adlp-11/igt@kms_joiner@invalid-modeset-ultra-joiner.html
    - bat-dg1-6:          NOTRUN -> [SKIP][125] ([i915#12311] / [i915#12339]) +1 other test skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg1-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][126] ([i915#12339]) +1 other test skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-tgl-1115g4/igt@kms_joiner@invalid-modeset-ultra-joiner.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][127] ([i915#12339]) +1 other test skip
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-6/igt@kms_joiner@invalid-modeset-ultra-joiner.html
    - bat-twl-2:          NOTRUN -> [SKIP][128] ([i915#12339]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-2/igt@kms_joiner@invalid-modeset-ultra-joiner.html
    - bat-dg2-11:         NOTRUN -> [SKIP][129] ([i915#12339]) +1 other test skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-dg2-11/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  
#### Possible fixes ####

  * igt@dmabuf@all-tests:
    - bat-apl-1:          [INCOMPLETE][130] ([i915#12904]) -> [PASS][131] +1 other test pass
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-apl-1/igt@dmabuf@all-tests.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-apl-1/igt@dmabuf@all-tests.html

  * igt@i915_pm_rpm@module-reload:
    - bat-rpls-4:         [DMESG-WARN][132] ([i915#13400]) -> [PASS][133]
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-rpls-4/igt@i915_pm_rpm@module-reload.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-rpls-4/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live:
    - bat-twl-1:          [ABORT][134] ([i915#12919] / [i915#13503]) -> [PASS][135]
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-twl-1/igt@i915_selftest@live.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@gt_heartbeat:
    - bat-twl-1:          [ABORT][136] -> [PASS][137]
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-twl-1/igt@i915_selftest@live@gt_heartbeat.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-twl-1/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@workarounds:
    - bat-arls-5:         [DMESG-FAIL][138] ([i915#12061]) -> [PASS][139] +1 other test pass
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-arls-5/igt@i915_selftest@live@workarounds.html
    - {bat-mtlp-9}:       [DMESG-FAIL][140] ([i915#12061]) -> [PASS][141] +1 other test pass
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/bat-mtlp-9/igt@i915_selftest@live@workarounds.html

  * igt@kms_busy@basic@flip:
    - fi-cfl-8109u:       [DMESG-WARN][142] ([i915#11621]) -> [PASS][143]
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8221/fi-cfl-8109u/igt@kms_busy@basic@flip.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_12534/fi-cfl-8109u/igt@kms_busy@basic@flip.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#10470]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10470
  [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656
  [i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346
  [i915#11575]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11575
  [i915#11621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11621
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12311]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12311
  [i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339
  [i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388
  [i915#12394]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12394
  [i915#12402]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12402
  [i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
  [i915#12919]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12919
  [i915#13400]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13400
  [i915#13503]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13503
  [i915#6078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6078
  [i915#9792]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9792


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

  * CI: CI-20190529 -> None
  * IGT: IGT_8221 -> IGTPW_12534
  * Linux: CI_DRM_16056 -> CI_DRM_16059

  CI-20190529: 20190529
  CI_DRM_16056: e4653d321048b16b1373c8ddf0657590963c5897 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_16059: e300f8946bc0ce873e4c4bc1a2cd05e7b617b1db @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_12534: 0db58746ef0bafb9fc1621cdb86a785e0f0146ac @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8221: ad1f57286d15d083b08c94f3d93600db85f9945b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* ✗ Xe.CI.BAT: failure for add test to validate uhbr/non-uhbr over sst/mst (rev3)
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
                   ` (5 preceding siblings ...)
  2025-02-04  0:33 ` ✗ i915.CI.BAT: failure for add test to validate uhbr/non-uhbr over sst/mst (rev3) Patchwork
@ 2025-02-04  1:12 ` Patchwork
  2025-02-04  3:07 ` ✗ Xe.CI.Full: " Patchwork
  7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2025-02-04  1:12 UTC (permalink / raw)
  To: Kunal Joshi; +Cc: igt-dev

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

== Series Details ==

Series: add test to validate uhbr/non-uhbr over sst/mst (rev3)
URL   : https://patchwork.freedesktop.org/series/143039/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8221_BAT -> XEIGTPW_12534_BAT
====================================================

Summary
-------

  **FAILURE**

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

  

Participating hosts (8 -> 8)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_dp_linktraining@uhbr-mst} (NEW):
    - bat-bmg-1:          NOTRUN -> [SKIP][1] +3 other tests skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-1/igt@kms_dp_linktraining@uhbr-mst.html
    - bat-dg2-oem2:       NOTRUN -> [SKIP][2] +2 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-dg2-oem2/igt@kms_dp_linktraining@uhbr-mst.html

  * {igt@kms_dp_linktraining@uhbr-sst} (NEW):
    - bat-lnl-1:          NOTRUN -> [SKIP][3] +3 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-1/igt@kms_dp_linktraining@uhbr-sst.html

  * igt@kms_joiner@basic-force-big-joiner:
    - bat-lnl-2:          NOTRUN -> [SKIP][4] +1 other test skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-2/igt@kms_joiner@basic-force-big-joiner.html

  
New tests
---------

  New tests have been introduced between XEIGT_8221_BAT and XEIGTPW_12534_BAT:

### New IGT tests (4) ###

  * igt@kms_dp_linktraining@non-uhbr-mst:
    - Statuses : 8 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dp_linktraining@non-uhbr-sst:
    - Statuses : 1 pass(s) 7 skip(s)
    - Exec time: [0.0, 2.09] s

  * igt@kms_dp_linktraining@uhbr-mst:
    - Statuses : 8 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dp_linktraining@uhbr-sst:
    - Statuses : 8 skip(s)
    - Exec time: [0.0, 1.08] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - bat-lnl-1:          NOTRUN -> [SKIP][5] ([Intel XE#3070])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-1/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - bat-bmg-1:          NOTRUN -> [SKIP][6] ([Intel XE#3070])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-1/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * {igt@kms_dp_linktraining@non-uhbr-mst} (NEW):
    - bat-atsm-2:         NOTRUN -> [SKIP][7] ([Intel XE#1024]) +12 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-atsm-2/igt@kms_dp_linktraining@non-uhbr-mst.html

  * {igt@kms_dp_linktraining@non-uhbr-sst} (NEW):
    - bat-adlp-vf:        NOTRUN -> [SKIP][8] ([Intel XE#2463]) +12 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-adlp-vf/igt@kms_dp_linktraining@non-uhbr-sst.html

  * {igt@kms_dp_linktraining@uhbr-mst} (NEW):
    - bat-lnl-2:          NOTRUN -> [SKIP][9] ([Intel XE#2235]) +4 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-2/igt@kms_dp_linktraining@uhbr-mst.html

  * {igt@kms_dp_linktraining@uhbr-sst} (NEW):
    - bat-bmg-2:          NOTRUN -> [SKIP][10] ([Intel XE#3419]) +4 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-2/igt@kms_dp_linktraining@uhbr-sst.html

  * igt@kms_joiner@basic-big-joiner:
    - bat-bmg-2:          NOTRUN -> [SKIP][11] ([Intel XE#346]) +1 other test skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-2/igt@kms_joiner@basic-big-joiner.html
    - bat-bmg-1:          NOTRUN -> [SKIP][12] ([Intel XE#346]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-1/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-force-big-joiner:
    - bat-pvc-2:          NOTRUN -> [SKIP][13] ([Intel XE#1024]) +12 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-pvc-2/igt@kms_joiner@basic-force-big-joiner.html
    - bat-bmg-2:          NOTRUN -> [SKIP][14] ([Intel XE#3012]) +1 other test skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-2/igt@kms_joiner@basic-force-big-joiner.html
    - bat-bmg-1:          NOTRUN -> [SKIP][15] ([Intel XE#3012]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-1/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - bat-dg2-oem2:       NOTRUN -> [SKIP][16] ([Intel XE#2925]) +1 other test skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-dg2-oem2/igt@kms_joiner@basic-force-ultra-joiner.html
    - bat-lnl-1:          NOTRUN -> [SKIP][17] ([Intel XE#2934]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-1/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - bat-lnl-1:          NOTRUN -> [SKIP][18] ([Intel XE#2927]) +1 other test skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-1/igt@kms_joiner@basic-ultra-joiner.html
    - bat-bmg-2:          NOTRUN -> [SKIP][19] ([Intel XE#2927]) +1 other test skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-2/igt@kms_joiner@basic-ultra-joiner.html
    - bat-bmg-1:          NOTRUN -> [SKIP][20] ([Intel XE#2927]) +1 other test skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-1/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-big-joiner:
    - bat-lnl-2:          NOTRUN -> [SKIP][21] ([Intel XE#346]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-2/igt@kms_joiner@invalid-modeset-big-joiner.html
    - bat-dg2-oem2:       NOTRUN -> [SKIP][22] ([Intel XE#346]) +1 other test skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-dg2-oem2/igt@kms_joiner@invalid-modeset-big-joiner.html
    - bat-lnl-1:          NOTRUN -> [SKIP][23] ([Intel XE#346]) +1 other test skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-1/igt@kms_joiner@invalid-modeset-big-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - bat-bmg-2:          NOTRUN -> [SKIP][24] ([Intel XE#2934]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-bmg-1:          NOTRUN -> [SKIP][25] ([Intel XE#2934]) +1 other test skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-bmg-1/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - bat-lnl-2:          NOTRUN -> [SKIP][26] ([Intel XE#2934]) +1 other test skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - bat-lnl-2:          NOTRUN -> [SKIP][27] ([Intel XE#2927]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-lnl-2/igt@kms_joiner@invalid-modeset-ultra-joiner.html
    - bat-dg2-oem2:       NOTRUN -> [SKIP][28] ([Intel XE#2927]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-dg2-oem2/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
    - bat-adlp-vf:        NOTRUN -> [SKIP][29] ([Intel XE#2229])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-adlp-vf/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html

  
#### Possible fixes ####

  * igt@xe_live_ktest@xe_migrate:
    - bat-adlp-vf:        [DMESG-FAIL][30] ([Intel XE#4078]) -> [PASS][31] +1 other test pass
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/bat-adlp-vf/igt@xe_live_ktest@xe_migrate.html
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/bat-adlp-vf/igt@xe_live_ktest@xe_migrate.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [Intel XE#1024]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1024
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2235]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2235
  [Intel XE#2463]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2463
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
  [Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
  [Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
  [Intel XE#3070]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3070
  [Intel XE#3419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3419
  [Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
  [Intel XE#4078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4078


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

  * IGT: IGT_8221 -> IGTPW_12534
  * Linux: xe-2587-e4653d321048b16b1373c8ddf0657590963c5897 -> xe-2590-e300f8946bc0ce873e4c4bc1a2cd05e7b617b1db

  IGTPW_12534: 0db58746ef0bafb9fc1621cdb86a785e0f0146ac @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8221: ad1f57286d15d083b08c94f3d93600db85f9945b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-2587-e4653d321048b16b1373c8ddf0657590963c5897: e4653d321048b16b1373c8ddf0657590963c5897
  xe-2590-e300f8946bc0ce873e4c4bc1a2cd05e7b617b1db: e300f8946bc0ce873e4c4bc1a2cd05e7b617b1db

== Logs ==

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

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

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

* ✗ Xe.CI.Full: failure for add test to validate uhbr/non-uhbr over sst/mst (rev3)
  2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
                   ` (6 preceding siblings ...)
  2025-02-04  1:12 ` ✗ Xe.CI.BAT: " Patchwork
@ 2025-02-04  3:07 ` Patchwork
  7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2025-02-04  3:07 UTC (permalink / raw)
  To: Kunal Joshi; +Cc: igt-dev

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

== Series Details ==

Series: add test to validate uhbr/non-uhbr over sst/mst (rev3)
URL   : https://patchwork.freedesktop.org/series/143039/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8221_full -> XEIGTPW_12534_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_12534_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_12534_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 (4 -> 4)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_crc@cursor-sliding-256x85:
    - shard-dg2-set2:     NOTRUN -> [DMESG-WARN][1] +1 other test dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@kms_cursor_crc@cursor-sliding-256x85.html

  * {igt@kms_dp_linktraining@uhbr-mst} (NEW):
    - shard-bmg:          NOTRUN -> [SKIP][2] +2 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@kms_dp_linktraining@uhbr-mst.html

  * {igt@kms_dp_linktraining@uhbr-sst} (NEW):
    - shard-dg2-set2:     NOTRUN -> [SKIP][3] +3 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_dp_linktraining@uhbr-sst.html
    - shard-lnl:          NOTRUN -> [SKIP][4] +3 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-3/igt@kms_dp_linktraining@uhbr-sst.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-dg2-set2:     [PASS][5] -> [SKIP][6]
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-432/igt@kms_joiner@basic-force-big-joiner.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_joiner@basic-force-big-joiner.html

  
New tests
---------

  New tests have been introduced between XEIGT_8221_full and XEIGTPW_12534_full:

### New IGT tests (4) ###

  * igt@kms_dp_linktraining@non-uhbr-mst:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dp_linktraining@non-uhbr-sst:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.0, 2.34] s

  * igt@kms_dp_linktraining@uhbr-mst:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dp_linktraining@uhbr-sst:
    - Statuses : 3 skip(s)
    - Exec time: [0.0, 1.28] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@intel_hwmon@hwmon-read:
    - shard-lnl:          NOTRUN -> [SKIP][7] ([Intel XE#1125])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-3/igt@intel_hwmon@hwmon-read.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-lnl:          NOTRUN -> [SKIP][8] ([Intel XE#3157])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic:
    - shard-lnl:          [PASS][9] -> [FAIL][10] ([Intel XE#3719] / [Intel XE#911]) +3 other tests fail
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-atomic.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_async_flips@async-flip-with-page-flip-events-atomic.html

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-edp-1-linear:
    - shard-lnl:          NOTRUN -> [FAIL][11] ([Intel XE#911]) +3 other tests fail
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-edp-1-linear.html

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-6-4-mc-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][12] ([Intel XE#2550] / [Intel XE#3767]) +15 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-6-4-mc-ccs.html

  * igt@kms_async_flips@test-cursor-atomic:
    - shard-lnl:          NOTRUN -> [SKIP][13] ([Intel XE#664])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-1/igt@kms_async_flips@test-cursor-atomic.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-lnl:          NOTRUN -> [SKIP][14] ([Intel XE#3279])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_big_fb@linear-64bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#2327]) +4 other tests skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@kms_big_fb@linear-64bpp-rotate-90.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][16] ([Intel XE#316]) +5 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_big_fb@linear-64bpp-rotate-90.html
    - shard-lnl:          NOTRUN -> [SKIP][17] ([Intel XE#1407]) +3 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_big_fb@linear-64bpp-rotate-90.html

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

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
    - shard-dg2-set2:     NOTRUN -> [SKIP][19] ([Intel XE#1124]) +10 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-180:
    - shard-lnl:          NOTRUN -> [SKIP][20] ([Intel XE#1124]) +8 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-addfb:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2328])
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_big_fb@yf-tiled-addfb.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][22] ([Intel XE#619])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@kms_big_fb@yf-tiled-addfb.html
    - shard-lnl:          NOTRUN -> [SKIP][23] ([Intel XE#1467])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_big_fb@yf-tiled-addfb.html

  * igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p:
    - shard-lnl:          NOTRUN -> [SKIP][24] ([Intel XE#2191])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-3/igt@kms_bw@connected-linear-tiling-3-displays-3840x2160p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#2314] / [Intel XE#2894]) +2 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][26] ([Intel XE#2191]) +2 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html
    - shard-lnl:          NOTRUN -> [SKIP][27] ([Intel XE#1512]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-3-displays-2160x1440p:
    - shard-dg2-set2:     NOTRUN -> [SKIP][28] ([Intel XE#367]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_bw@linear-tiling-3-displays-2160x1440p.html

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

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

  * igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][31] ([Intel XE#455] / [Intel XE#787]) +41 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_ccs@bad-rotation-90-y-tiled-gen12-rc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][32] ([Intel XE#787]) +152 other tests skip
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][33] ([Intel XE#2669]) +3 other tests skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-bmg:          NOTRUN -> [DMESG-WARN][34] ([Intel XE#4172]) +8 other tests dmesg-warn
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][35] ([Intel XE#3442])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

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

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc:
    - shard-lnl:          NOTRUN -> [SKIP][37] ([Intel XE#3432]) +1 other test skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs-cc.html

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

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#3432]) +1 other test skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html

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

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-dg2-set2:     NOTRUN -> [SKIP][41] ([Intel XE#2907]) +1 other test skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
    - shard-dg2-set2:     [PASS][42] -> [INCOMPLETE][43] ([Intel XE#1727] / [Intel XE#3124] / [Intel XE#4010])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-6:
    - shard-dg2-set2:     [PASS][44] -> [INCOMPLETE][45] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4010])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-6.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-c-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs:
    - shard-lnl:          NOTRUN -> [SKIP][46] ([Intel XE#2887]) +12 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-3/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs.html

  * igt@kms_cdclk@plane-scaling:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#2724])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@kms_cdclk@plane-scaling.html

  * igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][48] ([Intel XE#1152]) +3 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html

  * igt@kms_chamelium_color@ctm-green-to-red:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#2325]) +1 other test skip
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@kms_chamelium_color@ctm-green-to-red.html

  * igt@kms_chamelium_color@ctm-max:
    - shard-lnl:          NOTRUN -> [SKIP][50] ([Intel XE#306]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_chamelium_color@ctm-max.html

  * igt@kms_chamelium_color@gamma:
    - shard-dg2-set2:     NOTRUN -> [SKIP][51] ([Intel XE#306]) +3 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@kms_chamelium_color@gamma.html

  * igt@kms_chamelium_edid@dp-edid-resolution-list:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#2252]) +10 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_chamelium_edid@dp-edid-resolution-list.html

  * igt@kms_chamelium_edid@vga-edid-read:
    - shard-dg2-set2:     NOTRUN -> [SKIP][53] ([Intel XE#373]) +7 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_chamelium_edid@vga-edid-read.html
    - shard-lnl:          NOTRUN -> [SKIP][54] ([Intel XE#373]) +9 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_chamelium_edid@vga-edid-read.html

  * igt@kms_content_protection@legacy:
    - shard-bmg:          NOTRUN -> [FAIL][55] ([Intel XE#1178]) +4 other tests fail
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_content_protection@legacy.html
    - shard-dg2-set2:     NOTRUN -> [FAIL][56] ([Intel XE#1178]) +1 other test fail
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@kms_content_protection@legacy.html
    - shard-lnl:          NOTRUN -> [SKIP][57] ([Intel XE#3278]) +2 other tests skip
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@type1:
    - shard-bmg:          NOTRUN -> [SKIP][58] ([Intel XE#2341])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_content_protection@type1.html

  * igt@kms_content_protection@uevent@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][59] ([Intel XE#1188])
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@kms_content_protection@uevent@pipe-a-dp-2.html

  * igt@kms_cursor_crc@cursor-rapid-movement-128x42:
    - shard-lnl:          NOTRUN -> [SKIP][60] ([Intel XE#1424]) +6 other tests skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html

  * igt@kms_cursor_crc@cursor-sliding-256x85:
    - shard-bmg:          NOTRUN -> [SKIP][61] ([Intel XE#2320]) +7 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@kms_cursor_crc@cursor-sliding-256x85.html

  * igt@kms_cursor_edge_walk@128x128-right-edge:
    - shard-dg2-set2:     [PASS][62] -> [DMESG-WARN][63] ([Intel XE#1033]) +8 other tests dmesg-warn
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-432/igt@kms_cursor_edge_walk@128x128-right-edge.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_cursor_edge_walk@128x128-right-edge.html

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
    - shard-dg2-set2:     [PASS][64] -> [SKIP][65] ([Intel XE#309]) +4 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-436/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#2291]) +2 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
    - shard-lnl:          NOTRUN -> [SKIP][67] ([Intel XE#309]) +4 other tests skip
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
    - shard-bmg:          [PASS][68] -> [SKIP][69] ([Intel XE#2291]) +2 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-dg2-set2:     NOTRUN -> [SKIP][70] ([Intel XE#323])
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
    - shard-lnl:          NOTRUN -> [SKIP][71] ([Intel XE#323])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html
    - shard-bmg:          NOTRUN -> [SKIP][72] ([Intel XE#2286])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_display_modes@mst-extended-mode-negative:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#2323])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_display_modes@mst-extended-mode-negative.html
    - shard-lnl:          NOTRUN -> [SKIP][74] ([Intel XE#307])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_display_modes@mst-extended-mode-negative.html

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

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-lnl:          NOTRUN -> [SKIP][76] ([Intel XE#3070])
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-3/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-bmg:          NOTRUN -> [SKIP][77] ([Intel XE#2244]) +2 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-lnl:          NOTRUN -> [SKIP][78] ([Intel XE#2244]) +2 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@fbc:
    - shard-bmg:          NOTRUN -> [SKIP][79] ([Intel XE#4156])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@kms_fbcon_fbt@fbc.html

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

  * igt@kms_feature_discovery@display-3x:
    - shard-lnl:          NOTRUN -> [SKIP][82] ([Intel XE#703])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_feature_discovery@display-3x.html

  * igt@kms_feature_discovery@psr1:
    - shard-dg2-set2:     NOTRUN -> [SKIP][83] ([Intel XE#1135])
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-dp2-hdmi-a3:
    - shard-bmg:          [PASS][84] -> [FAIL][85] ([Intel XE#3321]) +1 other test fail
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-dp2-hdmi-a3.html
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-dp2-hdmi-a3.html

  * igt@kms_flip@2x-flip-vs-rmfb:
    - shard-lnl:          NOTRUN -> [SKIP][86] ([Intel XE#1421]) +5 other tests skip
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_flip@2x-flip-vs-rmfb.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-bmg:          NOTRUN -> [SKIP][87] ([Intel XE#2316])
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@2x-plain-flip-ts-check-interruptible:
    - shard-bmg:          NOTRUN -> [FAIL][88] ([Intel XE#2882]) +1 other test fail
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@kms_flip@2x-plain-flip-ts-check-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
    - shard-bmg:          [PASS][89] -> [SKIP][90] ([Intel XE#2316]) +2 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank:
    - shard-lnl:          NOTRUN -> [FAIL][91] ([Intel XE#886]) +1 other test fail
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_flip@flip-vs-absolute-wf_vblank.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-dp2:
    - shard-bmg:          [PASS][92] -> [FAIL][93] ([Intel XE#2882]) +4 other tests fail
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-2/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-dp2.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-dp2.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank@d-hdmi-a6:
    - shard-dg2-set2:     NOTRUN -> [DMESG-WARN][94] ([Intel XE#1033]) +4 other tests dmesg-warn
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_flip@flip-vs-blocking-wf-vblank@d-hdmi-a6.html

  * igt@kms_flip@flip-vs-wf_vblank-interruptible@d-dp4:
    - shard-dg2-set2:     [PASS][95] -> [INCOMPLETE][96] ([Intel XE#2049]) +1 other test incomplete
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-436/igt@kms_flip@flip-vs-wf_vblank-interruptible@d-dp4.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@kms_flip@flip-vs-wf_vblank-interruptible@d-dp4.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
    - shard-lnl:          NOTRUN -> [SKIP][97] ([Intel XE#1401]) +2 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling:
    - shard-lnl:          NOTRUN -> [SKIP][98] ([Intel XE#1397] / [Intel XE#1745]) +2 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-default-mode:
    - shard-lnl:          NOTRUN -> [SKIP][99] ([Intel XE#1397]) +2 other tests skip
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][100] ([Intel XE#2293] / [Intel XE#2380]) +2 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
    - shard-lnl:          NOTRUN -> [SKIP][101] ([Intel XE#1401] / [Intel XE#1745]) +2 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
    - shard-bmg:          NOTRUN -> [SKIP][102] ([Intel XE#2293]) +2 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_force_connector_basic@force-connector-state:
    - shard-lnl:          NOTRUN -> [SKIP][103] ([Intel XE#352])
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][104] ([Intel XE#2311]) +30 other tests skip
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt:
    - shard-lnl:          NOTRUN -> [SKIP][105] ([Intel XE#651]) +15 other tests skip
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary:
    - shard-dg2-set2:     NOTRUN -> [SKIP][106] ([Intel XE#651]) +27 other tests skip
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@kms_frontbuffer_tracking@drrs-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][107] ([Intel XE#4141]) +14 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-dg2-set2:     [PASS][108] -> [SKIP][109] ([Intel XE#656]) +1 other test skip
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-434/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][110] ([Intel XE#656]) +6 other tests skip
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][111] ([Intel XE#653]) +31 other tests skip
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
    - shard-lnl:          NOTRUN -> [SKIP][112] ([Intel XE#656]) +39 other tests skip
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][113] ([Intel XE#2313]) +25 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][114] ([Intel XE#2312]) +17 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_getfb@getfb2-accept-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][115] ([Intel XE#2340])
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_getfb@getfb2-accept-ccs.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-lnl:          NOTRUN -> [SKIP][116] ([Intel XE#1503]) +1 other test skip
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][117] ([Intel XE#346])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_joiner@basic-big-joiner.html
    - shard-lnl:          NOTRUN -> [SKIP][118] ([Intel XE#346])
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-2/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][119] ([Intel XE#2927])
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_joiner@basic-ultra-joiner.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][120] ([Intel XE#2927])
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-bmg:          NOTRUN -> [SKIP][121] ([Intel XE#2934])
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][122] ([Intel XE#2925])
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
    - shard-lnl:          NOTRUN -> [SKIP][123] ([Intel XE#2934])
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_panel_fitting@legacy:
    - shard-bmg:          NOTRUN -> [SKIP][124] ([Intel XE#2486]) +1 other test skip
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-lnl:          NOTRUN -> [SKIP][125] ([Intel XE#3307])
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [DMESG-WARN][126] ([Intel XE#4212]) +2 other tests dmesg-warn
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a:
    - shard-lnl:          NOTRUN -> [SKIP][127] ([Intel XE#2763]) +15 other tests skip
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-7/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b:
    - shard-bmg:          NOTRUN -> [SKIP][128] ([Intel XE#2763]) +14 other tests skip
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][129] ([Intel XE#2763]) +2 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d:
    - shard-dg2-set2:     NOTRUN -> [SKIP][130] ([Intel XE#2763] / [Intel XE#455]) +1 other test skip
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-dg2-set2:     NOTRUN -> [SKIP][131] ([Intel XE#870]) +2 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_pm_backlight@fade-with-suspend.html
    - shard-bmg:          NOTRUN -> [SKIP][132] ([Intel XE#870])
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-lnl:          [PASS][133] -> [FAIL][134] ([Intel XE#718])
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-lnl-4/igt@kms_pm_dc@dc5-psr.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-bmg:          NOTRUN -> [SKIP][135] ([Intel XE#1439] / [Intel XE#836])
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_pm_rpm@dpms-non-lpsp:
    - shard-dg2-set2:     [PASS][136] -> [SKIP][137] ([Intel XE#836])
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-435/igt@kms_pm_rpm@dpms-non-lpsp.html
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_pm_rpm@dpms-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-bmg:          NOTRUN -> [SKIP][138] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836])
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][139] ([Intel XE#1489]) +11 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-lnl:          NOTRUN -> [SKIP][140] ([Intel XE#2893]) +5 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          NOTRUN -> [SKIP][141] ([Intel XE#1489]) +10 other tests skip
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr@fbc-psr2-cursor-plane-onoff:
    - shard-dg2-set2:     NOTRUN -> [SKIP][142] ([Intel XE#2850] / [Intel XE#929]) +17 other tests skip
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_psr@fbc-psr2-cursor-plane-onoff.html

  * igt@kms_psr@pr-cursor-plane-onoff:
    - shard-lnl:          NOTRUN -> [SKIP][143] ([Intel XE#1406]) +1 other test skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-1/igt@kms_psr@pr-cursor-plane-onoff.html

  * igt@kms_psr@psr-cursor-plane-onoff:
    - shard-bmg:          NOTRUN -> [SKIP][144] ([Intel XE#2234] / [Intel XE#2850]) +17 other tests skip
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_psr@psr-cursor-plane-onoff.html

  * igt@kms_psr@psr2-dpms:
    - shard-lnl:          [PASS][145] -> [FAIL][146] ([Intel XE#3924]) +1 other test fail
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-lnl-1/igt@kms_psr@psr2-dpms.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_psr@psr2-dpms.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-dg2-set2:     NOTRUN -> [SKIP][147] ([Intel XE#3414]) +1 other test skip
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@kms_rotation_crc@primary-rotation-270.html
    - shard-lnl:          NOTRUN -> [SKIP][148] ([Intel XE#3414] / [Intel XE#3904]) +1 other test skip
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-rotation-90:
    - shard-bmg:          NOTRUN -> [SKIP][149] ([Intel XE#3414] / [Intel XE#3904]) +2 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_rotation_crc@primary-rotation-90.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-bmg:          NOTRUN -> [SKIP][150] ([Intel XE#2330])
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

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

  * igt@kms_vrr@flip-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][152] ([Intel XE#1499]) +2 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@flipline:
    - shard-dg2-set2:     NOTRUN -> [SKIP][153] ([Intel XE#455]) +17 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@kms_vrr@flipline.html
    - shard-lnl:          NOTRUN -> [FAIL][154] ([Intel XE#1522]) +1 other test fail
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-8/igt@kms_vrr@flipline.html

  * igt@kms_vrr@seamless-rr-switch-vrr:
    - shard-lnl:          NOTRUN -> [SKIP][155] ([Intel XE#1499])
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@kms_vrr@seamless-rr-switch-vrr.html

  * igt@kms_writeback@writeback-check-output:
    - shard-bmg:          NOTRUN -> [SKIP][156] ([Intel XE#756])
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@kms_writeback@writeback-check-output.html

  * igt@kms_writeback@writeback-fb-id-xrgb2101010:
    - shard-dg2-set2:     NOTRUN -> [SKIP][157] ([Intel XE#756]) +1 other test skip
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@kms_writeback@writeback-fb-id-xrgb2101010.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-bmg:          NOTRUN -> [SKIP][158] ([Intel XE#1091] / [Intel XE#2849])
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@sriov_basic@enable-vfs-autoprobe-off.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][159] ([Intel XE#1091] / [Intel XE#2849])
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@sriov_basic@enable-vfs-autoprobe-off.html
    - shard-lnl:          NOTRUN -> [SKIP][160] ([Intel XE#1091] / [Intel XE#2849])
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@xe_compute_preempt@compute-preempt-many:
    - shard-dg2-set2:     NOTRUN -> [SKIP][161] ([Intel XE#1280] / [Intel XE#455]) +1 other test skip
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@xe_compute_preempt@compute-preempt-many.html

  * igt@xe_copy_basic@mem-copy-linear-0x3fff:
    - shard-dg2-set2:     NOTRUN -> [SKIP][162] ([Intel XE#1123]) +1 other test skip
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@xe_copy_basic@mem-copy-linear-0x3fff.html

  * igt@xe_copy_basic@mem-set-linear-0xfffe:
    - shard-dg2-set2:     NOTRUN -> [SKIP][163] ([Intel XE#1126])
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@xe_copy_basic@mem-set-linear-0xfffe.html

  * igt@xe_eudebug@basic-vm-access-parameters:
    - shard-lnl:          NOTRUN -> [SKIP][164] ([Intel XE#2905]) +10 other tests skip
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@xe_eudebug@basic-vm-access-parameters.html

  * igt@xe_eudebug@basic-vm-bind-metadata-discovery:
    - shard-bmg:          NOTRUN -> [SKIP][165] ([Intel XE#2905]) +10 other tests skip
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@xe_eudebug@basic-vm-bind-metadata-discovery.html

  * igt@xe_eudebug_online@preempt-breakpoint:
    - shard-dg2-set2:     NOTRUN -> [SKIP][166] ([Intel XE#2905]) +9 other tests skip
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@xe_eudebug_online@preempt-breakpoint.html

  * igt@xe_evict@evict-large-external:
    - shard-lnl:          NOTRUN -> [SKIP][167] ([Intel XE#688]) +5 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-7/igt@xe_evict@evict-large-external.html

  * igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap:
    - shard-dg2-set2:     [PASS][168] -> [SKIP][169] ([Intel XE#1392]) +2 other tests skip
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-463/igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap.html
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@xe_exec_basic@multigpu-no-exec-null-defer-mmap.html

  * igt@xe_exec_basic@multigpu-once-null-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][170] ([Intel XE#2322]) +11 other tests skip
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@xe_exec_basic@multigpu-once-null-rebind.html

  * igt@xe_exec_basic@multigpu-once-userptr:
    - shard-lnl:          NOTRUN -> [SKIP][171] ([Intel XE#1392]) +8 other tests skip
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-6/igt@xe_exec_basic@multigpu-once-userptr.html

  * igt@xe_exec_fault_mode@many-userptr:
    - shard-dg2-set2:     NOTRUN -> [SKIP][172] ([Intel XE#288]) +28 other tests skip
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@xe_exec_fault_mode@many-userptr.html

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

  * igt@xe_media_fill@media-fill:
    - shard-dg2-set2:     NOTRUN -> [SKIP][174] ([Intel XE#560])
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@xe_media_fill@media-fill.html

  * igt@xe_mmap@pci-membarrier:
    - shard-lnl:          NOTRUN -> [SKIP][175] ([Intel XE#4045])
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-1/igt@xe_mmap@pci-membarrier.html

  * igt@xe_module_load@load:
    - shard-bmg:          ([PASS][176], [PASS][177], [PASS][178], [PASS][179], [PASS][180], [PASS][181], [PASS][182], [PASS][183], [PASS][184], [PASS][185], [PASS][186], [PASS][187], [PASS][188], [PASS][189], [PASS][190], [PASS][191], [PASS][192], [PASS][193], [PASS][194], [PASS][195], [PASS][196], [PASS][197], [PASS][198], [PASS][199]) -> ([PASS][200], [PASS][201], [PASS][202], [PASS][203], [PASS][204], [PASS][205], [PASS][206], [PASS][207], [PASS][208], [SKIP][209], [PASS][210], [PASS][211], [PASS][212], [PASS][213], [PASS][214], [PASS][215], [PASS][216], [PASS][217], [PASS][218], [PASS][219], [PASS][220], [PASS][221], [PASS][222], [PASS][223], [PASS][224], [PASS][225]) ([Intel XE#2457])
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@xe_module_load@load.html
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@xe_module_load@load.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-7/igt@xe_module_load@load.html
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@xe_module_load@load.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@xe_module_load@load.html
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@xe_module_load@load.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@xe_module_load@load.html
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@xe_module_load@load.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@xe_module_load@load.html
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@xe_module_load@load.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@xe_module_load@load.html
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@xe_module_load@load.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@xe_module_load@load.html
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-2/igt@xe_module_load@load.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-7/igt@xe_module_load@load.html
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@xe_module_load@load.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@xe_module_load@load.html
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-2/igt@xe_module_load@load.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@xe_module_load@load.html
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@xe_module_load@load.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@xe_module_load@load.html
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-7/igt@xe_module_load@load.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-7/igt@xe_module_load@load.html
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-2/igt@xe_module_load@load.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@xe_module_load@load.html
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@xe_module_load@load.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@xe_module_load@load.html
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@xe_module_load@load.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@xe_module_load@load.html
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@xe_module_load@load.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@xe_module_load@load.html
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@xe_module_load@load.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@xe_module_load@load.html
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@xe_module_load@load.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@xe_module_load@load.html
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@xe_module_load@load.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@xe_module_load@load.html
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@xe_module_load@load.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@xe_module_load@load.html
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@xe_module_load@load.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@xe_module_load@load.html
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@xe_module_load@load.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@xe_module_load@load.html
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@xe_module_load@load.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@xe_module_load@load.html
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@xe_module_load@load.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@xe_module_load@load.html
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@xe_module_load@load.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@xe_module_load@load.html
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@xe_module_load@load.html

  * igt@xe_noexec_ping_pong:
    - shard-lnl:          NOTRUN -> [SKIP][226] ([Intel XE#379])
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@xe_noexec_ping_pong.html

  * igt@xe_oa@syncs-ufence-wait-cfg:
    - shard-dg2-set2:     NOTRUN -> [SKIP][227] ([Intel XE#2541] / [Intel XE#3573]) +5 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@xe_oa@syncs-ufence-wait-cfg.html

  * igt@xe_pat@pat-index-xe2:
    - shard-bmg:          [PASS][228] -> [DMESG-WARN][229] ([Intel XE#4172]) +18 other tests dmesg-warn
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@xe_pat@pat-index-xe2.html
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@xe_pat@pat-index-xe2.html

  * igt@xe_pat@pat-index-xehpc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][230] ([Intel XE#2838] / [Intel XE#979])
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@xe_pat@pat-index-xehpc.html

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

  * igt@xe_pat@pat-index-xelpg:
    - shard-dg2-set2:     NOTRUN -> [SKIP][233] ([Intel XE#979])
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@xe_pat@pat-index-xelpg.html

  * igt@xe_pm@d3cold-multiple-execs:
    - shard-bmg:          NOTRUN -> [SKIP][234] ([Intel XE#2284])
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@xe_pm@d3cold-multiple-execs.html
    - shard-dg2-set2:     NOTRUN -> [SKIP][235] ([Intel XE#2284] / [Intel XE#366])
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@xe_pm@d3cold-multiple-execs.html
    - shard-lnl:          NOTRUN -> [SKIP][236] ([Intel XE#2284] / [Intel XE#366])
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-1/igt@xe_pm@d3cold-multiple-execs.html

  * igt@xe_pm@s2idle-exec-after:
    - shard-dg2-set2:     NOTRUN -> [ABORT][237] ([Intel XE#1358])
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@xe_pm@s2idle-exec-after.html

  * igt@xe_pm@s3-basic:
    - shard-bmg:          [PASS][238] -> [DMESG-WARN][239] ([Intel XE#4172] / [Intel XE#569])
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-2/igt@xe_pm@s3-basic.html
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@xe_pm@s3-basic.html
    - shard-dg2-set2:     [PASS][240] -> [DMESG-WARN][241] ([Intel XE#1033] / [Intel XE#569])
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-434/igt@xe_pm@s3-basic.html
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@xe_pm@s3-basic.html

  * igt@xe_pm@s3-basic-exec:
    - shard-lnl:          NOTRUN -> [SKIP][242] ([Intel XE#584])
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-4/igt@xe_pm@s3-basic-exec.html

  * igt@xe_pm@s3-vm-bind-userptr:
    - shard-bmg:          NOTRUN -> [DMESG-WARN][243] ([Intel XE#4172] / [Intel XE#569])
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@xe_pm@s3-vm-bind-userptr.html

  * igt@xe_pm@s4-vm-bind-unbind-all:
    - shard-lnl:          NOTRUN -> [ABORT][244] ([Intel XE#1358] / [Intel XE#1607]) +2 other tests abort
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-7/igt@xe_pm@s4-vm-bind-unbind-all.html

  * igt@xe_query@multigpu-query-invalid-cs-cycles:
    - shard-bmg:          NOTRUN -> [SKIP][245] ([Intel XE#944]) +3 other tests skip
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@xe_query@multigpu-query-invalid-cs-cycles.html

  * igt@xe_query@multigpu-query-mem-usage:
    - shard-lnl:          NOTRUN -> [SKIP][246] ([Intel XE#944]) +2 other tests skip
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-lnl-5/igt@xe_query@multigpu-query-mem-usage.html

  * igt@xe_query@multigpu-query-uc-fw-version-guc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][247] ([Intel XE#944]) +2 other tests skip
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@xe_query@multigpu-query-uc-fw-version-guc.html

  * igt@xe_wedged@wedged-mode-toggle:
    - shard-dg2-set2:     NOTRUN -> [ABORT][248] ([Intel XE#3075] / [Intel XE#3084])
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@xe_wedged@wedged-mode-toggle.html

  
#### Possible fixes ####

  * igt@kms_async_flips@async-flip-suspend-resume@pipe-d-dp-4:
    - shard-dg2-set2:     [DMESG-WARN][249] ([Intel XE#1033]) -> [PASS][250] +23 other tests pass
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-463/igt@kms_async_flips@async-flip-suspend-resume@pipe-d-dp-4.html
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@kms_async_flips@async-flip-suspend-resume@pipe-d-dp-4.html

  * igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
    - shard-bmg:          [SKIP][251] ([Intel XE#2314] / [Intel XE#2894]) -> [PASS][252]
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6:
    - shard-dg2-set2:     [INCOMPLETE][253] ([Intel XE#1727] / [Intel XE#3124] / [Intel XE#4010]) -> [PASS][254] +1 other test pass
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6.html
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-dg2-set2:     [INCOMPLETE][255] ([Intel XE#3226]) -> [PASS][256]
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-435/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-legacy:
    - shard-dg2-set2:     [SKIP][257] ([Intel XE#309]) -> [PASS][258] +2 other tests pass
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic:
    - shard-bmg:          [SKIP][259] ([Intel XE#2291]) -> [PASS][260] +2 other tests pass
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-toggle:
    - shard-bmg:          [DMESG-WARN][261] ([Intel XE#877]) -> [PASS][262]
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-dg2-set2:     [SKIP][263] ([Intel XE#455]) -> [PASS][264]
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-dg2-set2:     [DMESG-FAIL][265] ([Intel XE#1033]) -> [PASS][266]
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-434/igt@kms_fbcon_fbt@fbc-suspend.html
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-dpms-vs-vblank-race-interruptible:
    - shard-dg2-set2:     [SKIP][267] ([Intel XE#310]) -> [PASS][268] +2 other tests pass
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible.html

  * igt@kms_flip@2x-flip-vs-dpms:
    - shard-bmg:          [SKIP][269] ([Intel XE#2316]) -> [PASS][270] +3 other tests pass
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms.html
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_flip@2x-flip-vs-dpms.html

  * igt@kms_flip@2x-flip-vs-rmfb-interruptible@ac-dp2-hdmi-a3:
    - shard-bmg:          [INCOMPLETE][271] ([Intel XE#2049]) -> [PASS][272] +1 other test pass
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-7/igt@kms_flip@2x-flip-vs-rmfb-interruptible@ac-dp2-hdmi-a3.html
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_flip@2x-flip-vs-rmfb-interruptible@ac-dp2-hdmi-a3.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-bmg:          [FAIL][273] ([Intel XE#2882]) -> [PASS][274] +1 other test pass
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-bmg:          [FAIL][275] ([Intel XE#3321]) -> [PASS][276] +1 other test pass
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt:
    - shard-dg2-set2:     [SKIP][277] ([Intel XE#656]) -> [PASS][278] +3 other tests pass
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt.html
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-msflip-blt.html

  * igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64:
    - shard-dg2-set2:     [FAIL][279] ([Intel XE#616]) -> [PASS][280]
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-436/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@kms_plane_cursor@overlay@pipe-a-hdmi-a-6-size-64.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind:
    - shard-dg2-set2:     [SKIP][281] ([Intel XE#1392]) -> [PASS][282] +2 other tests pass
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-432/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind.html
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-defer-bind.html

  * igt@xe_exec_sip_eudebug@wait-writesip-nodebug@drm_xe_engine_class_render0:
    - shard-bmg:          [DMESG-WARN][283] ([Intel XE#4172]) -> [PASS][284] +19 other tests pass
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-2/igt@xe_exec_sip_eudebug@wait-writesip-nodebug@drm_xe_engine_class_render0.html
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@xe_exec_sip_eudebug@wait-writesip-nodebug@drm_xe_engine_class_render0.html

  * igt@xe_pm@s2idle-vm-bind-userptr:
    - shard-dg2-set2:     [ABORT][285] ([Intel XE#1358] / [Intel XE#1794]) -> [PASS][286]
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-436/igt@xe_pm@s2idle-vm-bind-userptr.html
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@xe_pm@s2idle-vm-bind-userptr.html

  * igt@xe_pm@s3-basic-exec:
    - shard-dg2-set2:     [DMESG-WARN][287] ([Intel XE#1033] / [Intel XE#569]) -> [PASS][288]
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@xe_pm@s3-basic-exec.html
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@xe_pm@s3-basic-exec.html

  * igt@xe_pm@s3-multiple-execs:
    - shard-bmg:          [DMESG-WARN][289] ([Intel XE#4172] / [Intel XE#569]) -> [PASS][290] +2 other tests pass
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@xe_pm@s3-multiple-execs.html
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-7/igt@xe_pm@s3-multiple-execs.html

  
#### Warnings ####

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6:
    - shard-dg2-set2:     [SKIP][291] ([Intel XE#455] / [Intel XE#787]) -> [SKIP][292] ([Intel XE#787]) +6 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6.html
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-d-hdmi-a-6.html

  * igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-6:
    - shard-dg2-set2:     [SKIP][293] ([Intel XE#787]) -> [SKIP][294] ([Intel XE#455] / [Intel XE#787]) +1 other test skip
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-436/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-6.html
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_ccs@random-ccs-data-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-6.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-bmg:          [SKIP][295] ([Intel XE#2341]) -> [FAIL][296] ([Intel XE#1178])
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@kms_content_protection@atomic-dpms.html
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@uevent:
    - shard-bmg:          [SKIP][297] ([Intel XE#2341]) -> [FAIL][298] ([Intel XE#1188])
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@kms_content_protection@uevent.html
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-8/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-bmg:          [DMESG-WARN][299] ([Intel XE#877]) -> [SKIP][300] ([Intel XE#2291])
   [299]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html
   [300]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
    - shard-bmg:          [SKIP][301] ([Intel XE#2291]) -> [DMESG-WARN][302] ([Intel XE#4172])
   [301]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html
   [302]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6:
    - shard-dg2-set2:     [SKIP][303] ([Intel XE#455] / [i915#3804]) -> [SKIP][304] ([i915#3804])
   [303]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6.html
   [304]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-436/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-6.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset:
    - shard-bmg:          [DMESG-WARN][305] ([Intel XE#4172]) -> [SKIP][306] ([Intel XE#2316])
   [305]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html
   [306]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt:
    - shard-bmg:          [SKIP][307] ([Intel XE#2311]) -> [SKIP][308] ([Intel XE#2312]) +14 other tests skip
   [307]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html
   [308]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-dg2-set2:     [SKIP][309] ([Intel XE#651]) -> [SKIP][310] ([Intel XE#656]) +2 other tests skip
   [309]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-435/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc.html
   [310]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][311] ([Intel XE#2312]) -> [SKIP][312] ([Intel XE#2311]) +12 other tests skip
   [311]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
   [312]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen:
    - shard-dg2-set2:     [SKIP][313] ([Intel XE#656]) -> [SKIP][314] ([Intel XE#651]) +10 other tests skip
   [313]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html
   [314]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render:
    - shard-bmg:          [SKIP][315] ([Intel XE#4141]) -> [SKIP][316] ([Intel XE#2312]) +2 other tests skip
   [315]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html
   [316]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render:
    - shard-bmg:          [SKIP][317] ([Intel XE#2312]) -> [SKIP][318] ([Intel XE#4141]) +6 other tests skip
   [317]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
   [318]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-move:
    - shard-bmg:          [SKIP][319] ([Intel XE#2313]) -> [SKIP][320] ([Intel XE#2312]) +8 other tests skip
   [319]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-move.html
   [320]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt:
    - shard-bmg:          [SKIP][321] ([Intel XE#2312]) -> [SKIP][322] ([Intel XE#2313]) +12 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html
   [322]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt:
    - shard-dg2-set2:     [SKIP][323] ([Intel XE#656]) -> [SKIP][324] ([Intel XE#653]) +11 other tests skip
   [323]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt.html
   [324]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-466/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen:
    - shard-dg2-set2:     [SKIP][325] ([Intel XE#653]) -> [SKIP][326] ([Intel XE#656]) +5 other tests skip
   [325]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-435/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen.html
   [326]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-fullscreen.html

  * igt@kms_plane_cursor@overlay:
    - shard-dg2-set2:     [FAIL][327] ([Intel XE#616]) -> [DMESG-WARN][328] ([Intel XE#1033])
   [327]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-436/igt@kms_plane_cursor@overlay.html
   [328]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@kms_plane_cursor@overlay.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-dg2-set2:     [DMESG-WARN][329] ([Intel XE#1033] / [Intel XE#2042]) -> [ABORT][330] ([Intel XE#2625])
   [329]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-434/igt@kms_pm_rpm@system-suspend-modeset.html
   [330]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-432/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-dg2-set2:     [SKIP][331] ([Intel XE#1500]) -> [SKIP][332] ([Intel XE#362])
   [331]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-466/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [332]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@xe_pm@s3-exec-after:
    - shard-dg2-set2:     [ABORT][333] ([Intel XE#1358]) -> [DMESG-WARN][334] ([Intel XE#1033] / [Intel XE#569])
   [333]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-432/igt@xe_pm@s3-exec-after.html
   [334]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-434/igt@xe_pm@s3-exec-after.html

  * igt@xe_pm@s4-mocs:
    - shard-bmg:          [ABORT][335] ([Intel XE#1358]) -> [ABORT][336] ([Intel XE#1358] / [Intel XE#4172])
   [335]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-7/igt@xe_pm@s4-mocs.html
   [336]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-4/igt@xe_pm@s4-mocs.html
    - shard-dg2-set2:     [ABORT][337] ([Intel XE#1358]) -> [ABORT][338] ([Intel XE#1033] / [Intel XE#1358])
   [337]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-463/igt@xe_pm@s4-mocs.html
   [338]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-435/igt@xe_pm@s4-mocs.html

  * igt@xe_pm@s4-vm-bind-prefetch:
    - shard-dg2-set2:     [ABORT][339] ([Intel XE#1033] / [Intel XE#1358]) -> [ABORT][340] ([Intel XE#1358])
   [339]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-dg2-435/igt@xe_pm@s4-vm-bind-prefetch.html
   [340]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-dg2-464/igt@xe_pm@s4-vm-bind-prefetch.html

  * igt@xe_pm@s4-vm-bind-unbind-all:
    - shard-bmg:          [ABORT][341] ([Intel XE#1358] / [Intel XE#1607] / [Intel XE#4172]) -> [ABORT][342] ([Intel XE#1358] / [Intel XE#1607])
   [341]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8221/shard-bmg-4/igt@xe_pm@s4-vm-bind-unbind-all.html
   [342]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_12534/shard-bmg-5/igt@xe_pm@s4-vm-bind-unbind-all.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [Intel XE#1033]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1033
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
  [Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
  [Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
  [Intel XE#1152]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1152
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1188]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1188
  [Intel XE#1280]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1280
  [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
  [Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358
  [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#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
  [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#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
  [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#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
  [Intel XE#1522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1522
  [Intel XE#1607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1607
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
  [Intel XE#2042]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2042
  [Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2323
  [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#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2340
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
  [Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
  [Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
  [Intel XE#2550]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2550
  [Intel XE#2625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2625
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#2882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2882
  [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#2905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2905
  [Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
  [Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#3070]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3070
  [Intel XE#3075]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3075
  [Intel XE#3084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3084
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
  [Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
  [Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3157]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3157
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#3226]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3226
  [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
  [Intel XE#3278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3278
  [Intel XE#3279]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3279
  [Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
  [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3433
  [Intel XE#3442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3442
  [Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
  [Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
  [Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3719]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3719
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3767]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3767
  [Intel XE#379]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/379
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#3924]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3924
  [Intel XE#4010]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4010
  [Intel XE#4045]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4045
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156
  [Intel XE#4172]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4172
  [Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/560
  [Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
  [Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
  [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
  [Intel XE#619]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/619
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#664]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/664
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/703
  [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
  [Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
  [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#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877
  [Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
  [Intel XE#911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/911
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
  [Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804


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

  * IGT: IGT_8221 -> IGTPW_12534
  * Linux: xe-2587-e4653d321048b16b1373c8ddf0657590963c5897 -> xe-2590-e300f8946bc0ce873e4c4bc1a2cd05e7b617b1db

  IGTPW_12534: 0db58746ef0bafb9fc1621cdb86a785e0f0146ac @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_8221: ad1f57286d15d083b08c94f3d93600db85f9945b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-2587-e4653d321048b16b1373c8ddf0657590963c5897: e4653d321048b16b1373c8ddf0657590963c5897
  xe-2590-e300f8946bc0ce873e4c4bc1a2cd05e7b617b1db: e300f8946bc0ce873e4c4bc1a2cd05e7b617b1db

== Logs ==

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

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

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

* Re: [PATCH i-g-t 4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST
  2025-02-03  8:12 ` [PATCH i-g-t 4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST Kunal Joshi
@ 2025-02-04 14:01   ` Sharma, Swati2
  2025-02-11 12:39   ` [i-g-t,4/5] " Murthy, Arun R
  1 sibling, 0 replies; 13+ messages in thread
From: Sharma, Swati2 @ 2025-02-04 14:01 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev

Hi Kunal,

Please find my review comments below.

On 03-02-2025 01:42 pm, Kunal Joshi wrote:
> Add new test subtests kms_dp_linktraining
typo : remove subtests
> to validate both UHBR and non-UHBR link rates over SST
> and MST configurations.
> Add four new subtests (uhbr-sst, uhbr-mst, non-uhbr-sst, non-uhbr-mst)
> to check if the link rates match the expected UHBR or NON-UHBR capability
> and whether the outputs are MST or SST.
>
> v2: Add definition for UHBR_LINK_RATE
> v3: Add failure criteria (Jani Nikula)
>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>   tests/intel/kms_dp_linktraining.c | 372 ++++++++++++++++++++++++++++++
>   tests/meson.build                 |   4 +
>   2 files changed, 376 insertions(+)
>   create mode 100644 tests/intel/kms_dp_linktraining.c
>
> diff --git a/tests/intel/kms_dp_linktraining.c b/tests/intel/kms_dp_linktraining.c
> new file mode 100644
> index 000000000..6cedc47db
> --- /dev/null
> +++ b/tests/intel/kms_dp_linktraining.c
> @@ -0,0 +1,372 @@
> +// SPDX-License-Identifier: MIT
> +/**
> + * TEST: kms dp linktraining
> + * Category: Display
> + * Description: Test to validate link training on SST/MST with UHBR/NON_UHBR rates
> + * Driver requirement: i915, xe
> + * Functionality: linktraining
Should this be link_training ?
> + * Mega feature: General Display Features
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: uhbr-sst
> + * Description: Test we can drive UHBR rates over SST.
> + * Functionality: feature_discovery, uhbr, sst
This is not feature_discovery test anymore. Please remove.
Same implies to remaining subtests.
> + * Test category: functionality test
> + *
> + * SUBTEST: uhbr-mst
> + * Description: Test we can drive UHBR rates over MST.
> + * Functionality: feature_discovery, uhbr, mst
> + * Test category: functionality test
> + *
> + * SUBTEST: non-uhbr-sst
> + * Description: Test we can drive non-UHBR rates over SST.
> + * Functionality: feature_discovery, sst
> + * Test category: functionality test
> + *
> + * SUBTEST: non-uhbr-mst
> + * Description: Test we can drive non-UHBR rates over MST.
> + * Functionality: feature_discovery, mst
> + * Test category: functionality test
> + */
> +
> +#include "igt.h"
> +#include "igt_kms.h"
> +#include "intel/kms_joiner_helper.h"
> +#include "intel/kms_mst_helper.h"
> +
> +/*
> + * DP Spec defines 10, 13.5, and 20 Gbps as UHBR.
> + * Anything below that is considered NON-UHBR.
> + */
Shall we have some gen check since which intel platform UHBR is 
supported so that test can exit early?
> +#define UHBR_LINK_RATE	1000000
> +#define RETRAIN_COUNT	1
> +
> +typedef struct {
> +	int drm_fd;
> +	igt_display_t display;
> +	igt_output_t *output;
> +} data_t;
> +
> +/*
> + * check_condition_with_timeout - Polls check_fn until it returns 0
> + * or until 'timeout' seconds elapse.
> + */
> +static int check_condition_with_timeout(int drm_fd, igt_output_t *output,
> +		int (*check_fn)(int, igt_output_t *),
> +		double interval, double timeout)
Fix indentation.
> +{
> +	struct timespec start_time, current_time;
> +	double elapsed_time;
> +	int ret;
> +
> +	clock_gettime(CLOCK_MONOTONIC, &start_time);
> +
> +	while (true) {
> +		ret = check_fn(drm_fd, output);
> +		if (ret == 0)
> +			return 0;
> +
> +		clock_gettime(CLOCK_MONOTONIC, &current_time);
> +		elapsed_time = (current_time.tv_sec - start_time.tv_sec) +
> +			(current_time.tv_nsec - start_time.tv_nsec) / 1e9;
> +		if (elapsed_time >= timeout)
> +			return -1;
> +
> +		usleep((useconds_t)(interval * 1e6));
> +	}
> +}
> +
> +/*
> + * assert_link_status_good - Verifies link-status == GOOD
> + * for either a single SST output or all MST outputs in the topology.
> + */
> +static void assert_link_status_good(data_t *data, bool mst)
> +{
> +	igt_output_t *outputs[IGT_MAX_PIPES];
> +	uint32_t link_status_prop_id;
> +	uint64_t link_status_value;
> +	drmModePropertyPtr link_status_prop;
> +	int count = 0;
> +	int i;
> +
> +	if (mst) {
> +		igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd,
> +					&data->display, data->output,
> +					outputs, &count),
> +				"Unable to find MST outputs\n");
> +
> +		for (i = 0; i < count; i++) {
> +			kmstest_get_property(data->drm_fd,
> +					outputs[i]->config.connector->connector_id,
> +					DRM_MODE_OBJECT_CONNECTOR,
> +					"link-status",
> +					&link_status_prop_id,
> +					&link_status_value,
> +					&link_status_prop);
> +
> +			igt_assert_eq(link_status_value,
> +					DRM_MODE_LINK_STATUS_GOOD);
> +		}
> +	} else {
> +		kmstest_get_property(data->drm_fd,
> +				data->output->config.connector->connector_id,
> +				DRM_MODE_OBJECT_CONNECTOR,
> +				"link-status",
> +				&link_status_prop_id,
> +				&link_status_value,
> +				&link_status_prop);
> +
> +		igt_assert_eq(link_status_value, DRM_MODE_LINK_STATUS_GOOD);
> +	}
> +}
> +
> +/*
> + * setup_planes_fbs - Create solid-color FBs and attach them to the primary plane.
> + */
> +static void setup_planes_fbs(data_t *data, igt_output_t *outs[],
> +		int count, drmModeModeInfo *modes[],
> +		struct igt_fb fbs[], struct igt_plane *planes[])
Fix indentation.
> +{
> +	int i;
> +
> +	for (i = 0; i < count; i++) {
> +		modes[i] = igt_output_get_mode(outs[i]);
> +		igt_info("Mode %dx%d@%d on output %s\n",
> +				modes[i]->hdisplay, modes[i]->vdisplay,
> +				modes[i]->vrefresh, igt_output_name(outs[i]));
> +
> +		planes[i] = igt_output_get_plane_type(outs[i],
> +				DRM_PLANE_TYPE_PRIMARY);
> +
> +		igt_create_color_fb(data->drm_fd, modes[i]->hdisplay,
> +				modes[i]->vdisplay,
> +				DRM_FORMAT_XRGB8888,
> +				DRM_FORMAT_MOD_LINEAR,
> +				0.0, 1.0, 0.0, &fbs[i]);
> +
> +		igt_plane_set_fb(planes[i], &fbs[i]);
> +	}
> +}
> +
> +/*
> + * fit_modes_in_bw - Tries atomic TEST_ONLY commit; if it fails, overrides
> + * output modes to fit bandwidth.
> + */
> +static bool fit_modes_in_bw(data_t *data)
> +{
> +	int ret;
> +
> +	ret = igt_display_try_commit_atomic(&data->display,
> +			DRM_MODE_ATOMIC_TEST_ONLY |
> +			DRM_MODE_ATOMIC_ALLOW_MODESET,
> +			NULL);
> +	if (ret != 0) {
> +		bool found;
> +
> +		found = igt_override_all_active_output_modes_to_fit_bw(&data->display);
> +		igt_require_f(found, "No valid mode combo found for modeset\n");
> +	}
> +
> +	return true;
> +}
> +
> +static void do_modeset(data_t *data, bool mst)
> +{
> +	uint32_t master_pipes_mask = 0;
> +	uint32_t valid_pipes_mask = 0;
> +	uint32_t used_pipes_mask = 0;
> +	igt_output_t *outs[IGT_MAX_PIPES];
> +	drmModeModeInfo *modes[IGT_MAX_PIPES];
> +	struct igt_fb fbs[IGT_MAX_PIPES];
> +	struct igt_plane *planes[IGT_MAX_PIPES];
> +	int n_pipes = 0;
> +	int out_count = 0;
> +	int i;
> +
> +	for_each_pipe(&data->display, i) {
> +		valid_pipes_mask |= BIT(i);
> +		n_pipes++;
> +	}
> +
> +	if (mst) {
> +		igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd,
> +					&data->display,
> +					data->output, outs,
> +					&out_count),
> +				"Unable to find MST outputs\n");
> +	} else {
> +		outs[0] = data->output;
> +		out_count = 1;
> +	}
> +
> +	igt_assert_f(out_count > 0, "Require at least one output\n");
> +
> +	igt_set_all_master_pipes_for_platform(&data->display, &master_pipes_mask);
> +
> +	igt_assert_f(igt_assign_pipes_for_outputs(data->drm_fd,
> +				outs,
> +				out_count,
> +				n_pipes,
> +				&used_pipes_mask,
> +				master_pipes_mask,
> +				valid_pipes_mask),
> +			"Unable to assign pipes for outputs\n");
> +
> +	setup_planes_fbs(data, outs, out_count, modes, fbs, planes);
> +	fit_modes_in_bw(data);
> +	igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +}
> +
> +/*
> + * run_link_rate_test - Main link training routine. Expects the MST vs. SST check
> + * to be done beforehand. Returns true if tested at the correct rate.
> + */
> +static bool run_link_rate_test(data_t *data, bool mst, bool uhbr)
> +{
> +	int max_link_rate;
> +	int max_lane_count;
> +	int current_link_rate;
> +	bool is_uhbr_output;
> +	char rate_str[32];
> +	char lane_str[32];
> +
> +	igt_display_reset(&data->display);
> +	igt_reset_link_params(data->drm_fd, data->output);
> +
> +	/* Retrain at default/driver parameters */
> +	igt_force_link_retrain(data->drm_fd, data->output, RETRAIN_COUNT);
> +	igt_assert_eq(check_condition_with_timeout(data->drm_fd, data->output,
> +		      igt_get_dp_pending_retrain, 1.0, 20.0), 0);
> +	assert_link_status_good(data, mst);
> +	do_modeset(data, mst);
> +
> +	/* FIXME : Driver may lie max link rate or max lane count */
> +	/* Read max_link_rate and max_lane_count */
> +	max_link_rate = igt_get_max_link_rate(data->drm_fd, data->output);
> +	max_lane_count = igt_get_max_lane_count(data->drm_fd, data->output);
> +
> +	/* Check sink supports uhbr or not */
> +	is_uhbr_output = (max_link_rate >= UHBR_LINK_RATE);
> +	if ((uhbr && !is_uhbr_output) || (!uhbr && is_uhbr_output)) {
> +		igt_info("Test expects %s, but output %s is %s.\n",
> +			 uhbr ? "UHBR" : "NON-UHBR",
> +			 data->output->name,
> +			 is_uhbr_output ? "UHBR" : "NON-UHBR");
> +		igt_info("----------------------------------------------------\n");
> +		return false;
> +	}
> +
> +	snprintf(rate_str, sizeof(rate_str), "%d", max_link_rate);
> +	snprintf(lane_str, sizeof(lane_str), "%d", max_lane_count);
> +	igt_info("Max link rate for %s is %s, lane count = %d\n",
> +		 data->output->name, rate_str, max_lane_count);
> +
> +	/* Force retrain at max link params */
> +	igt_set_link_params(data->drm_fd, data->output, rate_str, lane_str);
> +	igt_force_link_retrain(data->drm_fd, data->output, RETRAIN_COUNT);
> +	igt_assert_eq(check_condition_with_timeout(data->drm_fd, data->output,
> +		      igt_get_dp_pending_retrain, 1.0, 20.0), 0);
> +	assert_link_status_good(data, mst);
> +
> +	current_link_rate = igt_get_current_link_rate(data->drm_fd, data->output);
> +	igt_info("Current link rate is %d\n", current_link_rate);
> +	igt_assert_f(current_link_rate == max_link_rate,
> +		     "Link training did not succeed at max link rate.\n");
> +	igt_assert_f(is_uhbr_output ?
> +		     current_link_rate >= UHBR_LINK_RATE :
> +		     current_link_rate < UHBR_LINK_RATE,
> +		     is_uhbr_output ? "Link training didn't happen at uhbr rates" :
> +		     "Link training didn't happen at non-uhbr rates");
> +	igt_info("----------------------------------------------------\n");
> +	return true;
> +}
> +
> +/*
> + * test_link_rate - Iterates over connected DP outputs. Checks MST vs. SST
> + * early, then calls run_link_rate_test(). Returns true if it ran on at
> + * least one matching output.
> + */
> +static bool test_link_rate(data_t *data, bool mst, bool uhbr)
> +{
> +	bool ran_any_output = false, is_mst = false;
> +	igt_output_t *tmp_output;
> +
> +	igt_skip_on_f(!is_intel_device(data->drm_fd),
> +			"Test supported only on Intel platforms.\n");
> +
> +	for_each_connected_output(&data->display, tmp_output) {
> +		if (tmp_output->config.connector->connector_type !=
> +		    DRM_MODE_CONNECTOR_DisplayPort) {
> +			igt_info("Skipping non-DisplayPort output %s\n",
> +					tmp_output->name);
> +			igt_info("----------------------------------------------------\n");
> +			continue;
> +		}
> +
> +		/* Early skip if MST vs. SST does not match. */
> +		is_mst = igt_check_output_is_dp_mst(tmp_output);
> +		if (mst && !is_mst) {
> +			igt_info("Skipping %s: MST requested but it's SST.\n",
> +					tmp_output->name);
> +			igt_info("----------------------------------------------------\n");
> +			continue;
> +		} else if (!mst && is_mst) {
> +			igt_info("Skipping %s: SST requested but it's MST.\n",
> +					tmp_output->name);
> +			igt_info("----------------------------------------------------\n");
> +			continue;
> +		}
> +		data->output = tmp_output;
> +		igt_info("Running link training test for %s\n",
> +			 data->output->name);
> +		ran_any_output = ran_any_output | run_link_rate_test(data, mst, uhbr);
> +	}
> +	return ran_any_output;
> +}
> +
> +IGT_TEST_DESCRIPTION("Test to validate link training on SST/MST with "
> +		"UHBR/NON_UHBR rates");
> +
> +igt_main
> +{
> +	data_t data = {};
> +
> +	igt_fixture {
> +		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
> +		kmstest_set_vt_graphics_mode();
> +		igt_display_require(&data.display, data.drm_fd);
> +		igt_display_require_output(&data.display);
> +	}
> +
> +	igt_describe("Test we can drive UHBR rates over SST");
> +	igt_subtest("uhbr-sst") {
> +		igt_require_f(test_link_rate(&data, false, true),
> +			      "Didn't find any SST output with UHBR rates.\n");
> +	}
> +
> +	igt_describe("Test we can drive UHBR rates over MST");
> +	igt_subtest("uhbr-mst") {
> +		igt_require_f(test_link_rate(&data, true, true),
> +			      "Didn't find any MST output with UHBR rates.\n");
> +	}
> +
> +	igt_describe("Test we can drive NON-UHBR rates over SST");
> +	igt_subtest("non-uhbr-sst") {
> +		igt_require_f(test_link_rate(&data, false, false),
> +			      "Didn't find any SST output with NON-UHBR rates.\n");
> +	}
> +
> +	igt_describe("Test we can drive NON-UHBR rates over MST");
> +	igt_subtest("non-uhbr-mst") {
> +		igt_require_f(test_link_rate(&data, true, false),
> +			      "Didn't find any MST output with NON-UHBR rates.\n");
> +	}
> +
> +	igt_fixture {
> +		igt_reset_connectors();
> +		igt_display_fini(&data.display);
> +		close(data.drm_fd);
> +	}
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index b9dd162cc..926c5825f 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -246,6 +246,7 @@ intel_kms_progs = [
>   	'kms_ccs',
>   	'kms_cdclk',
>   	'kms_dirtyfb',
> +	'kms_dp_linktraining',
>           'kms_dp_linktrain_fallback',
>   	'kms_draw_crc',
>   	'kms_dsc',
> @@ -367,6 +368,9 @@ extra_sources = {
>   	'kms_chamelium_frames': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
>   	'kms_chamelium_hpd': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
>   	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
> +	'kms_dp_linktraining': [
> +		join_paths ('intel', 'kms_joiner_helper.c'),
> +		join_paths ('intel', 'kms_mst_helper.c') ],
>           'kms_dp_linktrain_fallback': [ join_paths ('intel', 'kms_mst_helper.c') ],
>   	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
>   	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],

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

* Re: [PATCH i-g-t 2/5] tests/intel/kms_mst_helper: add helper for MST-related functions
  2025-02-03  8:12 ` [PATCH i-g-t 2/5] tests/intel/kms_mst_helper: add helper for MST-related functions Kunal Joshi
@ 2025-02-10  7:16   ` Nautiyal, Ankit K
  0 siblings, 0 replies; 13+ messages in thread
From: Nautiyal, Ankit K @ 2025-02-10  7:16 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev; +Cc: Jeevan B


On 2/3/2025 1:42 PM, Kunal Joshi wrote:
> Add helper to centralize commonly used MST-related logic.
> igt_find_all_mst_output_in_topology() enumerates MST outputs
> that share the same root connector id.
>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> Reviewed-by: Jeevan B <jeevan.b@intel.com>
> ---
>   tests/intel/kms_dp_linktrain_fallback.c | 28 +++------------
>   tests/intel/kms_mst_helper.c            | 48 +++++++++++++++++++++++++
>   tests/intel/kms_mst_helper.h            | 10 ++++++
>   tests/meson.build                       |  1 +
>   4 files changed, 63 insertions(+), 24 deletions(-)
>   create mode 100644 tests/intel/kms_mst_helper.c
>   create mode 100644 tests/intel/kms_mst_helper.h
>
> diff --git a/tests/intel/kms_dp_linktrain_fallback.c b/tests/intel/kms_dp_linktrain_fallback.c
> index 415005774..bcfb2f0a0 100644
> --- a/tests/intel/kms_dp_linktrain_fallback.c
> +++ b/tests/intel/kms_dp_linktrain_fallback.c
> @@ -16,6 +16,7 @@
>   #include <sys/types.h>
>   #include "igt_sysfs.h"
>   #include "igt.h"
> +#include "kms_mst_helper.h"
>   
>   /**
>    * SUBTEST: dp-fallback
> @@ -47,28 +48,6 @@ typedef int (*condition_check_fn)(int drm_fd, igt_output_t *output);
>   
>   IGT_TEST_DESCRIPTION("Test link training fallback");
>   
> -static void find_mst_outputs(int drm_fd, data_t *data,
> -			     igt_output_t *output,
> -			     igt_output_t *mst_outputs[],
> -			     int *num_mst_outputs)
> -{
> -	int output_root_id, root_id;
> -	igt_output_t *connector_output;
> -
> -	output_root_id = igt_get_dp_mst_connector_id(output);
> -	/*
> -	 * If output is MST check all other connected output which shares
> -	 * same path and fill mst_outputs and num_mst_outputs
> -	 */
> -	for_each_connected_output(&data->display, connector_output) {
> -		if (!igt_check_output_is_dp_mst(connector_output))
> -			continue;
> -		root_id = igt_get_dp_mst_connector_id(connector_output);
> -		if (((*num_mst_outputs) < IGT_MAX_PIPES) && root_id == output_root_id)
> -			mst_outputs[(*num_mst_outputs)++] = connector_output;
> -	}
> -}
> -
>   static bool setup_mst_outputs(data_t *data, igt_output_t *mst_output[],
>   			      int *output_count)
>   {
> @@ -83,8 +62,9 @@ static bool setup_mst_outputs(data_t *data, igt_output_t *mst_output[],
>   		    traversed_mst_outputs[i] == data->output->config.connector->connector_id)
>   			return false;
>   
> -	find_mst_outputs(data->drm_fd, data, data->output,
> -			 mst_output, output_count);
> +       igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd, &data->display, data->output,
> +							mst_output, output_count),
> +		    "Unable to find mst outputs\n");
>   
>   	for (i = 0; i < *output_count; i++) {
>   		output = mst_output[i];
> diff --git a/tests/intel/kms_mst_helper.c b/tests/intel/kms_mst_helper.c
> new file mode 100644
> index 000000000..9d52068f7
> --- /dev/null
> +++ b/tests/intel/kms_mst_helper.c
> @@ -0,0 +1,48 @@
> +#include "kms_mst_helper.h"
> +
> +/*
> + * @drm_fd: DRM file descriptor
> + * @display: pointer to an #igt_display_t structure
> + * @output: target output
> + * @mst_outputs: filled with mst output of same toplogy as @output
> + * @num_mst_outputs: filled with count of mst outputs found in topology
All below these seems to get added erroneously. Please remove them.
> + * @n_pipes: total number of pipes available
> + * @used_pipes_mask: pointer to a bitmask (in/out) of already-used pipes
> + * @master_pipes_mask: bitmask of valid "master" pipes
> + * @valid_pipes_mask: bitmask of valid (non-fused) pipes
> + *
> + * Assign pipes to outputs based on the number of required pipes.
> + * This function will assign 1, 2, or 4 consecutive pipes to each output.
> + * It will also mark the used pipes in the bitmask.
> + *

Need to fix the documentation, doesnt seem to match with what the 
function is doing.


> + * Returns: true if all outputs can be assigned successfully; false otherwise.

Generally bool is returned when we want to check a specific thing which 
has true or false answer.

In this case, we are trying to find mst outputs which can succeed or not 
depending on the config.

Better to return 0 in case of success and negative error code in case of 
failure.


> + */
> +bool igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
> +					 igt_output_t *output,
> +					 igt_output_t *mst_outputs[],
> +					 int *num_mst_outputs)
> +{
> +	int output_root_id, root_id;
> +	igt_output_t *connector_output;
> +
> +	if (!igt_check_output_is_dp_mst(output))
> +		return false;
> +
> +	output_root_id = igt_get_dp_mst_connector_id(output);
> +	if (output_root_id == -EINVAL)
> +		return false;

Let this change be in a separate patch, in the 
kms_dp_linktrain_fallback.c, and then it will be simple code movement 
from one file to another without any functional change.


> +
> +	/*
> +	 * If output is MST, check all other connected output which shares
> +	 * same path and fill mst_outputs and num_mst_outputs
> +	 */
> +	for_each_connected_output(display, connector_output) {
> +		if (!igt_check_output_is_dp_mst(connector_output))
> +			continue;
> +
> +		root_id = igt_get_dp_mst_connector_id(connector_output);
> +		if (((*num_mst_outputs) < IGT_MAX_PIPES) && root_id == output_root_id)
> +			mst_outputs[(*num_mst_outputs)++] = connector_output;
> +	}
> +	return true;
> +}
> diff --git a/tests/intel/kms_mst_helper.h b/tests/intel/kms_mst_helper.h
> new file mode 100644
> index 000000000..291fcebfe
> --- /dev/null
> +++ b/tests/intel/kms_mst_helper.h
> @@ -0,0 +1,10 @@


Missing License header.

Regards,

Ankit

> +#ifndef KMS_MST_HELPER_H
> +#define KMS_MST_HELPER_H
> +
> +#include "igt.h"
> +
> +bool igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
> +					 igt_output_t *output,
> +					 igt_output_t *mst_outputs[],
> +					 int *num_mst_outputs);
> +#endif
> diff --git a/tests/meson.build b/tests/meson.build
> index b2a7d7760..b9dd162cc 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -367,6 +367,7 @@ extra_sources = {
>   	'kms_chamelium_frames': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
>   	'kms_chamelium_hpd': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
>   	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
> +        'kms_dp_linktrain_fallback': [ join_paths ('intel', 'kms_mst_helper.c') ],
>   	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
>   	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],
>   }

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

* Re: [i-g-t,3/5] lib/igt_kms: add function to set link params
  2025-02-03  8:12 ` [PATCH i-g-t 3/5] lib/igt_kms: add function to set link params Kunal Joshi
@ 2025-02-11  9:53   ` Murthy, Arun R
  0 siblings, 0 replies; 13+ messages in thread
From: Murthy, Arun R @ 2025-02-11  9:53 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev

On 03-02-2025 13:42, Kunal Joshi wrote:
> add function to force link rate and lane count
> for given output, install exit handle to set auto
> at exit
>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---

Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>

Thanks and Regards,
Arun R Murthy
-------------------

>   lib/igt_kms.c | 33 +++++++++++++++++++++++++++++++++
>   lib/igt_kms.h |  2 ++
>   2 files changed, 35 insertions(+)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 90f44b4d3..424056252 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -7190,6 +7190,39 @@ void igt_reset_link_params(int drm_fd, igt_output_t *output)
>   	drmModeFreeConnector(temp);
>   }
>   
> +/**
> + * igt_set_link_params:
> + * @drm_fd: A drm file descriptor
> + * @output: Target output
> + *
> + * set link rate and lane count to given value, also installs exit handler
> + * to set link rate and lane count to auto on exit
> + */
> +void igt_set_link_params(int drm_fd, igt_output_t *output,
> +			   char *link_rate, char *lane_count)
> +{
> +	bool valid;
> +	drmModeConnector *temp;
> +
> +	valid = true;
> +	valid = valid && connector_attr_set_debugfs(drm_fd, output->config.connector,
> +						    "i915_dp_force_link_rate",
> +						    link_rate, "auto", true);
> +	valid = valid && connector_attr_set_debugfs(drm_fd, output->config.connector,
> +						    "i915_dp_force_lane_count",
> +						    lane_count, "auto", true);
> +	igt_assert_f(valid, "Unable to set attr or install exit handler\n");
> +	dump_connector_attrs();
> +	igt_install_exit_handler(reset_connectors_at_exit);
> +
> +	/*
> +	 * To allow callers to always use GetConnectorCurrent we need to force a
> +	 * redetection here.
> +	 */
> +	temp = drmModeGetConnector(drm_fd, output->config.connector->connector_id);
> +	drmModeFreeConnector(temp);
> +}
> +
>   /**
>    * igt_backlight_read:
>    * @result:	Pointer to store the result
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 8810123fb..f696847a4 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -1268,6 +1268,8 @@ bool igt_has_force_link_training_failure_debugfs(int drmfd, igt_output_t *output
>   int igt_get_dp_pending_lt_failures(int drm_fd, igt_output_t *output);
>   int igt_get_dp_pending_retrain(int drm_fd, igt_output_t *output);
>   void igt_reset_link_params(int drm_fd, igt_output_t *output);
> +void igt_set_link_params(int drm_fd, igt_output_t *output,
> +			   char *link_rate, char *lane_count);
>   int igt_backlight_read(int *result, const char *fname, igt_backlight_context_t *context);
>   int igt_backlight_write(int value, const char *fname, igt_backlight_context_t *context);
>   

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

* Re: [i-g-t,4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST
  2025-02-03  8:12 ` [PATCH i-g-t 4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST Kunal Joshi
  2025-02-04 14:01   ` Sharma, Swati2
@ 2025-02-11 12:39   ` Murthy, Arun R
  1 sibling, 0 replies; 13+ messages in thread
From: Murthy, Arun R @ 2025-02-11 12:39 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev

On 03-02-2025 13:42, Kunal Joshi wrote:
> Add new test subtests kms_dp_linktraining
> to validate both UHBR and non-UHBR link rates over SST
> and MST configurations.
> Add four new subtests (uhbr-sst, uhbr-mst, non-uhbr-sst, non-uhbr-mst)
> to check if the link rates match the expected UHBR or NON-UHBR capability
> and whether the outputs are MST or SST.
>
> v2: Add definition for UHBR_LINK_RATE
> v3: Add failure criteria (Jani Nikula)
>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---

Test cases looks good.
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>

Thanks and Regards,
Arun R Murthy
--------------------

>   tests/intel/kms_dp_linktraining.c | 372 ++++++++++++++++++++++++++++++
>   tests/meson.build                 |   4 +
>   2 files changed, 376 insertions(+)
>   create mode 100644 tests/intel/kms_dp_linktraining.c
>
> diff --git a/tests/intel/kms_dp_linktraining.c b/tests/intel/kms_dp_linktraining.c
> new file mode 100644
> index 000000000..6cedc47db
> --- /dev/null
> +++ b/tests/intel/kms_dp_linktraining.c
> @@ -0,0 +1,372 @@
> +// SPDX-License-Identifier: MIT
> +/**
> + * TEST: kms dp linktraining
> + * Category: Display
> + * Description: Test to validate link training on SST/MST with UHBR/NON_UHBR rates
> + * Driver requirement: i915, xe
> + * Functionality: linktraining
> + * Mega feature: General Display Features
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: uhbr-sst
> + * Description: Test we can drive UHBR rates over SST.
> + * Functionality: feature_discovery, uhbr, sst
> + * Test category: functionality test
> + *
> + * SUBTEST: uhbr-mst
> + * Description: Test we can drive UHBR rates over MST.
> + * Functionality: feature_discovery, uhbr, mst
> + * Test category: functionality test
> + *
> + * SUBTEST: non-uhbr-sst
> + * Description: Test we can drive non-UHBR rates over SST.
> + * Functionality: feature_discovery, sst
> + * Test category: functionality test
> + *
> + * SUBTEST: non-uhbr-mst
> + * Description: Test we can drive non-UHBR rates over MST.
> + * Functionality: feature_discovery, mst
> + * Test category: functionality test
> + */
> +
> +#include "igt.h"
> +#include "igt_kms.h"
> +#include "intel/kms_joiner_helper.h"
> +#include "intel/kms_mst_helper.h"
> +
> +/*
> + * DP Spec defines 10, 13.5, and 20 Gbps as UHBR.
> + * Anything below that is considered NON-UHBR.
> + */
> +#define UHBR_LINK_RATE	1000000
> +#define RETRAIN_COUNT	1
> +
> +typedef struct {
> +	int drm_fd;
> +	igt_display_t display;
> +	igt_output_t *output;
> +} data_t;
> +
> +/*
> + * check_condition_with_timeout - Polls check_fn until it returns 0
> + * or until 'timeout' seconds elapse.
> + */
> +static int check_condition_with_timeout(int drm_fd, igt_output_t *output,
> +		int (*check_fn)(int, igt_output_t *),
> +		double interval, double timeout)
> +{
> +	struct timespec start_time, current_time;
> +	double elapsed_time;
> +	int ret;
> +
> +	clock_gettime(CLOCK_MONOTONIC, &start_time);
> +
> +	while (true) {
> +		ret = check_fn(drm_fd, output);
> +		if (ret == 0)
> +			return 0;
> +
> +		clock_gettime(CLOCK_MONOTONIC, &current_time);
> +		elapsed_time = (current_time.tv_sec - start_time.tv_sec) +
> +			(current_time.tv_nsec - start_time.tv_nsec) / 1e9;
> +		if (elapsed_time >= timeout)
> +			return -1;
> +
> +		usleep((useconds_t)(interval * 1e6));
> +	}
> +}
> +
> +/*
> + * assert_link_status_good - Verifies link-status == GOOD
> + * for either a single SST output or all MST outputs in the topology.
> + */
> +static void assert_link_status_good(data_t *data, bool mst)
> +{
> +	igt_output_t *outputs[IGT_MAX_PIPES];
> +	uint32_t link_status_prop_id;
> +	uint64_t link_status_value;
> +	drmModePropertyPtr link_status_prop;
> +	int count = 0;
> +	int i;
> +
> +	if (mst) {
> +		igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd,
> +					&data->display, data->output,
> +					outputs, &count),
> +				"Unable to find MST outputs\n");
> +
> +		for (i = 0; i < count; i++) {
> +			kmstest_get_property(data->drm_fd,
> +					outputs[i]->config.connector->connector_id,
> +					DRM_MODE_OBJECT_CONNECTOR,
> +					"link-status",
> +					&link_status_prop_id,
> +					&link_status_value,
> +					&link_status_prop);
> +
> +			igt_assert_eq(link_status_value,
> +					DRM_MODE_LINK_STATUS_GOOD);
> +		}
> +	} else {
> +		kmstest_get_property(data->drm_fd,
> +				data->output->config.connector->connector_id,
> +				DRM_MODE_OBJECT_CONNECTOR,
> +				"link-status",
> +				&link_status_prop_id,
> +				&link_status_value,
> +				&link_status_prop);
> +
> +		igt_assert_eq(link_status_value, DRM_MODE_LINK_STATUS_GOOD);
> +	}
> +}
> +
> +/*
> + * setup_planes_fbs - Create solid-color FBs and attach them to the primary plane.
> + */
> +static void setup_planes_fbs(data_t *data, igt_output_t *outs[],
> +		int count, drmModeModeInfo *modes[],
> +		struct igt_fb fbs[], struct igt_plane *planes[])
> +{
> +	int i;
> +
> +	for (i = 0; i < count; i++) {
> +		modes[i] = igt_output_get_mode(outs[i]);
> +		igt_info("Mode %dx%d@%d on output %s\n",
> +				modes[i]->hdisplay, modes[i]->vdisplay,
> +				modes[i]->vrefresh, igt_output_name(outs[i]));
> +
> +		planes[i] = igt_output_get_plane_type(outs[i],
> +				DRM_PLANE_TYPE_PRIMARY);
> +
> +		igt_create_color_fb(data->drm_fd, modes[i]->hdisplay,
> +				modes[i]->vdisplay,
> +				DRM_FORMAT_XRGB8888,
> +				DRM_FORMAT_MOD_LINEAR,
> +				0.0, 1.0, 0.0, &fbs[i]);
> +
> +		igt_plane_set_fb(planes[i], &fbs[i]);
> +	}
> +}
> +
> +/*
> + * fit_modes_in_bw - Tries atomic TEST_ONLY commit; if it fails, overrides
> + * output modes to fit bandwidth.
> + */
> +static bool fit_modes_in_bw(data_t *data)
> +{
> +	int ret;
> +
> +	ret = igt_display_try_commit_atomic(&data->display,
> +			DRM_MODE_ATOMIC_TEST_ONLY |
> +			DRM_MODE_ATOMIC_ALLOW_MODESET,
> +			NULL);
> +	if (ret != 0) {
> +		bool found;
> +
> +		found = igt_override_all_active_output_modes_to_fit_bw(&data->display);
> +		igt_require_f(found, "No valid mode combo found for modeset\n");
> +	}
> +
> +	return true;
> +}
> +
> +static void do_modeset(data_t *data, bool mst)
> +{
> +	uint32_t master_pipes_mask = 0;
> +	uint32_t valid_pipes_mask = 0;
> +	uint32_t used_pipes_mask = 0;
> +	igt_output_t *outs[IGT_MAX_PIPES];
> +	drmModeModeInfo *modes[IGT_MAX_PIPES];
> +	struct igt_fb fbs[IGT_MAX_PIPES];
> +	struct igt_plane *planes[IGT_MAX_PIPES];
> +	int n_pipes = 0;
> +	int out_count = 0;
> +	int i;
> +
> +	for_each_pipe(&data->display, i) {
> +		valid_pipes_mask |= BIT(i);
> +		n_pipes++;
> +	}
> +
> +	if (mst) {
> +		igt_assert_f(igt_find_all_mst_output_in_topology(data->drm_fd,
> +					&data->display,
> +					data->output, outs,
> +					&out_count),
> +				"Unable to find MST outputs\n");
> +	} else {
> +		outs[0] = data->output;
> +		out_count = 1;
> +	}
> +
> +	igt_assert_f(out_count > 0, "Require at least one output\n");
> +
> +	igt_set_all_master_pipes_for_platform(&data->display, &master_pipes_mask);
> +
> +	igt_assert_f(igt_assign_pipes_for_outputs(data->drm_fd,
> +				outs,
> +				out_count,
> +				n_pipes,
> +				&used_pipes_mask,
> +				master_pipes_mask,
> +				valid_pipes_mask),
> +			"Unable to assign pipes for outputs\n");
> +
> +	setup_planes_fbs(data, outs, out_count, modes, fbs, planes);
> +	fit_modes_in_bw(data);
> +	igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +}
> +
> +/*
> + * run_link_rate_test - Main link training routine. Expects the MST vs. SST check
> + * to be done beforehand. Returns true if tested at the correct rate.
> + */
> +static bool run_link_rate_test(data_t *data, bool mst, bool uhbr)
> +{
> +	int max_link_rate;
> +	int max_lane_count;
> +	int current_link_rate;
> +	bool is_uhbr_output;
> +	char rate_str[32];
> +	char lane_str[32];
> +
> +	igt_display_reset(&data->display);
> +	igt_reset_link_params(data->drm_fd, data->output);
> +
> +	/* Retrain at default/driver parameters */
> +	igt_force_link_retrain(data->drm_fd, data->output, RETRAIN_COUNT);
> +	igt_assert_eq(check_condition_with_timeout(data->drm_fd, data->output,
> +		      igt_get_dp_pending_retrain, 1.0, 20.0), 0);
> +	assert_link_status_good(data, mst);
> +	do_modeset(data, mst);
> +
> +	/* FIXME : Driver may lie max link rate or max lane count */
> +	/* Read max_link_rate and max_lane_count */
> +	max_link_rate = igt_get_max_link_rate(data->drm_fd, data->output);
> +	max_lane_count = igt_get_max_lane_count(data->drm_fd, data->output);
> +
> +	/* Check sink supports uhbr or not */
> +	is_uhbr_output = (max_link_rate >= UHBR_LINK_RATE);
> +	if ((uhbr && !is_uhbr_output) || (!uhbr && is_uhbr_output)) {
> +		igt_info("Test expects %s, but output %s is %s.\n",
> +			 uhbr ? "UHBR" : "NON-UHBR",
> +			 data->output->name,
> +			 is_uhbr_output ? "UHBR" : "NON-UHBR");
> +		igt_info("----------------------------------------------------\n");
> +		return false;
> +	}
> +
> +	snprintf(rate_str, sizeof(rate_str), "%d", max_link_rate);
> +	snprintf(lane_str, sizeof(lane_str), "%d", max_lane_count);
> +	igt_info("Max link rate for %s is %s, lane count = %d\n",
> +		 data->output->name, rate_str, max_lane_count);
> +
> +	/* Force retrain at max link params */
> +	igt_set_link_params(data->drm_fd, data->output, rate_str, lane_str);
> +	igt_force_link_retrain(data->drm_fd, data->output, RETRAIN_COUNT);
> +	igt_assert_eq(check_condition_with_timeout(data->drm_fd, data->output,
> +		      igt_get_dp_pending_retrain, 1.0, 20.0), 0);
> +	assert_link_status_good(data, mst);
> +
> +	current_link_rate = igt_get_current_link_rate(data->drm_fd, data->output);
> +	igt_info("Current link rate is %d\n", current_link_rate);
> +	igt_assert_f(current_link_rate == max_link_rate,
> +		     "Link training did not succeed at max link rate.\n");
> +	igt_assert_f(is_uhbr_output ?
> +		     current_link_rate >= UHBR_LINK_RATE :
> +		     current_link_rate < UHBR_LINK_RATE,
> +		     is_uhbr_output ? "Link training didn't happen at uhbr rates" :
> +		     "Link training didn't happen at non-uhbr rates");
> +	igt_info("----------------------------------------------------\n");
> +	return true;
> +}
> +
> +/*
> + * test_link_rate - Iterates over connected DP outputs. Checks MST vs. SST
> + * early, then calls run_link_rate_test(). Returns true if it ran on at
> + * least one matching output.
> + */
> +static bool test_link_rate(data_t *data, bool mst, bool uhbr)
> +{
> +	bool ran_any_output = false, is_mst = false;
> +	igt_output_t *tmp_output;
> +
> +	igt_skip_on_f(!is_intel_device(data->drm_fd),
> +			"Test supported only on Intel platforms.\n");
> +
> +	for_each_connected_output(&data->display, tmp_output) {
> +		if (tmp_output->config.connector->connector_type !=
> +		    DRM_MODE_CONNECTOR_DisplayPort) {
> +			igt_info("Skipping non-DisplayPort output %s\n",
> +					tmp_output->name);
> +			igt_info("----------------------------------------------------\n");
> +			continue;
> +		}
> +
> +		/* Early skip if MST vs. SST does not match. */
> +		is_mst = igt_check_output_is_dp_mst(tmp_output);
> +		if (mst && !is_mst) {
> +			igt_info("Skipping %s: MST requested but it's SST.\n",
> +					tmp_output->name);
> +			igt_info("----------------------------------------------------\n");
> +			continue;
> +		} else if (!mst && is_mst) {
> +			igt_info("Skipping %s: SST requested but it's MST.\n",
> +					tmp_output->name);
> +			igt_info("----------------------------------------------------\n");
> +			continue;
> +		}
> +		data->output = tmp_output;
> +		igt_info("Running link training test for %s\n",
> +			 data->output->name);
> +		ran_any_output = ran_any_output | run_link_rate_test(data, mst, uhbr);
> +	}
> +	return ran_any_output;
> +}
> +
> +IGT_TEST_DESCRIPTION("Test to validate link training on SST/MST with "
> +		"UHBR/NON_UHBR rates");
> +
> +igt_main
> +{
> +	data_t data = {};
> +
> +	igt_fixture {
> +		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
> +		kmstest_set_vt_graphics_mode();
> +		igt_display_require(&data.display, data.drm_fd);
> +		igt_display_require_output(&data.display);
> +	}
> +
> +	igt_describe("Test we can drive UHBR rates over SST");
> +	igt_subtest("uhbr-sst") {
> +		igt_require_f(test_link_rate(&data, false, true),
> +			      "Didn't find any SST output with UHBR rates.\n");
> +	}
> +
> +	igt_describe("Test we can drive UHBR rates over MST");
> +	igt_subtest("uhbr-mst") {
> +		igt_require_f(test_link_rate(&data, true, true),
> +			      "Didn't find any MST output with UHBR rates.\n");
> +	}
> +
> +	igt_describe("Test we can drive NON-UHBR rates over SST");
> +	igt_subtest("non-uhbr-sst") {
> +		igt_require_f(test_link_rate(&data, false, false),
> +			      "Didn't find any SST output with NON-UHBR rates.\n");
> +	}
> +
> +	igt_describe("Test we can drive NON-UHBR rates over MST");
> +	igt_subtest("non-uhbr-mst") {
> +		igt_require_f(test_link_rate(&data, true, false),
> +			      "Didn't find any MST output with NON-UHBR rates.\n");
> +	}
> +
> +	igt_fixture {
> +		igt_reset_connectors();
> +		igt_display_fini(&data.display);
> +		close(data.drm_fd);
> +	}
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index b9dd162cc..926c5825f 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -246,6 +246,7 @@ intel_kms_progs = [
>   	'kms_ccs',
>   	'kms_cdclk',
>   	'kms_dirtyfb',
> +	'kms_dp_linktraining',
>           'kms_dp_linktrain_fallback',
>   	'kms_draw_crc',
>   	'kms_dsc',
> @@ -367,6 +368,9 @@ extra_sources = {
>   	'kms_chamelium_frames': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
>   	'kms_chamelium_hpd': [ join_paths ('chamelium', 'kms_chamelium_helper.c') ],
>   	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
> +	'kms_dp_linktraining': [
> +		join_paths ('intel', 'kms_joiner_helper.c'),
> +		join_paths ('intel', 'kms_mst_helper.c') ],
>           'kms_dp_linktrain_fallback': [ join_paths ('intel', 'kms_mst_helper.c') ],
>   	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
>   	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],

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

end of thread, other threads:[~2025-02-11 12:41 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-03  8:12 [PATCH i-g-t 0/5] add test to validate uhbr/non-uhbr over sst/mst Kunal Joshi
2025-02-03  8:12 ` [PATCH i-g-t 1/5] tests/intel/kms_joiner_helper: add helper for joiner-related functions Kunal Joshi
2025-02-03  8:12 ` [PATCH i-g-t 2/5] tests/intel/kms_mst_helper: add helper for MST-related functions Kunal Joshi
2025-02-10  7:16   ` Nautiyal, Ankit K
2025-02-03  8:12 ` [PATCH i-g-t 3/5] lib/igt_kms: add function to set link params Kunal Joshi
2025-02-11  9:53   ` [i-g-t,3/5] " Murthy, Arun R
2025-02-03  8:12 ` [PATCH i-g-t 4/5] tests/intel/kms_dp_linktraining: add tests for UHBR/NON-UHBR over SST/MST Kunal Joshi
2025-02-04 14:01   ` Sharma, Swati2
2025-02-11 12:39   ` [i-g-t,4/5] " Murthy, Arun R
2025-02-03  8:12 ` [PATCH i-g-t 5/5] HAX: DO NOT MERGE Kunal Joshi
2025-02-04  0:33 ` ✗ i915.CI.BAT: failure for add test to validate uhbr/non-uhbr over sst/mst (rev3) Patchwork
2025-02-04  1:12 ` ✗ Xe.CI.BAT: " Patchwork
2025-02-04  3:07 ` ✗ 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