Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test
@ 2022-10-28 16:42 Mark Yacoub
  2022-10-31 11:13 ` Petri Latvala
  0 siblings, 1 reply; 10+ messages in thread
From: Mark Yacoub @ 2022-10-28 16:42 UTC (permalink / raw)
  To: igt-dev
  Cc: robdclark, vsuley, petri.latvala, ihf, amstan, kalin, seanpaul,
	matthewtlam, khaled.almahallawy, markyacoub

[Why]
2 things that happen concurrently that we would like to test:
1. Test multiple plug/unplug of different monitors (as in different
   EDIDs) to the DUT in a short time span.
2. Test that the different EDIDs are understood well by the DUT through
   verifying the resolution after each plug and enable output.

[How]
1. Get EDID from list of EDIDs
2. Set the EDID
3. Plug and enable display
4. Check the resolution
5. Unplug and repeat.

TODO:
1. Add more EDIDs
2. Do the same for HDMI

Test Based on: [ChromeOS AutoTest display_EdidStress](https://chromium.googlesource.com/chromiumos/third_party/autotest/+/HEAD/server/site_tests/display_EdidStress/display_EdidStress.py)

Tested on: TGL with Cv3

Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
---
 lib/igt_chamelium.c                      | 10 +--
 lib/igt_chamelium.h                      | 22 +++++-
 lib/meson.build                          |  4 +-
 lib/monitor_edids/dp_edids.h             | 56 +++++++++++++++
 lib/monitor_edids/monitor_edids_helper.c | 92 ++++++++++++++++++++++++
 lib/monitor_edids/monitor_edids_helper.h | 33 +++++++++
 tests/chamelium/kms_chamelium.c          | 75 +++++++++++++++++++
 7 files changed, 278 insertions(+), 14 deletions(-)
 create mode 100644 lib/monitor_edids/dp_edids.h
 create mode 100644 lib/monitor_edids/monitor_edids_helper.c
 create mode 100644 lib/monitor_edids/monitor_edids_helper.h

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index d998a1f1..db3ca0d7 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -91,14 +91,6 @@
  */
 #define CHAMELIUM_HOTPLUG_DETECTION_DELAY 10
 
-struct chamelium_edid {
-	struct chamelium *chamelium;
-	struct edid *base;
-	struct edid *raw[CHAMELIUM_MAX_PORTS];
-	int ids[CHAMELIUM_MAX_PORTS];
-	struct igt_list_head link;
-};
-
 struct chamelium_port {
 	unsigned int type;
 	int id;
@@ -688,7 +680,7 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
 		va_end(va_args);
 	}
 	igt_assert_f(!chamelium->env.fault_occurred,
-		     "Chamelium RPC call failed: %s\n",
+		     "Chamelium RPC call[%s] failed: %s\n", method_name,
 		     chamelium->env.fault_string);
 
 	return res;
diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
index e1ee2b59..6da4ef66 100644
--- a/lib/igt_chamelium.h
+++ b/lib/igt_chamelium.h
@@ -33,6 +33,7 @@
 
 #include "igt_debugfs.h"
 #include "igt_kms.h"
+#include "igt_list.h"
 
 struct igt_fb;
 struct edid;
@@ -80,12 +81,11 @@ struct chamelium_infoframe {
 	uint8_t *payload;
 };
 
-struct chamelium_edid;
-
 /**
  * CHAMELIUM_MAX_PORTS: the maximum number of ports supported by igt_chamelium.
  *
- * For now, we have 1 VGA, 1 HDMI and 2 DisplayPort ports.
+ * On V2: 1 VGA, 1 HDMI and 2 DisplayPort ports.
+ * On V3: 2 HDMI and 2 DisplayPort ports.
  */
 #define CHAMELIUM_MAX_PORTS 4
 
@@ -105,6 +105,22 @@ extern bool igt_chamelium_allow_fsm_handling;
 
 #define CHAMELIUM_HOTPLUG_TIMEOUT 20 /* seconds */
 
+/**
+ * chamelium_edid:
+ * @chamelium: instance of the chamelium where the EDID will be applied
+ * @base: Unaltered EDID that would be used for all ports. Matches what you
+ * would get from a real monitor.
+ * @raw: EDID to be applied for each port.
+ * @ids: The ID received from Chamelium after it's created for specific ports.
+ */
+struct chamelium_edid {
+	struct chamelium *chamelium;
+	struct edid *base;
+	struct edid *raw[CHAMELIUM_MAX_PORTS];
+	int ids[CHAMELIUM_MAX_PORTS];
+	struct igt_list_head link;
+};
+
 void chamelium_deinit_rpc_only(struct chamelium *chamelium);
 struct chamelium *chamelium_init_rpc_only(void);
 struct chamelium *chamelium_init(int drm_fd, igt_display_t *display);
diff --git a/lib/meson.build b/lib/meson.build
index 1fa6d6ee..0e0fc8a1 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -164,8 +164,8 @@ endif
 
 if chamelium.found()
 	lib_deps += chamelium
-	lib_sources += 'igt_chamelium.c'
-	lib_sources += 'igt_chamelium_stream.c'
+	lib_sources += [ 'igt_chamelium.c', 'igt_chamelium_stream.c' ]
+	lib_sources += 'monitor_edids/monitor_edids_helper.c'
 endif
 
 if get_option('srcdir') != ''
diff --git a/lib/monitor_edids/dp_edids.h b/lib/monitor_edids/dp_edids.h
new file mode 100644
index 00000000..1217fedc
--- /dev/null
+++ b/lib/monitor_edids/dp_edids.h
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * List of real DP EDIDs from popular monitors.
+ * The current list (at the time of writing this comment) is based on the top
+ * monitors used on ChromeOS.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
+#define TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
+
+#include "monitor_edids_helper.h"
+
+// TODO: Add more EDIDs.
+struct monitor_edid DP_EDIDS[] = {
+	{ .name = "4K_DELL_UP3216Q_DP",
+	  .edid = "00ffffffffffff0010acf84050383230"
+		  "051a0104a5431c783aca95a6554ea126"
+		  "0f5054a54b808100b300714f8180d1c0"
+		  "0101010101017e4800e0a0381f404040"
+		  "3a00a11c2100001a000000ff00393143"
+		  "5937333538303238500a000000fc0044"
+		  "454c4c205532393137570a20000000fd"
+		  "00314c1d5e13010a2020202020200117"
+		  "02031df1501005040302071601061112"
+		  "1513141f2023091f0783010000023a80"
+		  "1871382d40582c2500a11c2100001e01"
+		  "1d8018711c1620582c2500a11c210000"
+		  "9e011d007251d01e206e285500a11c21"
+		  "00001e8c0ad08a20e02d10103e9600a1"
+		  "1c210000180000000000000000000000"
+		  "000000000000000000000000000000dd" },
+
+	{ .name = "DEL_16543_DELL_P2314T_DP",
+	  .edid = "00ffffffffffff0010ac9f404c4c3645"
+		  "10180104a5331d783ae595a656529d27"
+		  "105054a54b00714f8180a9c0d1c00101"
+		  "010101010101023a801871382d40582c"
+		  "4500fd1e1100001e000000ff00445746"
+		  "325834344645364c4c0a000000fc0044"
+		  "454c4c205032333134540a20000000fd"
+		  "00384c1e5311010a20202020202001bb"
+		  "02031cf14f9005040302071601061112"
+		  "1513141f2309070783010000023a8018"
+		  "71382d40582c4500fd1e1100001e011d"
+		  "8018711c1620582c2500fd1e1100009e"
+		  "011d007251d01e206e285500fd1e1100"
+		  "001e8c0ad08a20e02d10103e9600fd1e"
+		  "11000018000000000000000000000000"
+		  "0000000000000000000000000000003f" }
+};
+
+#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_ */
\ No newline at end of file
diff --git a/lib/monitor_edids/monitor_edids_helper.c b/lib/monitor_edids/monitor_edids_helper.c
new file mode 100644
index 00000000..acea1431
--- /dev/null
+++ b/lib/monitor_edids/monitor_edids_helper.c
@@ -0,0 +1,92 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * A helper library for parsing and making use of real EDID data from monitors
+ * and make them compatible with IGT and Chamelium.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#include "monitor_edids_helper.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#include "igt_core.h"
+
+static uint8_t convert_hex_char_to_byte(char c)
+{
+	if (c >= '0' && c <= '9')
+		return c - '0';
+	if (c >= 'A' && c <= 'F')
+		return c - 'A' + 10;
+	if (c >= 'a' && c <= 'f')
+		return c - 'a' + 10;
+
+	assert(0);
+	return 0;
+}
+
+static uint8_t *get_edid_bytes_from_hex_str(const char *edid_str)
+{
+	int i;
+
+	int edid_size = strlen(edid_str) / 2; /* each asci is a nibble. */
+	uint8_t *edid = (uint8_t *)malloc(edid_size);
+
+	for (i = 0; i < edid_size; i++) {
+		edid[i] = convert_hex_char_to_byte(edid_str[i * 2]) << 4 |
+			  convert_hex_char_to_byte(edid_str[i * 2 + 1]);
+	}
+
+	return edid;
+}
+
+const char *monitor_edid_get_name(const struct monitor_edid *edid)
+{
+	return edid->name;
+}
+
+struct chamelium_edid *
+get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
+				     const struct monitor_edid *edid)
+{
+	int i;
+	struct chamelium_edid *chamelium_edid;
+
+	uint8_t *base_edid = get_edid_bytes_from_hex_str(edid->edid);
+	assert(base_edid);
+
+	/*Print the full formatted EDID on debug. */
+	for (i = 0; i < strlen(edid->edid) / 2; i++) {
+		igt_debug("%02x ", base_edid[i]);
+		if (i % 16 == 15)
+			igt_debug("\n");
+	}
+
+	chamelium_edid = malloc(sizeof(struct chamelium_edid));
+	assert(chamelium_edid);
+
+	chamelium_edid->base = base_edid;
+	chamelium_edid->chamelium = chamelium;
+	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++) {
+		chamelium_edid->raw[i] = NULL;
+		chamelium_edid->ids[i] = 0;
+	}
+
+	return chamelium_edid;
+}
+
+void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid)
+{
+	int i;
+
+	free(edid->base);
+	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++)
+		free(edid->raw[i]);
+
+	free(edid);
+	edid = NULL;
+}
diff --git a/lib/monitor_edids/monitor_edids_helper.h b/lib/monitor_edids/monitor_edids_helper.h
new file mode 100644
index 00000000..46f85629
--- /dev/null
+++ b/lib/monitor_edids/monitor_edids_helper.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * A helper library for parsing and making use of real EDID data from monitors
+ * and make them compatible with IGT and Chamelium.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
+#define TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
+
+#include <stdint.h>
+
+#include "igt_chamelium.h"
+
+/* Max Length can be increased as needed, when new EDIDs are added. */
+#define EDID_NAME_MAX_LEN 25
+#define EDID_HEX_STR_MAX_LEN 512
+
+struct monitor_edid {
+	char name[EDID_NAME_MAX_LEN];
+	char edid[EDID_HEX_STR_MAX_LEN + 1];
+};
+
+const char *monitor_edid_get_name(const struct monitor_edid *edid);
+struct chamelium_edid *
+get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
+				     const struct monitor_edid *edid);
+void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid);
+
+#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_ */
\ No newline at end of file
diff --git a/tests/chamelium/kms_chamelium.c b/tests/chamelium/kms_chamelium.c
index 99cc23a1..6e77ba3c 100644
--- a/tests/chamelium/kms_chamelium.c
+++ b/tests/chamelium/kms_chamelium.c
@@ -30,11 +30,16 @@
 #include "igt_edid.h"
 #include "igt_eld.h"
 #include "igt_infoframe.h"
+#include "monitor_edids/dp_edids.h"
+#include "monitor_edids/monitor_edids_helper.h"
 
 #include <fcntl.h>
 #include <pthread.h>
 #include <string.h>
 #include <stdatomic.h>
+// #include <stdio.h>
+
+// struct chamelium_edid;
 
 enum test_modeset_mode {
 	TEST_MODESET_ON,
@@ -2541,6 +2546,71 @@ test_hpd_storm_disable(data_t *data, struct chamelium_port *port, int width)
 	igt_hpd_storm_reset(data->drm_fd);
 }
 
+static const char igt_edid_stress_resolution_desc[] =
+	"Stress test the DUT by testing multiple EDIDs, one right after the other,"
+	"and ensure their validity by check the real screen resolution vs the"
+	"advertised mode resultion.";
+static void edid_stress_resolution(data_t *data, struct chamelium_port *port,
+				   struct monitor_edid edids_list[],
+				   size_t edids_list_len)
+{
+	int i;
+	struct chamelium *chamelium = data->chamelium;
+	struct udev_monitor *mon = igt_watch_uevents();
+
+	for (i = 0; i < edids_list_len; ++i) {
+		struct chamelium_edid *chamelium_edid;
+		drmModeModeInfo mode;
+		struct igt_fb fb = { 0 };
+		igt_output_t *output;
+		enum pipe pipe;
+		bool is_video_stable;
+		int screen_res_w, screen_res_h;
+
+		struct monitor_edid *monitor_edid = &edids_list[i];
+		igt_info("Testing out the EDID for %s\n",
+			 monitor_edid_get_name(monitor_edid));
+
+		/* Getting and Setting the EDID on Chamelium. */
+		chamelium_edid = get_chameleon_edid_from_monitor_edid(
+			chamelium, monitor_edid);
+		chamelium_port_set_edid(data->chamelium, port, chamelium_edid);
+		free_chamelium_edid_from_monitor_edid(chamelium_edid);
+
+		igt_flush_uevents(mon);
+		chamelium_plug(chamelium, port);
+		wait_for_connector_after_hotplug(data, mon, port,
+						 DRM_MODE_CONNECTED);
+		igt_flush_uevents(mon);
+
+		/* Setting an output on the screen to turn it on. */
+		mode = get_mode_for_port(chamelium, port);
+		create_fb_for_mode(data, &fb, &mode);
+		output = get_output_for_port(data, port);
+		pipe = get_pipe_for_output(&data->display, output);
+		igt_output_set_pipe(output, pipe);
+		enable_output(data, port, output, &mode, &fb);
+
+		/* Capture the screen resolution and verify. */
+		is_video_stable = chamelium_port_wait_video_input_stable(
+			chamelium, port, 5);
+		igt_assert(is_video_stable);
+
+		chamelium_port_get_resolution(chamelium, port, &screen_res_w,
+					      &screen_res_h);
+		igt_assert(screen_res_w == fb.width);
+		igt_assert(screen_res_h == fb.height);
+
+		// Clean up
+		igt_remove_fb(data->drm_fd, &fb);
+		igt_modeset_disable_all_outputs(&data->display);
+		chamelium_unplug(chamelium, port);
+	}
+
+	chamelium_reset_state(&data->display, data->chamelium, port,
+			      data->ports, data->port_count);
+}
+
 #define for_each_port(p, port)            \
 	for (p = 0, port = data.ports[p]; \
 	     p < data.port_count;         \
@@ -2632,6 +2702,11 @@ igt_main
 			igt_custom_edid_type_read(&data, port, IGT_CUSTOM_EDID_ALT);
 		}
 
+		igt_describe(igt_edid_stress_resolution_desc);
+		connector_subtest("dp-edid-stress-resolution", DisplayPort)
+			edid_stress_resolution(&data, port, DP_EDIDS,
+					       ARRAY_SIZE(DP_EDIDS));
+
 		igt_describe(test_suspend_resume_hpd_desc);
 		connector_subtest("dp-hpd-after-suspend", DisplayPort)
 			test_suspend_resume_hpd(&data, port,
-- 
2.38.1.273.g43a17bfeac-goog

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

* Re: [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test
  2022-10-28 16:42 [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
@ 2022-10-31 11:13 ` Petri Latvala
  0 siblings, 0 replies; 10+ messages in thread
From: Petri Latvala @ 2022-10-31 11:13 UTC (permalink / raw)
  To: Mark Yacoub
  Cc: robdclark, vsuley, amstan, ihf, igt-dev, kalin, seanpaul,
	matthewtlam, markyacoub, khaled.almahallawy

On Fri, Oct 28, 2022 at 12:42:55PM -0400, Mark Yacoub wrote:
> [Why]
> 2 things that happen concurrently that we would like to test:
> 1. Test multiple plug/unplug of different monitors (as in different
>    EDIDs) to the DUT in a short time span.
> 2. Test that the different EDIDs are understood well by the DUT through
>    verifying the resolution after each plug and enable output.
> 
> [How]
> 1. Get EDID from list of EDIDs
> 2. Set the EDID
> 3. Plug and enable display
> 4. Check the resolution
> 5. Unplug and repeat.
> 
> TODO:
> 1. Add more EDIDs
> 2. Do the same for HDMI
> 
> Test Based on: [ChromeOS AutoTest display_EdidStress](https://chromium.googlesource.com/chromiumos/third_party/autotest/+/HEAD/server/site_tests/display_EdidStress/display_EdidStress.py)
> 
> Tested on: TGL with Cv3
> 
> Signed-off-by: Mark Yacoub <markyacoub@chromium.org>

Recap of offline discussions:

Main concerns of this kind of a test is the amount of runtime and disk
space used. With the log level we use in i915 CI, hotplugs can
generate a log of dmesg. Runtime seems to be alright, reported to be
around 8s per EDID.

Gitlab-pipeline reported some build warns that you have to fix. With
that done, this is

Acked-by: Petri Latvala <petri.latvala@intel.com>


> ---
>  lib/igt_chamelium.c                      | 10 +--
>  lib/igt_chamelium.h                      | 22 +++++-
>  lib/meson.build                          |  4 +-
>  lib/monitor_edids/dp_edids.h             | 56 +++++++++++++++
>  lib/monitor_edids/monitor_edids_helper.c | 92 ++++++++++++++++++++++++
>  lib/monitor_edids/monitor_edids_helper.h | 33 +++++++++
>  tests/chamelium/kms_chamelium.c          | 75 +++++++++++++++++++
>  7 files changed, 278 insertions(+), 14 deletions(-)
>  create mode 100644 lib/monitor_edids/dp_edids.h
>  create mode 100644 lib/monitor_edids/monitor_edids_helper.c
>  create mode 100644 lib/monitor_edids/monitor_edids_helper.h
> 
> diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
> index d998a1f1..db3ca0d7 100644
> --- a/lib/igt_chamelium.c
> +++ b/lib/igt_chamelium.c
> @@ -91,14 +91,6 @@
>   */
>  #define CHAMELIUM_HOTPLUG_DETECTION_DELAY 10
>  
> -struct chamelium_edid {
> -	struct chamelium *chamelium;
> -	struct edid *base;
> -	struct edid *raw[CHAMELIUM_MAX_PORTS];
> -	int ids[CHAMELIUM_MAX_PORTS];
> -	struct igt_list_head link;
> -};
> -
>  struct chamelium_port {
>  	unsigned int type;
>  	int id;
> @@ -688,7 +680,7 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
>  		va_end(va_args);
>  	}
>  	igt_assert_f(!chamelium->env.fault_occurred,
> -		     "Chamelium RPC call failed: %s\n",
> +		     "Chamelium RPC call[%s] failed: %s\n", method_name,
>  		     chamelium->env.fault_string);
>  
>  	return res;
> diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
> index e1ee2b59..6da4ef66 100644
> --- a/lib/igt_chamelium.h
> +++ b/lib/igt_chamelium.h
> @@ -33,6 +33,7 @@
>  
>  #include "igt_debugfs.h"
>  #include "igt_kms.h"
> +#include "igt_list.h"
>  
>  struct igt_fb;
>  struct edid;
> @@ -80,12 +81,11 @@ struct chamelium_infoframe {
>  	uint8_t *payload;
>  };
>  
> -struct chamelium_edid;
> -
>  /**
>   * CHAMELIUM_MAX_PORTS: the maximum number of ports supported by igt_chamelium.
>   *
> - * For now, we have 1 VGA, 1 HDMI and 2 DisplayPort ports.
> + * On V2: 1 VGA, 1 HDMI and 2 DisplayPort ports.
> + * On V3: 2 HDMI and 2 DisplayPort ports.
>   */
>  #define CHAMELIUM_MAX_PORTS 4
>  
> @@ -105,6 +105,22 @@ extern bool igt_chamelium_allow_fsm_handling;
>  
>  #define CHAMELIUM_HOTPLUG_TIMEOUT 20 /* seconds */
>  
> +/**
> + * chamelium_edid:
> + * @chamelium: instance of the chamelium where the EDID will be applied
> + * @base: Unaltered EDID that would be used for all ports. Matches what you
> + * would get from a real monitor.
> + * @raw: EDID to be applied for each port.
> + * @ids: The ID received from Chamelium after it's created for specific ports.
> + */
> +struct chamelium_edid {
> +	struct chamelium *chamelium;
> +	struct edid *base;
> +	struct edid *raw[CHAMELIUM_MAX_PORTS];
> +	int ids[CHAMELIUM_MAX_PORTS];
> +	struct igt_list_head link;
> +};
> +
>  void chamelium_deinit_rpc_only(struct chamelium *chamelium);
>  struct chamelium *chamelium_init_rpc_only(void);
>  struct chamelium *chamelium_init(int drm_fd, igt_display_t *display);
> diff --git a/lib/meson.build b/lib/meson.build
> index 1fa6d6ee..0e0fc8a1 100644
> --- a/lib/meson.build
> +++ b/lib/meson.build
> @@ -164,8 +164,8 @@ endif
>  
>  if chamelium.found()
>  	lib_deps += chamelium
> -	lib_sources += 'igt_chamelium.c'
> -	lib_sources += 'igt_chamelium_stream.c'
> +	lib_sources += [ 'igt_chamelium.c', 'igt_chamelium_stream.c' ]
> +	lib_sources += 'monitor_edids/monitor_edids_helper.c'
>  endif
>  
>  if get_option('srcdir') != ''
> diff --git a/lib/monitor_edids/dp_edids.h b/lib/monitor_edids/dp_edids.h
> new file mode 100644
> index 00000000..1217fedc
> --- /dev/null
> +++ b/lib/monitor_edids/dp_edids.h
> @@ -0,0 +1,56 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * List of real DP EDIDs from popular monitors.
> + * The current list (at the time of writing this comment) is based on the top
> + * monitors used on ChromeOS.
> + *
> + * Copyright 2022 Google LLC.
> + *
> + * Authors: Mark Yacoub <markyacoub@chromium.org>
> + */
> +
> +#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
> +#define TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
> +
> +#include "monitor_edids_helper.h"
> +
> +// TODO: Add more EDIDs.
> +struct monitor_edid DP_EDIDS[] = {
> +	{ .name = "4K_DELL_UP3216Q_DP",
> +	  .edid = "00ffffffffffff0010acf84050383230"
> +		  "051a0104a5431c783aca95a6554ea126"
> +		  "0f5054a54b808100b300714f8180d1c0"
> +		  "0101010101017e4800e0a0381f404040"
> +		  "3a00a11c2100001a000000ff00393143"
> +		  "5937333538303238500a000000fc0044"
> +		  "454c4c205532393137570a20000000fd"
> +		  "00314c1d5e13010a2020202020200117"
> +		  "02031df1501005040302071601061112"
> +		  "1513141f2023091f0783010000023a80"
> +		  "1871382d40582c2500a11c2100001e01"
> +		  "1d8018711c1620582c2500a11c210000"
> +		  "9e011d007251d01e206e285500a11c21"
> +		  "00001e8c0ad08a20e02d10103e9600a1"
> +		  "1c210000180000000000000000000000"
> +		  "000000000000000000000000000000dd" },
> +
> +	{ .name = "DEL_16543_DELL_P2314T_DP",
> +	  .edid = "00ffffffffffff0010ac9f404c4c3645"
> +		  "10180104a5331d783ae595a656529d27"
> +		  "105054a54b00714f8180a9c0d1c00101"
> +		  "010101010101023a801871382d40582c"
> +		  "4500fd1e1100001e000000ff00445746"
> +		  "325834344645364c4c0a000000fc0044"
> +		  "454c4c205032333134540a20000000fd"
> +		  "00384c1e5311010a20202020202001bb"
> +		  "02031cf14f9005040302071601061112"
> +		  "1513141f2309070783010000023a8018"
> +		  "71382d40582c4500fd1e1100001e011d"
> +		  "8018711c1620582c2500fd1e1100009e"
> +		  "011d007251d01e206e285500fd1e1100"
> +		  "001e8c0ad08a20e02d10103e9600fd1e"
> +		  "11000018000000000000000000000000"
> +		  "0000000000000000000000000000003f" }
> +};
> +
> +#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_ */
> \ No newline at end of file
> diff --git a/lib/monitor_edids/monitor_edids_helper.c b/lib/monitor_edids/monitor_edids_helper.c
> new file mode 100644
> index 00000000..acea1431
> --- /dev/null
> +++ b/lib/monitor_edids/monitor_edids_helper.c
> @@ -0,0 +1,92 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * A helper library for parsing and making use of real EDID data from monitors
> + * and make them compatible with IGT and Chamelium.
> + *
> + * Copyright 2022 Google LLC.
> + *
> + * Authors: Mark Yacoub <markyacoub@chromium.org>
> + */
> +
> +#include "monitor_edids_helper.h"
> +
> +#include <stdlib.h>
> +#include <string.h>
> +#include <assert.h>
> +
> +#include "igt_core.h"
> +
> +static uint8_t convert_hex_char_to_byte(char c)
> +{
> +	if (c >= '0' && c <= '9')
> +		return c - '0';
> +	if (c >= 'A' && c <= 'F')
> +		return c - 'A' + 10;
> +	if (c >= 'a' && c <= 'f')
> +		return c - 'a' + 10;
> +
> +	assert(0);
> +	return 0;
> +}
> +
> +static uint8_t *get_edid_bytes_from_hex_str(const char *edid_str)
> +{
> +	int i;
> +
> +	int edid_size = strlen(edid_str) / 2; /* each asci is a nibble. */
> +	uint8_t *edid = (uint8_t *)malloc(edid_size);
> +
> +	for (i = 0; i < edid_size; i++) {
> +		edid[i] = convert_hex_char_to_byte(edid_str[i * 2]) << 4 |
> +			  convert_hex_char_to_byte(edid_str[i * 2 + 1]);
> +	}
> +
> +	return edid;
> +}
> +
> +const char *monitor_edid_get_name(const struct monitor_edid *edid)
> +{
> +	return edid->name;
> +}
> +
> +struct chamelium_edid *
> +get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
> +				     const struct monitor_edid *edid)
> +{
> +	int i;
> +	struct chamelium_edid *chamelium_edid;
> +
> +	uint8_t *base_edid = get_edid_bytes_from_hex_str(edid->edid);
> +	assert(base_edid);
> +
> +	/*Print the full formatted EDID on debug. */
> +	for (i = 0; i < strlen(edid->edid) / 2; i++) {
> +		igt_debug("%02x ", base_edid[i]);
> +		if (i % 16 == 15)
> +			igt_debug("\n");
> +	}
> +
> +	chamelium_edid = malloc(sizeof(struct chamelium_edid));
> +	assert(chamelium_edid);
> +
> +	chamelium_edid->base = base_edid;
> +	chamelium_edid->chamelium = chamelium;
> +	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++) {
> +		chamelium_edid->raw[i] = NULL;
> +		chamelium_edid->ids[i] = 0;
> +	}
> +
> +	return chamelium_edid;
> +}
> +
> +void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid)
> +{
> +	int i;
> +
> +	free(edid->base);
> +	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++)
> +		free(edid->raw[i]);
> +
> +	free(edid);
> +	edid = NULL;
> +}
> diff --git a/lib/monitor_edids/monitor_edids_helper.h b/lib/monitor_edids/monitor_edids_helper.h
> new file mode 100644
> index 00000000..46f85629
> --- /dev/null
> +++ b/lib/monitor_edids/monitor_edids_helper.h
> @@ -0,0 +1,33 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * A helper library for parsing and making use of real EDID data from monitors
> + * and make them compatible with IGT and Chamelium.
> + *
> + * Copyright 2022 Google LLC.
> + *
> + * Authors: Mark Yacoub <markyacoub@chromium.org>
> + */
> +
> +#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
> +#define TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
> +
> +#include <stdint.h>
> +
> +#include "igt_chamelium.h"
> +
> +/* Max Length can be increased as needed, when new EDIDs are added. */
> +#define EDID_NAME_MAX_LEN 25
> +#define EDID_HEX_STR_MAX_LEN 512
> +
> +struct monitor_edid {
> +	char name[EDID_NAME_MAX_LEN];
> +	char edid[EDID_HEX_STR_MAX_LEN + 1];
> +};
> +
> +const char *monitor_edid_get_name(const struct monitor_edid *edid);
> +struct chamelium_edid *
> +get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
> +				     const struct monitor_edid *edid);
> +void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid);
> +
> +#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_ */
> \ No newline at end of file
> diff --git a/tests/chamelium/kms_chamelium.c b/tests/chamelium/kms_chamelium.c
> index 99cc23a1..6e77ba3c 100644
> --- a/tests/chamelium/kms_chamelium.c
> +++ b/tests/chamelium/kms_chamelium.c
> @@ -30,11 +30,16 @@
>  #include "igt_edid.h"
>  #include "igt_eld.h"
>  #include "igt_infoframe.h"
> +#include "monitor_edids/dp_edids.h"
> +#include "monitor_edids/monitor_edids_helper.h"
>  
>  #include <fcntl.h>
>  #include <pthread.h>
>  #include <string.h>
>  #include <stdatomic.h>
> +// #include <stdio.h>
> +
> +// struct chamelium_edid;
>  
>  enum test_modeset_mode {
>  	TEST_MODESET_ON,
> @@ -2541,6 +2546,71 @@ test_hpd_storm_disable(data_t *data, struct chamelium_port *port, int width)
>  	igt_hpd_storm_reset(data->drm_fd);
>  }
>  
> +static const char igt_edid_stress_resolution_desc[] =
> +	"Stress test the DUT by testing multiple EDIDs, one right after the other,"
> +	"and ensure their validity by check the real screen resolution vs the"
> +	"advertised mode resultion.";
> +static void edid_stress_resolution(data_t *data, struct chamelium_port *port,
> +				   struct monitor_edid edids_list[],
> +				   size_t edids_list_len)
> +{
> +	int i;
> +	struct chamelium *chamelium = data->chamelium;
> +	struct udev_monitor *mon = igt_watch_uevents();
> +
> +	for (i = 0; i < edids_list_len; ++i) {
> +		struct chamelium_edid *chamelium_edid;
> +		drmModeModeInfo mode;
> +		struct igt_fb fb = { 0 };
> +		igt_output_t *output;
> +		enum pipe pipe;
> +		bool is_video_stable;
> +		int screen_res_w, screen_res_h;
> +
> +		struct monitor_edid *monitor_edid = &edids_list[i];
> +		igt_info("Testing out the EDID for %s\n",
> +			 monitor_edid_get_name(monitor_edid));
> +
> +		/* Getting and Setting the EDID on Chamelium. */
> +		chamelium_edid = get_chameleon_edid_from_monitor_edid(
> +			chamelium, monitor_edid);
> +		chamelium_port_set_edid(data->chamelium, port, chamelium_edid);
> +		free_chamelium_edid_from_monitor_edid(chamelium_edid);
> +
> +		igt_flush_uevents(mon);
> +		chamelium_plug(chamelium, port);
> +		wait_for_connector_after_hotplug(data, mon, port,
> +						 DRM_MODE_CONNECTED);
> +		igt_flush_uevents(mon);
> +
> +		/* Setting an output on the screen to turn it on. */
> +		mode = get_mode_for_port(chamelium, port);
> +		create_fb_for_mode(data, &fb, &mode);
> +		output = get_output_for_port(data, port);
> +		pipe = get_pipe_for_output(&data->display, output);
> +		igt_output_set_pipe(output, pipe);
> +		enable_output(data, port, output, &mode, &fb);
> +
> +		/* Capture the screen resolution and verify. */
> +		is_video_stable = chamelium_port_wait_video_input_stable(
> +			chamelium, port, 5);
> +		igt_assert(is_video_stable);
> +
> +		chamelium_port_get_resolution(chamelium, port, &screen_res_w,
> +					      &screen_res_h);
> +		igt_assert(screen_res_w == fb.width);
> +		igt_assert(screen_res_h == fb.height);
> +
> +		// Clean up
> +		igt_remove_fb(data->drm_fd, &fb);
> +		igt_modeset_disable_all_outputs(&data->display);
> +		chamelium_unplug(chamelium, port);
> +	}
> +
> +	chamelium_reset_state(&data->display, data->chamelium, port,
> +			      data->ports, data->port_count);
> +}
> +
>  #define for_each_port(p, port)            \
>  	for (p = 0, port = data.ports[p]; \
>  	     p < data.port_count;         \
> @@ -2632,6 +2702,11 @@ igt_main
>  			igt_custom_edid_type_read(&data, port, IGT_CUSTOM_EDID_ALT);
>  		}
>  
> +		igt_describe(igt_edid_stress_resolution_desc);
> +		connector_subtest("dp-edid-stress-resolution", DisplayPort)
> +			edid_stress_resolution(&data, port, DP_EDIDS,
> +					       ARRAY_SIZE(DP_EDIDS));
> +
>  		igt_describe(test_suspend_resume_hpd_desc);
>  		connector_subtest("dp-hpd-after-suspend", DisplayPort)
>  			test_suspend_resume_hpd(&data, port,
> -- 
> 2.38.1.273.g43a17bfeac-goog
> 

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

* [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test
@ 2022-11-01 14:37 Mark Yacoub
  2022-11-01 15:16 ` [igt-dev] ✗ GitLab.Pipeline: warning for kms_chamelium: Add new EDID stress resolution test (rev3) Patchwork
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Mark Yacoub @ 2022-11-01 14:37 UTC (permalink / raw)
  To: igt-dev
  Cc: robdclark, vsuley, petri.latvala, ihf, amstan, kalin, seanpaul,
	matthewtlam, khaled.almahallawy, markyacoub

[Why]
2 things that happens concurrently that we would like to test:
1. Test multiple plug/unplug of different monitors (as in different
   EDIDs) to the DUT in a short time span.
2. Test that the different EDIDs are understood well by the DUT through
   verifying the resolution after each plug and enable output.

[How]
1. Get EDID from list of EDIDs
2. Set the EDID
3. Plug and enable display
4. Check the resolution
5. Unplug and repeat.

TODO:
1. Add more EDIDs
2. Do the same for HDMI

Test Based on: [ChromeOS AutoTest display_EdidStress](https://chromium.googlesource.com/chromiumos/third_party/autotest/+/HEAD/server/site_tests/display_EdidStress/display_EdidStress.py)

Tested on: TGL with Cv3

Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
---
 lib/igt_chamelium.c                      | 10 +--
 lib/igt_chamelium.h                      | 23 +++++-
 lib/meson.build                          |  4 +-
 lib/monitor_edids/dp_edids.h             | 56 +++++++++++++++
 lib/monitor_edids/monitor_edids_helper.c | 92 ++++++++++++++++++++++++
 lib/monitor_edids/monitor_edids_helper.h | 33 +++++++++
 tests/chamelium/kms_chamelium.c          | 75 +++++++++++++++++++
 7 files changed, 279 insertions(+), 14 deletions(-)
 create mode 100644 lib/monitor_edids/dp_edids.h
 create mode 100644 lib/monitor_edids/monitor_edids_helper.c
 create mode 100644 lib/monitor_edids/monitor_edids_helper.h

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index d998a1f1..db3ca0d7 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -91,14 +91,6 @@
  */
 #define CHAMELIUM_HOTPLUG_DETECTION_DELAY 10
 
-struct chamelium_edid {
-	struct chamelium *chamelium;
-	struct edid *base;
-	struct edid *raw[CHAMELIUM_MAX_PORTS];
-	int ids[CHAMELIUM_MAX_PORTS];
-	struct igt_list_head link;
-};
-
 struct chamelium_port {
 	unsigned int type;
 	int id;
@@ -688,7 +680,7 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
 		va_end(va_args);
 	}
 	igt_assert_f(!chamelium->env.fault_occurred,
-		     "Chamelium RPC call failed: %s\n",
+		     "Chamelium RPC call[%s] failed: %s\n", method_name,
 		     chamelium->env.fault_string);
 
 	return res;
diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
index e1ee2b59..51e27988 100644
--- a/lib/igt_chamelium.h
+++ b/lib/igt_chamelium.h
@@ -29,10 +29,12 @@
 #include "config.h"
 
 #include <stdbool.h>
+#include <stddef.h>
 #include <xf86drmMode.h>
 
 #include "igt_debugfs.h"
 #include "igt_kms.h"
+#include "igt_list.h"
 
 struct igt_fb;
 struct edid;
@@ -80,12 +82,11 @@ struct chamelium_infoframe {
 	uint8_t *payload;
 };
 
-struct chamelium_edid;
-
 /**
  * CHAMELIUM_MAX_PORTS: the maximum number of ports supported by igt_chamelium.
  *
- * For now, we have 1 VGA, 1 HDMI and 2 DisplayPort ports.
+ * On V2: 1 VGA, 1 HDMI and 2 DisplayPort ports.
+ * On V3: 2 HDMI and 2 DisplayPort ports.
  */
 #define CHAMELIUM_MAX_PORTS 4
 
@@ -105,6 +106,22 @@ extern bool igt_chamelium_allow_fsm_handling;
 
 #define CHAMELIUM_HOTPLUG_TIMEOUT 20 /* seconds */
 
+/**
+ * chamelium_edid:
+ * @chamelium: instance of the chamelium where the EDID will be applied
+ * @base: Unaltered EDID that would be used for all ports. Matches what you
+ * would get from a real monitor.
+ * @raw: EDID to be applied for each port.
+ * @ids: The ID received from Chamelium after it's created for specific ports.
+ */
+struct chamelium_edid {
+	struct chamelium *chamelium;
+	struct edid *base;
+	struct edid *raw[CHAMELIUM_MAX_PORTS];
+	int ids[CHAMELIUM_MAX_PORTS];
+	struct igt_list_head link;
+};
+
 void chamelium_deinit_rpc_only(struct chamelium *chamelium);
 struct chamelium *chamelium_init_rpc_only(void);
 struct chamelium *chamelium_init(int drm_fd, igt_display_t *display);
diff --git a/lib/meson.build b/lib/meson.build
index 1fa6d6ee..0e0fc8a1 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -164,8 +164,8 @@ endif
 
 if chamelium.found()
 	lib_deps += chamelium
-	lib_sources += 'igt_chamelium.c'
-	lib_sources += 'igt_chamelium_stream.c'
+	lib_sources += [ 'igt_chamelium.c', 'igt_chamelium_stream.c' ]
+	lib_sources += 'monitor_edids/monitor_edids_helper.c'
 endif
 
 if get_option('srcdir') != ''
diff --git a/lib/monitor_edids/dp_edids.h b/lib/monitor_edids/dp_edids.h
new file mode 100644
index 00000000..1217fedc
--- /dev/null
+++ b/lib/monitor_edids/dp_edids.h
@@ -0,0 +1,56 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * List of real DP EDIDs from popular monitors.
+ * The current list (at the time of writing this comment) is based on the top
+ * monitors used on ChromeOS.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
+#define TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
+
+#include "monitor_edids_helper.h"
+
+// TODO: Add more EDIDs.
+struct monitor_edid DP_EDIDS[] = {
+	{ .name = "4K_DELL_UP3216Q_DP",
+	  .edid = "00ffffffffffff0010acf84050383230"
+		  "051a0104a5431c783aca95a6554ea126"
+		  "0f5054a54b808100b300714f8180d1c0"
+		  "0101010101017e4800e0a0381f404040"
+		  "3a00a11c2100001a000000ff00393143"
+		  "5937333538303238500a000000fc0044"
+		  "454c4c205532393137570a20000000fd"
+		  "00314c1d5e13010a2020202020200117"
+		  "02031df1501005040302071601061112"
+		  "1513141f2023091f0783010000023a80"
+		  "1871382d40582c2500a11c2100001e01"
+		  "1d8018711c1620582c2500a11c210000"
+		  "9e011d007251d01e206e285500a11c21"
+		  "00001e8c0ad08a20e02d10103e9600a1"
+		  "1c210000180000000000000000000000"
+		  "000000000000000000000000000000dd" },
+
+	{ .name = "DEL_16543_DELL_P2314T_DP",
+	  .edid = "00ffffffffffff0010ac9f404c4c3645"
+		  "10180104a5331d783ae595a656529d27"
+		  "105054a54b00714f8180a9c0d1c00101"
+		  "010101010101023a801871382d40582c"
+		  "4500fd1e1100001e000000ff00445746"
+		  "325834344645364c4c0a000000fc0044"
+		  "454c4c205032333134540a20000000fd"
+		  "00384c1e5311010a20202020202001bb"
+		  "02031cf14f9005040302071601061112"
+		  "1513141f2309070783010000023a8018"
+		  "71382d40582c4500fd1e1100001e011d"
+		  "8018711c1620582c2500fd1e1100009e"
+		  "011d007251d01e206e285500fd1e1100"
+		  "001e8c0ad08a20e02d10103e9600fd1e"
+		  "11000018000000000000000000000000"
+		  "0000000000000000000000000000003f" }
+};
+
+#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_ */
\ No newline at end of file
diff --git a/lib/monitor_edids/monitor_edids_helper.c b/lib/monitor_edids/monitor_edids_helper.c
new file mode 100644
index 00000000..6f23a9e6
--- /dev/null
+++ b/lib/monitor_edids/monitor_edids_helper.c
@@ -0,0 +1,92 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * A helper library for parsing and making use of real EDID data from monitors
+ * and make them compatible with IGT and Chamelium.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#include "monitor_edids_helper.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#include "igt_core.h"
+
+static uint8_t convert_hex_char_to_byte(char c)
+{
+	if (c >= '0' && c <= '9')
+		return c - '0';
+	if (c >= 'A' && c <= 'F')
+		return c - 'A' + 10;
+	if (c >= 'a' && c <= 'f')
+		return c - 'a' + 10;
+
+	assert(0);
+	return 0;
+}
+
+static uint8_t *get_edid_bytes_from_hex_str(const char *edid_str)
+{
+	int i;
+
+	int edid_size = strlen(edid_str) / 2; /* each asci is a nibble. */
+	uint8_t *edid = (uint8_t *)malloc(edid_size);
+
+	for (i = 0; i < edid_size; i++) {
+		edid[i] = convert_hex_char_to_byte(edid_str[i * 2]) << 4 |
+			  convert_hex_char_to_byte(edid_str[i * 2 + 1]);
+	}
+
+	return edid;
+}
+
+const char *monitor_edid_get_name(const struct monitor_edid *edid)
+{
+	return edid->name;
+}
+
+struct chamelium_edid *
+get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
+				     const struct monitor_edid *edid)
+{
+	int i;
+	struct chamelium_edid *chamelium_edid;
+
+	uint8_t *base_edid = get_edid_bytes_from_hex_str(edid->edid);
+	assert(base_edid);
+
+	/*Print the full formatted EDID on debug. */
+	for (i = 0; i < strlen(edid->edid) / 2; i++) {
+		igt_debug("%02x ", base_edid[i]);
+		if (i % 16 == 15)
+			igt_debug("\n");
+	}
+
+	chamelium_edid = malloc(sizeof(struct chamelium_edid));
+	assert(chamelium_edid);
+
+	chamelium_edid->base = (struct edid *)base_edid;
+	chamelium_edid->chamelium = chamelium;
+	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++) {
+		chamelium_edid->raw[i] = NULL;
+		chamelium_edid->ids[i] = 0;
+	}
+
+	return chamelium_edid;
+}
+
+void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid)
+{
+	int i;
+
+	free(edid->base);
+	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++)
+		free(edid->raw[i]);
+
+	free(edid);
+	edid = NULL;
+}
diff --git a/lib/monitor_edids/monitor_edids_helper.h b/lib/monitor_edids/monitor_edids_helper.h
new file mode 100644
index 00000000..46f85629
--- /dev/null
+++ b/lib/monitor_edids/monitor_edids_helper.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * A helper library for parsing and making use of real EDID data from monitors
+ * and make them compatible with IGT and Chamelium.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
+#define TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
+
+#include <stdint.h>
+
+#include "igt_chamelium.h"
+
+/* Max Length can be increased as needed, when new EDIDs are added. */
+#define EDID_NAME_MAX_LEN 25
+#define EDID_HEX_STR_MAX_LEN 512
+
+struct monitor_edid {
+	char name[EDID_NAME_MAX_LEN];
+	char edid[EDID_HEX_STR_MAX_LEN + 1];
+};
+
+const char *monitor_edid_get_name(const struct monitor_edid *edid);
+struct chamelium_edid *
+get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
+				     const struct monitor_edid *edid);
+void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid);
+
+#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_ */
\ No newline at end of file
diff --git a/tests/chamelium/kms_chamelium.c b/tests/chamelium/kms_chamelium.c
index 99cc23a1..6e77ba3c 100644
--- a/tests/chamelium/kms_chamelium.c
+++ b/tests/chamelium/kms_chamelium.c
@@ -30,11 +30,16 @@
 #include "igt_edid.h"
 #include "igt_eld.h"
 #include "igt_infoframe.h"
+#include "monitor_edids/dp_edids.h"
+#include "monitor_edids/monitor_edids_helper.h"
 
 #include <fcntl.h>
 #include <pthread.h>
 #include <string.h>
 #include <stdatomic.h>
+// #include <stdio.h>
+
+// struct chamelium_edid;
 
 enum test_modeset_mode {
 	TEST_MODESET_ON,
@@ -2541,6 +2546,71 @@ test_hpd_storm_disable(data_t *data, struct chamelium_port *port, int width)
 	igt_hpd_storm_reset(data->drm_fd);
 }
 
+static const char igt_edid_stress_resolution_desc[] =
+	"Stress test the DUT by testing multiple EDIDs, one right after the other,"
+	"and ensure their validity by check the real screen resolution vs the"
+	"advertised mode resultion.";
+static void edid_stress_resolution(data_t *data, struct chamelium_port *port,
+				   struct monitor_edid edids_list[],
+				   size_t edids_list_len)
+{
+	int i;
+	struct chamelium *chamelium = data->chamelium;
+	struct udev_monitor *mon = igt_watch_uevents();
+
+	for (i = 0; i < edids_list_len; ++i) {
+		struct chamelium_edid *chamelium_edid;
+		drmModeModeInfo mode;
+		struct igt_fb fb = { 0 };
+		igt_output_t *output;
+		enum pipe pipe;
+		bool is_video_stable;
+		int screen_res_w, screen_res_h;
+
+		struct monitor_edid *monitor_edid = &edids_list[i];
+		igt_info("Testing out the EDID for %s\n",
+			 monitor_edid_get_name(monitor_edid));
+
+		/* Getting and Setting the EDID on Chamelium. */
+		chamelium_edid = get_chameleon_edid_from_monitor_edid(
+			chamelium, monitor_edid);
+		chamelium_port_set_edid(data->chamelium, port, chamelium_edid);
+		free_chamelium_edid_from_monitor_edid(chamelium_edid);
+
+		igt_flush_uevents(mon);
+		chamelium_plug(chamelium, port);
+		wait_for_connector_after_hotplug(data, mon, port,
+						 DRM_MODE_CONNECTED);
+		igt_flush_uevents(mon);
+
+		/* Setting an output on the screen to turn it on. */
+		mode = get_mode_for_port(chamelium, port);
+		create_fb_for_mode(data, &fb, &mode);
+		output = get_output_for_port(data, port);
+		pipe = get_pipe_for_output(&data->display, output);
+		igt_output_set_pipe(output, pipe);
+		enable_output(data, port, output, &mode, &fb);
+
+		/* Capture the screen resolution and verify. */
+		is_video_stable = chamelium_port_wait_video_input_stable(
+			chamelium, port, 5);
+		igt_assert(is_video_stable);
+
+		chamelium_port_get_resolution(chamelium, port, &screen_res_w,
+					      &screen_res_h);
+		igt_assert(screen_res_w == fb.width);
+		igt_assert(screen_res_h == fb.height);
+
+		// Clean up
+		igt_remove_fb(data->drm_fd, &fb);
+		igt_modeset_disable_all_outputs(&data->display);
+		chamelium_unplug(chamelium, port);
+	}
+
+	chamelium_reset_state(&data->display, data->chamelium, port,
+			      data->ports, data->port_count);
+}
+
 #define for_each_port(p, port)            \
 	for (p = 0, port = data.ports[p]; \
 	     p < data.port_count;         \
@@ -2632,6 +2702,11 @@ igt_main
 			igt_custom_edid_type_read(&data, port, IGT_CUSTOM_EDID_ALT);
 		}
 
+		igt_describe(igt_edid_stress_resolution_desc);
+		connector_subtest("dp-edid-stress-resolution", DisplayPort)
+			edid_stress_resolution(&data, port, DP_EDIDS,
+					       ARRAY_SIZE(DP_EDIDS));
+
 		igt_describe(test_suspend_resume_hpd_desc);
 		connector_subtest("dp-hpd-after-suspend", DisplayPort)
 			test_suspend_resume_hpd(&data, port,
-- 
2.38.1.273.g43a17bfeac-goog

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

* [igt-dev] ✗ GitLab.Pipeline: warning for kms_chamelium: Add new EDID stress resolution test (rev3)
  2022-11-01 14:37 [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
@ 2022-11-01 15:16 ` Patchwork
  2022-11-01 15:37 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-11-01 15:16 UTC (permalink / raw)
  To: Mark Yacoub; +Cc: igt-dev

== Series Details ==

Series: kms_chamelium: Add new EDID stress resolution test (rev3)
URL   : https://patchwork.freedesktop.org/series/110263/
State : warning

== Summary ==

Pipeline status: FAILED.

see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/726485 for the overview.

build:tests-fedora has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/30814994):
  		  "1513141f2309070783010000023a8018"
  		  "71382d40582c4500fd1e1100001e011d"
  		  "8018711c1620582c2500fd1e1100009e"
  		  "011d007251d01e206e285500fd1e1100"
  		  "001e8c0ad08a20e02d10103e9600fd1e"
  		  "11000018000000000000000000000000"
  		  "0000000000000000000000000000003f" }
  };
  " does not begin with "struct/union [NAME] {"
  
  
  FAILED: meson-install 
  /usr/bin/meson install --no-rebuild
  ninja: build stopped: subcommand failed.
  section_end:1667315304:step_script
  section_start:1667315304:cleanup_file_variables
  Cleaning up project directory and file based variables
  section_end:1667315305:cleanup_file_variables
  ERROR: Job failed: exit code 1
  

build:tests-fedora-oldest-meson has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/30814996):
  		  "02031cf14f9005040302071601061112"
  		  "1513141f2309070783010000023a8018"
  		  "71382d40582c4500fd1e1100001e011d"
  		  "8018711c1620582c2500fd1e1100009e"
  		  "011d007251d01e206e285500fd1e1100"
  		  "001e8c0ad08a20e02d10103e9600fd1e"
  		  "11000018000000000000000000000000"
  		  "0000000000000000000000000000003f" }
  };
  " does not begin with "struct/union [NAME] {"
  
  FAILED: meson-igt-gpu-tools-doc 
  /usr/bin/python3 /usr/local/bin/meson --internal commandrunner /builds/gfx-ci/igt-ci-tags /builds/gfx-ci/igt-ci-tags/build docs/reference/igt-gpu-tools /usr/bin/python3 /usr/local/bin/meson /usr/bin/python3 /usr/local/bin/meson --internal gtkdoc --sourcedir=/builds/gfx-ci/igt-ci-tags --builddir=/builds/gfx-ci/igt-ci-tags/build --subdir=docs/reference/igt-gpu-tools --headerdirs=/builds/gfx-ci/igt-ci-tags/lib@@/builds/gfx-ci/igt-ci-tags/build/lib --mainfile=igt-gpu-tools-docs.xml --modulename=igt-gpu-tools --mode=auto --scanargs=--rebuild-sections --mkdbargs=--output-format=xml --content-files=/builds/gfx-ci/igt-ci-tags/docs/reference/igt-gpu-tools/igt_test_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_amdgpu_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_amdgpu_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_core_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_core_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_debugfs_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_debugfs_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_drm_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_drm_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_gem_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_gem_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_gen3_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_gen3_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_gen7_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_gen7_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_i915_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_i915_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_kms_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_kms_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_meta_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_meta_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_perf_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_perf_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_pm_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_pm_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_prime_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_prime_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_sw_sync_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_sw_sync_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_testdisplay_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_testdisplay_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_tools_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_tools_description.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_vgem_programs.xml@@/builds/gfx-ci/igt-ci-tags/build/docs/reference/igt-gpu-tools/igt_test_programs_vgem_description.xml --ignore-headers=gen6_render.h@@gen7_media.h@@gen7_render.h@@gen8_media.h@@gen8_render.h@@gpgpu_fill.h@@i830_reg.h@@i915_3d.h@@i915_pciids.h@@i915_reg.h@@igt_edid_template.h@@intel_reg.h@@debug.h@@instdone.h@@media_fill.h@@rendercopy.h@@media_spin.h@@media_fill_gen9.h@@gen9_render.h@@version.h '--cflags=-I./include/drm-uapi -I../include/drm-uapi -I./include/linux-uapi -I../include/linux-uapi -I./lib -I../lib -I./lib/stubs/syscalls -I../lib/stubs/syscalls -I./. -I../. -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/libdrm/nouveau -I/usr/include/valgrind' '--ldflags=-L/builds/gfx-ci/igt-ci-tags/build/lib -Wl,-rpath,/builds/gfx-ci/igt-ci-tags/build/lib -ligt -lcairo -lglib-2.0 -ldrm -ldw -lelf -lkmod -lprocps -ludev -lm -lpciaccess -lpixman-1 -lrt -lz -ldrm_intel -ldrm_nouveau -ldrm_amdgpu -lunwind -lgsl -lgslcblas -lasound -lxmlrpc -lxmlrpc_util -lxmlrpc_client' --cc=cc --ld=cc
  ninja: build stopped: subcommand failed.
  section_end:1667315304:step_script
  section_start:1667315304:cleanup_file_variables
  Cleaning up project directory and file based variables
  section_end:1667315305:cleanup_file_variables
  ERROR: Job failed: exit code 1

== Logs ==

For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/726485

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

* [igt-dev] ✓ Fi.CI.BAT: success for kms_chamelium: Add new EDID stress resolution test (rev3)
  2022-11-01 14:37 [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
  2022-11-01 15:16 ` [igt-dev] ✗ GitLab.Pipeline: warning for kms_chamelium: Add new EDID stress resolution test (rev3) Patchwork
@ 2022-11-01 15:37 ` Patchwork
  2022-11-01 16:30 ` [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-11-01 15:37 UTC (permalink / raw)
  To: Mark Yacoub; +Cc: igt-dev

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

== Series Details ==

Series: kms_chamelium: Add new EDID stress resolution test (rev3)
URL   : https://patchwork.freedesktop.org/series/110263/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12326 -> IGTPW_8025
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (40 -> 39)
------------------------------

  Missing    (1): bat-rpls-1 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_render_tiled_blits@basic:
    - fi-apl-guc:         [PASS][1] -> [INCOMPLETE][2] ([i915#7056])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/fi-apl-guc/igt@gem_render_tiled_blits@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/fi-apl-guc/igt@gem_render_tiled_blits@basic.html

  * igt@i915_pm_rpm@basic-rte:
    - fi-icl-u2:          [PASS][3] -> [DMESG-WARN][4] ([i915#4890])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/fi-icl-u2/igt@i915_pm_rpm@basic-rte.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/fi-icl-u2/igt@i915_pm_rpm@basic-rte.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-hsw-g3258:       NOTRUN -> [SKIP][5] ([fdo#109271] / [fdo#111827])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/fi-hsw-g3258/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@runner@aborted:
    - fi-icl-u2:          NOTRUN -> [FAIL][6] ([i915#4312])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/fi-icl-u2/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - {bat-adlm-1}:       [DMESG-WARN][7] ([i915#2867]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/bat-adlm-1/igt@gem_exec_suspend@basic-s3@smem.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/bat-adlm-1/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-g3258:       [INCOMPLETE][9] ([i915#3303] / [i915#4785]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@migrate:
    - {bat-adlp-6}:       [INCOMPLETE][11] ([i915#7348]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/bat-adlp-6/igt@i915_selftest@live@migrate.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/bat-adlp-6/igt@i915_selftest@live@migrate.html

  * igt@i915_selftest@live@reset:
    - {bat-rpls-2}:       [DMESG-FAIL][13] ([i915#4983] / [i915#5828]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/bat-rpls-2/igt@i915_selftest@live@reset.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/bat-rpls-2/igt@i915_selftest@live@reset.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions:
    - fi-bsw-kefka:       [FAIL][15] ([i915#6298]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4890]: https://gitlab.freedesktop.org/drm/intel/issues/4890
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
  [i915#5828]: https://gitlab.freedesktop.org/drm/intel/issues/5828
  [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
  [i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434
  [i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7056]: https://gitlab.freedesktop.org/drm/intel/issues/7056
  [i915#7348]: https://gitlab.freedesktop.org/drm/intel/issues/7348


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7034 -> IGTPW_8025

  CI-20190529: 20190529
  CI_DRM_12326: 498be7d039e5a471043aac63fc0b39144fc5e35f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8025: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/index.html
  IGT_7034: 48a376644fb444ab93efbcc6a79dfb88b53e1535 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

+igt@kms_chamelium@dp-edid-stress-resolution

== Logs ==

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

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

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

* [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test
  2022-11-01 14:37 [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
  2022-11-01 15:16 ` [igt-dev] ✗ GitLab.Pipeline: warning for kms_chamelium: Add new EDID stress resolution test (rev3) Patchwork
  2022-11-01 15:37 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2022-11-01 16:30 ` Mark Yacoub
  2022-11-01 23:04   ` Dixit, Ashutosh
  2022-11-01 17:41 ` [igt-dev] ✓ Fi.CI.BAT: success for kms_chamelium: Add new EDID stress resolution test (rev4) Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Mark Yacoub @ 2022-11-01 16:30 UTC (permalink / raw)
  To: igt-dev
  Cc: robdclark, vsuley, petri.latvala, ihf, amstan, kalin, seanpaul,
	matthewtlam, khaled.almahallawy, markyacoub

[Why]
2 things that happens concurrently that we would like to test:
1. Test multiple plug/unplug of different monitors (as in different
   EDIDs) to the DUT in a short time span.
2. Test that the different EDIDs are understood well by the DUT through
   verifying the resolution after each plug and enable output.

[How]
1. Get EDID from list of EDIDs
2. Set the EDID
3. Plug and enable display
4. Check the resolution
5. Unplug and repeat.

TODO:
1. Add more EDIDs
2. Do the same for HDMI

Test Based on: [ChromeOS AutoTest display_EdidStress](https://chromium.googlesource.com/chromiumos/third_party/autotest/+/HEAD/server/site_tests/display_EdidStress/display_EdidStress.py)

Tested on: TGL with Cv3

Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
---
 lib/igt_chamelium.c                      | 10 +--
 lib/igt_chamelium.h                      | 23 +++++-
 lib/meson.build                          |  4 +-
 lib/monitor_edids/dp_edids.h             | 54 ++++++++++++++
 lib/monitor_edids/monitor_edids_helper.c | 92 ++++++++++++++++++++++++
 lib/monitor_edids/monitor_edids_helper.h | 33 +++++++++
 tests/chamelium/kms_chamelium.c          | 75 +++++++++++++++++++
 7 files changed, 277 insertions(+), 14 deletions(-)
 create mode 100644 lib/monitor_edids/dp_edids.h
 create mode 100644 lib/monitor_edids/monitor_edids_helper.c
 create mode 100644 lib/monitor_edids/monitor_edids_helper.h

diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
index d998a1f1..db3ca0d7 100644
--- a/lib/igt_chamelium.c
+++ b/lib/igt_chamelium.c
@@ -91,14 +91,6 @@
  */
 #define CHAMELIUM_HOTPLUG_DETECTION_DELAY 10
 
-struct chamelium_edid {
-	struct chamelium *chamelium;
-	struct edid *base;
-	struct edid *raw[CHAMELIUM_MAX_PORTS];
-	int ids[CHAMELIUM_MAX_PORTS];
-	struct igt_list_head link;
-};
-
 struct chamelium_port {
 	unsigned int type;
 	int id;
@@ -688,7 +680,7 @@ static xmlrpc_value *chamelium_rpc(struct chamelium *chamelium,
 		va_end(va_args);
 	}
 	igt_assert_f(!chamelium->env.fault_occurred,
-		     "Chamelium RPC call failed: %s\n",
+		     "Chamelium RPC call[%s] failed: %s\n", method_name,
 		     chamelium->env.fault_string);
 
 	return res;
diff --git a/lib/igt_chamelium.h b/lib/igt_chamelium.h
index e1ee2b59..51e27988 100644
--- a/lib/igt_chamelium.h
+++ b/lib/igt_chamelium.h
@@ -29,10 +29,12 @@
 #include "config.h"
 
 #include <stdbool.h>
+#include <stddef.h>
 #include <xf86drmMode.h>
 
 #include "igt_debugfs.h"
 #include "igt_kms.h"
+#include "igt_list.h"
 
 struct igt_fb;
 struct edid;
@@ -80,12 +82,11 @@ struct chamelium_infoframe {
 	uint8_t *payload;
 };
 
-struct chamelium_edid;
-
 /**
  * CHAMELIUM_MAX_PORTS: the maximum number of ports supported by igt_chamelium.
  *
- * For now, we have 1 VGA, 1 HDMI and 2 DisplayPort ports.
+ * On V2: 1 VGA, 1 HDMI and 2 DisplayPort ports.
+ * On V3: 2 HDMI and 2 DisplayPort ports.
  */
 #define CHAMELIUM_MAX_PORTS 4
 
@@ -105,6 +106,22 @@ extern bool igt_chamelium_allow_fsm_handling;
 
 #define CHAMELIUM_HOTPLUG_TIMEOUT 20 /* seconds */
 
+/**
+ * chamelium_edid:
+ * @chamelium: instance of the chamelium where the EDID will be applied
+ * @base: Unaltered EDID that would be used for all ports. Matches what you
+ * would get from a real monitor.
+ * @raw: EDID to be applied for each port.
+ * @ids: The ID received from Chamelium after it's created for specific ports.
+ */
+struct chamelium_edid {
+	struct chamelium *chamelium;
+	struct edid *base;
+	struct edid *raw[CHAMELIUM_MAX_PORTS];
+	int ids[CHAMELIUM_MAX_PORTS];
+	struct igt_list_head link;
+};
+
 void chamelium_deinit_rpc_only(struct chamelium *chamelium);
 struct chamelium *chamelium_init_rpc_only(void);
 struct chamelium *chamelium_init(int drm_fd, igt_display_t *display);
diff --git a/lib/meson.build b/lib/meson.build
index 1fa6d6ee..0e0fc8a1 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -164,8 +164,8 @@ endif
 
 if chamelium.found()
 	lib_deps += chamelium
-	lib_sources += 'igt_chamelium.c'
-	lib_sources += 'igt_chamelium_stream.c'
+	lib_sources += [ 'igt_chamelium.c', 'igt_chamelium_stream.c' ]
+	lib_sources += 'monitor_edids/monitor_edids_helper.c'
 endif
 
 if get_option('srcdir') != ''
diff --git a/lib/monitor_edids/dp_edids.h b/lib/monitor_edids/dp_edids.h
new file mode 100644
index 00000000..394f3317
--- /dev/null
+++ b/lib/monitor_edids/dp_edids.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * List of real DP EDIDs from popular monitors.
+ * The current list (at the time of writing this comment) is based on the top
+ * monitors used on ChromeOS.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
+#define TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_
+
+#include "monitor_edids_helper.h"
+
+// TODO: Add more EDIDs.
+monitor_edid DP_EDIDS[] = { { .name = "4K_DELL_UP3216Q_DP",
+			      .edid = "00ffffffffffff0010acf84050383230"
+				      "051a0104a5431c783aca95a6554ea126"
+				      "0f5054a54b808100b300714f8180d1c0"
+				      "0101010101017e4800e0a0381f404040"
+				      "3a00a11c2100001a000000ff00393143"
+				      "5937333538303238500a000000fc0044"
+				      "454c4c205532393137570a20000000fd"
+				      "00314c1d5e13010a2020202020200117"
+				      "02031df1501005040302071601061112"
+				      "1513141f2023091f0783010000023a80"
+				      "1871382d40582c2500a11c2100001e01"
+				      "1d8018711c1620582c2500a11c210000"
+				      "9e011d007251d01e206e285500a11c21"
+				      "00001e8c0ad08a20e02d10103e9600a1"
+				      "1c210000180000000000000000000000"
+				      "000000000000000000000000000000dd" },
+
+			    { .name = "DEL_16543_DELL_P2314T_DP",
+			      .edid = "00ffffffffffff0010ac9f404c4c3645"
+				      "10180104a5331d783ae595a656529d27"
+				      "105054a54b00714f8180a9c0d1c00101"
+				      "010101010101023a801871382d40582c"
+				      "4500fd1e1100001e000000ff00445746"
+				      "325834344645364c4c0a000000fc0044"
+				      "454c4c205032333134540a20000000fd"
+				      "00384c1e5311010a20202020202001bb"
+				      "02031cf14f9005040302071601061112"
+				      "1513141f2309070783010000023a8018"
+				      "71382d40582c4500fd1e1100001e011d"
+				      "8018711c1620582c2500fd1e1100009e"
+				      "011d007251d01e206e285500fd1e1100"
+				      "001e8c0ad08a20e02d10103e9600fd1e"
+				      "11000018000000000000000000000000"
+				      "0000000000000000000000000000003f" } };
+
+#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_DP_EDIDS_H_ */
\ No newline at end of file
diff --git a/lib/monitor_edids/monitor_edids_helper.c b/lib/monitor_edids/monitor_edids_helper.c
new file mode 100644
index 00000000..41f199bd
--- /dev/null
+++ b/lib/monitor_edids/monitor_edids_helper.c
@@ -0,0 +1,92 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * A helper library for parsing and making use of real EDID data from monitors
+ * and make them compatible with IGT and Chamelium.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#include "monitor_edids_helper.h"
+
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+
+#include "igt_core.h"
+
+static uint8_t convert_hex_char_to_byte(char c)
+{
+	if (c >= '0' && c <= '9')
+		return c - '0';
+	if (c >= 'A' && c <= 'F')
+		return c - 'A' + 10;
+	if (c >= 'a' && c <= 'f')
+		return c - 'a' + 10;
+
+	assert(0);
+	return 0;
+}
+
+static uint8_t *get_edid_bytes_from_hex_str(const char *edid_str)
+{
+	int i;
+
+	int edid_size = strlen(edid_str) / 2; /* each asci is a nibble. */
+	uint8_t *edid = (uint8_t *)malloc(edid_size);
+
+	for (i = 0; i < edid_size; i++) {
+		edid[i] = convert_hex_char_to_byte(edid_str[i * 2]) << 4 |
+			  convert_hex_char_to_byte(edid_str[i * 2 + 1]);
+	}
+
+	return edid;
+}
+
+const char *monitor_edid_get_name(const monitor_edid *edid)
+{
+	return edid->name;
+}
+
+struct chamelium_edid *
+get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
+				     const monitor_edid *edid)
+{
+	int i;
+	struct chamelium_edid *chamelium_edid;
+
+	uint8_t *base_edid = get_edid_bytes_from_hex_str(edid->edid);
+	assert(base_edid);
+
+	/*Print the full formatted EDID on debug. */
+	for (i = 0; i < strlen(edid->edid) / 2; i++) {
+		igt_debug("%02x ", base_edid[i]);
+		if (i % 16 == 15)
+			igt_debug("\n");
+	}
+
+	chamelium_edid = malloc(sizeof(struct chamelium_edid));
+	assert(chamelium_edid);
+
+	chamelium_edid->base = (struct edid *)base_edid;
+	chamelium_edid->chamelium = chamelium;
+	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++) {
+		chamelium_edid->raw[i] = NULL;
+		chamelium_edid->ids[i] = 0;
+	}
+
+	return chamelium_edid;
+}
+
+void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid)
+{
+	int i;
+
+	free(edid->base);
+	for (i = 0; i < CHAMELIUM_MAX_PORTS; i++)
+		free(edid->raw[i]);
+
+	free(edid);
+	edid = NULL;
+}
diff --git a/lib/monitor_edids/monitor_edids_helper.h b/lib/monitor_edids/monitor_edids_helper.h
new file mode 100644
index 00000000..d3e3fc65
--- /dev/null
+++ b/lib/monitor_edids/monitor_edids_helper.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * A helper library for parsing and making use of real EDID data from monitors
+ * and make them compatible with IGT and Chamelium.
+ *
+ * Copyright 2022 Google LLC.
+ *
+ * Authors: Mark Yacoub <markyacoub@chromium.org>
+ */
+
+#ifndef TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
+#define TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_
+
+#include <stdint.h>
+
+#include "igt_chamelium.h"
+
+/* Max Length can be increased as needed, when new EDIDs are added. */
+#define EDID_NAME_MAX_LEN 25
+#define EDID_HEX_STR_MAX_LEN 512
+
+typedef struct monitor_edid {
+	char name[EDID_NAME_MAX_LEN];
+	char edid[EDID_HEX_STR_MAX_LEN + 1];
+} monitor_edid;
+
+const char *monitor_edid_get_name(const monitor_edid *edid);
+struct chamelium_edid *
+get_chameleon_edid_from_monitor_edid(struct chamelium *chamelium,
+				     const monitor_edid *edid);
+void free_chamelium_edid_from_monitor_edid(struct chamelium_edid *edid);
+
+#endif /* TESTS_CHAMELIUM_MONITOR_EDIDS_MONITOR_EDIDS_HELPER_H_ */
\ No newline at end of file
diff --git a/tests/chamelium/kms_chamelium.c b/tests/chamelium/kms_chamelium.c
index 99cc23a1..c824e67e 100644
--- a/tests/chamelium/kms_chamelium.c
+++ b/tests/chamelium/kms_chamelium.c
@@ -30,11 +30,16 @@
 #include "igt_edid.h"
 #include "igt_eld.h"
 #include "igt_infoframe.h"
+#include "monitor_edids/dp_edids.h"
+#include "monitor_edids/monitor_edids_helper.h"
 
 #include <fcntl.h>
 #include <pthread.h>
 #include <string.h>
 #include <stdatomic.h>
+// #include <stdio.h>
+
+// struct chamelium_edid;
 
 enum test_modeset_mode {
 	TEST_MODESET_ON,
@@ -2541,6 +2546,71 @@ test_hpd_storm_disable(data_t *data, struct chamelium_port *port, int width)
 	igt_hpd_storm_reset(data->drm_fd);
 }
 
+static const char igt_edid_stress_resolution_desc[] =
+	"Stress test the DUT by testing multiple EDIDs, one right after the other,"
+	"and ensure their validity by check the real screen resolution vs the"
+	"advertised mode resultion.";
+static void edid_stress_resolution(data_t *data, struct chamelium_port *port,
+				   monitor_edid edids_list[],
+				   size_t edids_list_len)
+{
+	int i;
+	struct chamelium *chamelium = data->chamelium;
+	struct udev_monitor *mon = igt_watch_uevents();
+
+	for (i = 0; i < edids_list_len; ++i) {
+		struct chamelium_edid *chamelium_edid;
+		drmModeModeInfo mode;
+		struct igt_fb fb = { 0 };
+		igt_output_t *output;
+		enum pipe pipe;
+		bool is_video_stable;
+		int screen_res_w, screen_res_h;
+
+		monitor_edid *monitor_edid = &edids_list[i];
+		igt_info("Testing out the EDID for %s\n",
+			 monitor_edid_get_name(monitor_edid));
+
+		/* Getting and Setting the EDID on Chamelium. */
+		chamelium_edid = get_chameleon_edid_from_monitor_edid(
+			chamelium, monitor_edid);
+		chamelium_port_set_edid(data->chamelium, port, chamelium_edid);
+		free_chamelium_edid_from_monitor_edid(chamelium_edid);
+
+		igt_flush_uevents(mon);
+		chamelium_plug(chamelium, port);
+		wait_for_connector_after_hotplug(data, mon, port,
+						 DRM_MODE_CONNECTED);
+		igt_flush_uevents(mon);
+
+		/* Setting an output on the screen to turn it on. */
+		mode = get_mode_for_port(chamelium, port);
+		create_fb_for_mode(data, &fb, &mode);
+		output = get_output_for_port(data, port);
+		pipe = get_pipe_for_output(&data->display, output);
+		igt_output_set_pipe(output, pipe);
+		enable_output(data, port, output, &mode, &fb);
+
+		/* Capture the screen resolution and verify. */
+		is_video_stable = chamelium_port_wait_video_input_stable(
+			chamelium, port, 5);
+		igt_assert(is_video_stable);
+
+		chamelium_port_get_resolution(chamelium, port, &screen_res_w,
+					      &screen_res_h);
+		igt_assert(screen_res_w == fb.width);
+		igt_assert(screen_res_h == fb.height);
+
+		// Clean up
+		igt_remove_fb(data->drm_fd, &fb);
+		igt_modeset_disable_all_outputs(&data->display);
+		chamelium_unplug(chamelium, port);
+	}
+
+	chamelium_reset_state(&data->display, data->chamelium, port,
+			      data->ports, data->port_count);
+}
+
 #define for_each_port(p, port)            \
 	for (p = 0, port = data.ports[p]; \
 	     p < data.port_count;         \
@@ -2632,6 +2702,11 @@ igt_main
 			igt_custom_edid_type_read(&data, port, IGT_CUSTOM_EDID_ALT);
 		}
 
+		igt_describe(igt_edid_stress_resolution_desc);
+		connector_subtest("dp-edid-stress-resolution", DisplayPort)
+			edid_stress_resolution(&data, port, DP_EDIDS,
+					       ARRAY_SIZE(DP_EDIDS));
+
 		igt_describe(test_suspend_resume_hpd_desc);
 		connector_subtest("dp-hpd-after-suspend", DisplayPort)
 			test_suspend_resume_hpd(&data, port,
-- 
2.38.1.273.g43a17bfeac-goog

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

* [igt-dev] ✓ Fi.CI.BAT: success for kms_chamelium: Add new EDID stress resolution test (rev4)
  2022-11-01 14:37 [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
                   ` (2 preceding siblings ...)
  2022-11-01 16:30 ` [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
@ 2022-11-01 17:41 ` Patchwork
  2022-11-01 20:19 ` [igt-dev] ✗ Fi.CI.IGT: failure for kms_chamelium: Add new EDID stress resolution test (rev3) Patchwork
  2022-11-01 20:38 ` [igt-dev] ✓ Fi.CI.IGT: success for kms_chamelium: Add new EDID stress resolution test (rev4) Patchwork
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-11-01 17:41 UTC (permalink / raw)
  To: Mark Yacoub; +Cc: igt-dev

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

== Series Details ==

Series: kms_chamelium: Add new EDID stress resolution test (rev4)
URL   : https://patchwork.freedesktop.org/series/110263/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12326 -> IGTPW_8027
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (40 -> 39)
------------------------------

  Missing    (1): bat-rpls-1 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_gttfill@basic:
    - fi-pnv-d510:        [PASS][1] -> [FAIL][2] ([i915#7229])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/fi-pnv-d510/igt@gem_exec_gttfill@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/fi-pnv-d510/igt@gem_exec_gttfill@basic.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - bat-adlp-4:         [PASS][3] -> [DMESG-WARN][4] ([i915#7077])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/bat-adlp-4/igt@i915_pm_rpm@basic-pci-d3-state.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/bat-adlp-4/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-hsw-g3258:       NOTRUN -> [SKIP][5] ([fdo#109271] / [fdo#111827])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/fi-hsw-g3258/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@runner@aborted:
    - bat-adlp-4:         NOTRUN -> [FAIL][6] ([i915#4312])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/bat-adlp-4/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s0@smem:
    - {bat-adlm-1}:       [DMESG-WARN][7] ([i915#2867]) -> [PASS][8] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/bat-adlm-1/igt@gem_exec_suspend@basic-s0@smem.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/bat-adlm-1/igt@gem_exec_suspend@basic-s0@smem.html

  * igt@i915_pm_rpm@module-reload:
    - {bat-rpls-2}:       [WARN][9] ([i915#7346]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/bat-rpls-2/igt@i915_pm_rpm@module-reload.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/bat-rpls-2/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-g3258:       [INCOMPLETE][11] ([i915#3303] / [i915#4785]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@migrate:
    - {bat-adlp-6}:       [INCOMPLETE][13] ([i915#7348]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/bat-adlp-6/igt@i915_selftest@live@migrate.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/bat-adlp-6/igt@i915_selftest@live@migrate.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions:
    - fi-bsw-kefka:       [FAIL][15] ([i915#6298]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
  [i915#5537]: https://gitlab.freedesktop.org/drm/intel/issues/5537
  [i915#6257]: https://gitlab.freedesktop.org/drm/intel/issues/6257
  [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
  [i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
  [i915#7229]: https://gitlab.freedesktop.org/drm/intel/issues/7229
  [i915#7346]: https://gitlab.freedesktop.org/drm/intel/issues/7346
  [i915#7348]: https://gitlab.freedesktop.org/drm/intel/issues/7348


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7034 -> IGTPW_8027

  CI-20190529: 20190529
  CI_DRM_12326: 498be7d039e5a471043aac63fc0b39144fc5e35f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8027: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/index.html
  IGT_7034: 48a376644fb444ab93efbcc6a79dfb88b53e1535 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

+igt@kms_chamelium@dp-edid-stress-resolution

== Logs ==

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

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for kms_chamelium: Add new EDID stress resolution test (rev3)
  2022-11-01 14:37 [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
                   ` (3 preceding siblings ...)
  2022-11-01 17:41 ` [igt-dev] ✓ Fi.CI.BAT: success for kms_chamelium: Add new EDID stress resolution test (rev4) Patchwork
@ 2022-11-01 20:19 ` Patchwork
  2022-11-01 20:38 ` [igt-dev] ✓ Fi.CI.IGT: success for kms_chamelium: Add new EDID stress resolution test (rev4) Patchwork
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-11-01 20:19 UTC (permalink / raw)
  To: Mark Yacoub; +Cc: igt-dev

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

== Series Details ==

Series: kms_chamelium: Add new EDID stress resolution test (rev3)
URL   : https://patchwork.freedesktop.org/series/110263/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12326_full -> IGTPW_8025_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_8025_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_8025_full, please notify your bug team 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_8025/index.html

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

  Missing    (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_whisper@basic-queues-forked:
    - shard-iclb:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb5/igt@gem_exec_whisper@basic-queues-forked.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb1/igt@gem_exec_whisper@basic-queues-forked.html

  * igt@kms_cursor_crc@cursor-offscreen-128x128@pipe-d-edp-1:
    - shard-tglb:         [PASS][3] -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb7/igt@kms_cursor_crc@cursor-offscreen-128x128@pipe-d-edp-1.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb8/igt@kms_cursor_crc@cursor-offscreen-128x128@pipe-d-edp-1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12326_full and IGTPW_8025_full:

### New IGT tests (1) ###

  * igt@kms_chamelium@dp-edid-stress-resolution:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][5] ([fdo#111827])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@feature_discovery@chamelium.html
    - shard-iclb:         NOTRUN -> [SKIP][6] ([fdo#111827])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb8/igt@feature_discovery@chamelium.html

  * igt@gem_ctx_persistence@legacy-engines-persistence:
    - shard-snb:          NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#1099]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-snb4/igt@gem_ctx_persistence@legacy-engines-persistence.html

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-iclb:         [PASS][8] -> [SKIP][9] ([i915#4525])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb2/igt@gem_exec_balancer@parallel-bb-first.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb3/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-iclb:         NOTRUN -> [SKIP][10] ([i915#4525])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb7/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_fair@basic-pace@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][11] ([i915#2842])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@gem_exec_fair@basic-pace@vcs1.html

  * igt@gem_exec_params@no-bsd:
    - shard-iclb:         NOTRUN -> [SKIP][12] ([fdo#109283])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@gem_exec_params@no-bsd.html
    - shard-tglb:         NOTRUN -> [SKIP][13] ([fdo#109283])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb5/igt@gem_exec_params@no-bsd.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][14] -> [SKIP][15] ([i915#2190])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb3/igt@gem_huc_copy@huc-copy.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-tglb:         NOTRUN -> [SKIP][16] ([i915#4613])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-glk:          NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#4613])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk5/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][18] ([i915#4613])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-apl:          NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#4613])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl8/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-apl:          NOTRUN -> [INCOMPLETE][20] ([i915#7248])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl3/igt@gem_pwrite@basic-exhaustion.html
    - shard-snb:          NOTRUN -> [WARN][21] ([i915#2658])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-snb6/igt@gem_pwrite@basic-exhaustion.html
    - shard-tglb:         NOTRUN -> [WARN][22] ([i915#2658])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb8/igt@gem_pwrite@basic-exhaustion.html
    - shard-glk:          NOTRUN -> [WARN][23] ([i915#2658])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk9/igt@gem_pwrite@basic-exhaustion.html
    - shard-iclb:         NOTRUN -> [WARN][24] ([i915#2658])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@reject-modify-context-protection-off-3:
    - shard-tglb:         NOTRUN -> [SKIP][25] ([i915#4270])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb7/igt@gem_pxp@reject-modify-context-protection-off-3.html
    - shard-iclb:         NOTRUN -> [SKIP][26] ([i915#4270])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb8/igt@gem_pxp@reject-modify-context-protection-off-3.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-tglb:         NOTRUN -> [SKIP][27] ([i915#3297])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@gem_userptr_blits@dmabuf-unsync.html
    - shard-iclb:         NOTRUN -> [SKIP][28] ([i915#3297])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb8/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_vm_create@invalid-create:
    - shard-snb:          NOTRUN -> [SKIP][29] ([fdo#109271]) +93 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-snb4/igt@gem_vm_create@invalid-create.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-tglb:         NOTRUN -> [SKIP][30] ([i915#2527] / [i915#2856]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@gen9_exec_parse@bb-oversize.html
    - shard-iclb:         NOTRUN -> [SKIP][31] ([i915#2856]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb1/igt@gen9_exec_parse@bb-oversize.html

  * igt@i915_pm_rpm@dpms-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][32] ([fdo#111644] / [i915#1397] / [i915#2411])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb5/igt@i915_pm_rpm@dpms-non-lpsp.html
    - shard-iclb:         NOTRUN -> [SKIP][33] ([fdo#110892])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb5/igt@i915_pm_rpm@dpms-non-lpsp.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#5286]) +2 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb8/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-iclb:         NOTRUN -> [SKIP][35] ([i915#5286]) +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#111614])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
    - shard-iclb:         NOTRUN -> [SKIP][37] ([fdo#110725] / [fdo#111614])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb1/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-tglb:         NOTRUN -> [SKIP][38] ([fdo#111615])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_ccs@pipe-a-bad-rotation-90-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][39] ([i915#3689] / [i915#6095])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb6/igt@kms_ccs@pipe-a-bad-rotation-90-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615] / [i915#3689])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][41] ([fdo#109271]) +49 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl1/igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][42] ([fdo#109278] / [i915#3886]) +3 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb7/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([i915#3689]) +4 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb1/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][44] ([i915#3689] / [i915#3886]) +2 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb1/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][45] ([i915#6095]) +1 similar issue
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@kms_ccs@pipe-c-bad-pixel-format-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#3886]) +3 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl7/igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][47] ([fdo#109271] / [i915#3886]) +3 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk8/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_chamelium@dp-audio:
    - shard-iclb:         NOTRUN -> [SKIP][48] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb5/igt@kms_chamelium@dp-audio.html

  * {igt@kms_chamelium@dp-edid-stress-resolution} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][49] ([fdo#109284])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb3/igt@kms_chamelium@dp-edid-stress-resolution.html
    - shard-tglb:         NOTRUN -> [SKIP][50] ([fdo#109284])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb2/igt@kms_chamelium@dp-edid-stress-resolution.html

  * igt@kms_chamelium@dp-hpd-after-suspend:
    - shard-snb:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-snb7/igt@kms_chamelium@dp-hpd-after-suspend.html
    - shard-apl:          NOTRUN -> [SKIP][52] ([fdo#109271] / [fdo#111827]) +1 similar issue
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl2/igt@kms_chamelium@dp-hpd-after-suspend.html
    - shard-tglb:         NOTRUN -> [SKIP][53] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@kms_chamelium@dp-hpd-after-suspend.html

  * igt@kms_color_chamelium@ctm-limited-range:
    - shard-glk:          NOTRUN -> [SKIP][54] ([fdo#109271] / [fdo#111827]) +1 similar issue
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk8/igt@kms_color_chamelium@ctm-limited-range.html

  * igt@kms_content_protection@legacy:
    - shard-tglb:         NOTRUN -> [SKIP][55] ([i915#7118])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@kms_content_protection@legacy.html
    - shard-iclb:         NOTRUN -> [SKIP][56] ([i915#7118])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb8/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@legacy@pipe-a-dp-1:
    - shard-apl:          NOTRUN -> [INCOMPLETE][57] ([i915#1319] / [i915#7121] / [i915#7173])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl6/igt@kms_content_protection@legacy@pipe-a-dp-1.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglb:         NOTRUN -> [SKIP][58] ([fdo#109274])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb6/igt@kms_display_modes@extended-mode-basic.html
    - shard-iclb:         NOTRUN -> [SKIP][59] ([fdo#109274])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb6/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-apl:          [PASS][60] -> [FAIL][61] ([i915#4767])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl3/igt@kms_fbcon_fbt@fbc-suspend.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl6/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1:
    - shard-apl:          [PASS][62] -> [FAIL][63] ([i915#79])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl8/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
    - shard-apl:          NOTRUN -> [DMESG-WARN][64] ([i915#180])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl3/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][65] ([i915#2672]) +2 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][66] ([i915#3555]) +2 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][67] ([i915#2587] / [i915#2672]) +5 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html
    - shard-tglb:         NOTRUN -> [SKIP][68] ([i915#2587] / [i915#2672]) +1 similar issue
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode:
    - shard-iclb:         [PASS][69] -> [SKIP][70] ([i915#3555])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
    - shard-tglb:         NOTRUN -> [SKIP][71] ([i915#6497]) +2 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][72] ([fdo#109280] / [fdo#111825]) +10 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt:
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109280]) +10 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-tglb:         NOTRUN -> [SKIP][74] ([i915#3555]) +1 similar issue
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb2/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1:
    - shard-tglb:         NOTRUN -> [SKIP][75] ([i915#5235]) +3 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         NOTRUN -> [SKIP][76] ([i915#5235]) +5 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-edp-1.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [SKIP][77] ([fdo#109271]) +44 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-c-hdmi-a-1.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
    - shard-apl:          NOTRUN -> [SKIP][78] ([fdo#109271] / [i915#658])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
    - shard-tglb:         NOTRUN -> [SKIP][79] ([i915#2920])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb8/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
    - shard-glk:          NOTRUN -> [SKIP][80] ([fdo#109271] / [i915#658])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk1/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
    - shard-iclb:         NOTRUN -> [SKIP][81] ([fdo#111068] / [i915#658])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-p010@pipe-b-edp-1:
    - shard-iclb:         NOTRUN -> [FAIL][82] ([i915#5939]) +2 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_psr2_su@page_flip-p010@pipe-b-edp-1.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-iclb:         NOTRUN -> [SKIP][83] ([fdo#109642] / [fdo#111068] / [i915#658])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb5/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@psr2_cursor_mmap_gtt:
    - shard-tglb:         NOTRUN -> [FAIL][84] ([i915#132] / [i915#3467])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb5/igt@kms_psr@psr2_cursor_mmap_gtt.html
    - shard-iclb:         NOTRUN -> [SKIP][85] ([fdo#109441])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb5/igt@kms_psr@psr2_cursor_mmap_gtt.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-tglb:         NOTRUN -> [SKIP][86] ([fdo#111615] / [i915#5289])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_vblank@pipe-d-query-forked-busy:
    - shard-iclb:         NOTRUN -> [SKIP][87] ([fdo#109278]) +5 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb3/igt@kms_vblank@pipe-d-query-forked-busy.html

  * igt@perf@per-context-mode-unprivileged:
    - shard-tglb:         NOTRUN -> [SKIP][88] ([fdo#109289]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb1/igt@perf@per-context-mode-unprivileged.html
    - shard-iclb:         NOTRUN -> [SKIP][89] ([fdo#109289]) +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb1/igt@perf@per-context-mode-unprivileged.html

  
#### Possible fixes ####

  * igt@feature_discovery@psr2:
    - shard-iclb:         [SKIP][90] ([i915#658]) -> [PASS][91]
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb5/igt@feature_discovery@psr2.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@feature_discovery@psr2.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-tglb:         [FAIL][92] ([i915#6268]) -> [PASS][93]
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb7/igt@gem_ctx_exec@basic-nohangcheck.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb1/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_exec_balancer@parallel-keep-in-fence:
    - shard-iclb:         [SKIP][94] ([i915#4525]) -> [PASS][95] +1 similar issue
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb7/igt@gem_exec_balancer@parallel-keep-in-fence.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb1/igt@gem_exec_balancer@parallel-keep-in-fence.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-glk:          [FAIL][96] ([i915#2842]) -> [PASS][97]
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk1/igt@gem_exec_fair@basic-none-share@rcs0.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk8/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [FAIL][98] ([i915#2842]) -> [PASS][99]
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl8/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [FAIL][100] ([i915#2842]) -> [PASS][101]
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb5/igt@gem_exec_fair@basic-throttle@rcs0.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb7/igt@gem_exec_fair@basic-throttle@rcs0.html
    - shard-tglb:         [FAIL][102] ([i915#2842]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb2/igt@gem_exec_fair@basic-throttle@rcs0.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb6/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [DMESG-WARN][104] ([i915#5566] / [i915#716]) -> [PASS][105]
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl3/igt@gen9_exec_parse@allowed-single.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl2/igt@gen9_exec_parse@allowed-single.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
    - shard-glk:          [DMESG-FAIL][106] ([i915#118]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt:
    - shard-glk:          [FAIL][108] ([i915#2546]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk8/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-iclb:         [FAIL][110] -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1:
    - shard-iclb:         [SKIP][112] ([i915#5176]) -> [PASS][113] +1 similar issue
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb3/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb7/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1:
    - shard-iclb:         [SKIP][114] ([i915#5235]) -> [PASS][115] +2 similar issues
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [SKIP][116] ([fdo#109441]) -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb1/igt@kms_psr@psr2_no_drrs.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-glk:          [FAIL][118] -> [PASS][119] +1 similar issue
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk1/igt@kms_rotation_crc@sprite-rotation-90.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-glk2/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_vblank@pipe-c-ts-continuation-suspend:
    - shard-apl:          [DMESG-WARN][120] ([i915#180]) -> [PASS][121]
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl1/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl3/igt@kms_vblank@pipe-c-ts-continuation-suspend.html

  
#### Warnings ####

  * igt@gem_pread@exhaustion:
    - shard-tglb:         [INCOMPLETE][122] ([i915#7248]) -> [WARN][123] ([i915#2658])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb2/igt@gem_pread@exhaustion.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-tglb3/igt@gem_pread@exhaustion.html

  * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
    - shard-iclb:         [FAIL][124] ([i915#2684]) -> [WARN][125] ([i915#2684])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb8/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html

  * igt@i915_pm_rc6_residency@rc6-idle@vcs0:
    - shard-iclb:         [WARN][126] ([i915#2684]) -> [FAIL][127] ([i915#2684])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb8/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
    - shard-iclb:         [SKIP][128] ([fdo#111068] / [i915#658]) -> [SKIP][129] ([i915#2920])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb8/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
    - shard-iclb:         [SKIP][130] ([i915#2920]) -> [SKIP][131] ([i915#658])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-iclb1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html

  * igt@runner@aborted:
    - shard-apl:          ([FAIL][132], [FAIL][133], [FAIL][134], [FAIL][135]) ([fdo#109271] / [i915#3002] / [i915#4312]) -> ([FAIL][136], [FAIL][137], [FAIL][138]) ([i915#180] / [i915#3002] / [i915#4312])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl1/igt@runner@aborted.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl3/igt@runner@aborted.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl2/igt@runner@aborted.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl1/igt@runner@aborted.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl2/igt@runner@aborted.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl6/igt@runner@aborted.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/shard-apl3/igt@runner@aborted.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
  [fdo#110892]: https://bugs.freedesktop.org/show_bug.cgi?id=110892
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5939]: https://gitlab.freedesktop.org/drm/intel/issues/5939
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7121]: https://gitlab.freedesktop.org/drm/intel/issues/7121
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
  [i915#7248]: https://gitlab.freedesktop.org/drm/intel/issues/7248
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7034 -> IGTPW_8025
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12326: 498be7d039e5a471043aac63fc0b39144fc5e35f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8025: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8025/index.html
  IGT_7034: 48a376644fb444ab93efbcc6a79dfb88b53e1535 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for kms_chamelium: Add new EDID stress resolution test (rev4)
  2022-11-01 14:37 [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
                   ` (4 preceding siblings ...)
  2022-11-01 20:19 ` [igt-dev] ✗ Fi.CI.IGT: failure for kms_chamelium: Add new EDID stress resolution test (rev3) Patchwork
@ 2022-11-01 20:38 ` Patchwork
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-11-01 20:38 UTC (permalink / raw)
  To: Mark Yacoub; +Cc: igt-dev

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

== Series Details ==

Series: kms_chamelium: Add new EDID stress resolution test (rev4)
URL   : https://patchwork.freedesktop.org/series/110263/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12326_full -> IGTPW_8027_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Missing    (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005 

New tests
---------

  New tests have been introduced between CI_DRM_12326_full and IGTPW_8027_full:

### New IGT tests (1) ###

  * igt@kms_chamelium@dp-edid-stress-resolution:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][1] ([fdo#111827])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb3/igt@feature_discovery@chamelium.html
    - shard-iclb:         NOTRUN -> [SKIP][2] ([fdo#111827])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb8/igt@feature_discovery@chamelium.html

  * igt@gem_ctx_persistence@legacy-engines-persistence:
    - shard-snb:          NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#1099]) +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-snb6/igt@gem_ctx_persistence@legacy-engines-persistence.html

  * igt@gem_exec_balancer@parallel:
    - shard-iclb:         [PASS][4] -> [SKIP][5] ([i915#4525]) +1 similar issue
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb1/igt@gem_exec_balancer@parallel.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb6/igt@gem_exec_balancer@parallel.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-iclb:         NOTRUN -> [SKIP][6] ([i915#4525])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_fair@basic-flow@rcs0:
    - shard-tglb:         [PASS][7] -> [SKIP][8] ([i915#2848])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb8/igt@gem_exec_fair@basic-flow@rcs0.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb6/igt@gem_exec_fair@basic-flow@rcs0.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-apl:          [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl7/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         NOTRUN -> [FAIL][11] ([i915#2842])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb2/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_params@no-bsd:
    - shard-iclb:         NOTRUN -> [SKIP][12] ([fdo#109283])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb5/igt@gem_exec_params@no-bsd.html
    - shard-tglb:         NOTRUN -> [SKIP][13] ([fdo#109283])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb5/igt@gem_exec_params@no-bsd.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][14] -> [SKIP][15] ([i915#2190])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb3/igt@gem_huc_copy@huc-copy.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-tglb:         NOTRUN -> [SKIP][16] ([i915#4613])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb3/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-glk:          NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#4613])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk9/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][18] ([i915#4613])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb8/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-apl:          NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#4613])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl6/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-apl:          NOTRUN -> [WARN][20] ([i915#2658])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl2/igt@gem_pwrite@basic-exhaustion.html
    - shard-snb:          NOTRUN -> [WARN][21] ([i915#2658])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-snb5/igt@gem_pwrite@basic-exhaustion.html
    - shard-tglb:         NOTRUN -> [WARN][22] ([i915#2658])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb1/igt@gem_pwrite@basic-exhaustion.html
    - shard-glk:          NOTRUN -> [WARN][23] ([i915#2658])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk7/igt@gem_pwrite@basic-exhaustion.html
    - shard-iclb:         NOTRUN -> [WARN][24] ([i915#2658])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@reject-modify-context-protection-off-3:
    - shard-tglb:         NOTRUN -> [SKIP][25] ([i915#4270])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb6/igt@gem_pxp@reject-modify-context-protection-off-3.html
    - shard-iclb:         NOTRUN -> [SKIP][26] ([i915#4270])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb1/igt@gem_pxp@reject-modify-context-protection-off-3.html

  * igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled:
    - shard-iclb:         NOTRUN -> [SKIP][27] ([i915#768])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-tglb:         NOTRUN -> [SKIP][28] ([i915#3297])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb2/igt@gem_userptr_blits@dmabuf-unsync.html
    - shard-iclb:         NOTRUN -> [SKIP][29] ([i915#3297])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb5/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_vm_create@invalid-create:
    - shard-snb:          NOTRUN -> [SKIP][30] ([fdo#109271]) +92 similar issues
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-snb7/igt@gem_vm_create@invalid-create.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-tglb:         NOTRUN -> [SKIP][31] ([i915#2527] / [i915#2856]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb3/igt@gen9_exec_parse@bb-oversize.html
    - shard-iclb:         NOTRUN -> [SKIP][32] ([i915#2856]) +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb8/igt@gen9_exec_parse@bb-oversize.html

  * igt@i915_pipe_stress@stress-xrgb8888-untiled:
    - shard-apl:          NOTRUN -> [FAIL][33] ([i915#7036])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl3/igt@i915_pipe_stress@stress-xrgb8888-untiled.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-iclb:         [PASS][34] -> [SKIP][35] ([i915#4281])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb2/igt@i915_pm_dc@dc9-dpms.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rpm@dpms-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#111644] / [i915#1397] / [i915#2411])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb7/igt@i915_pm_rpm@dpms-non-lpsp.html
    - shard-iclb:         NOTRUN -> [SKIP][37] ([fdo#110892])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@i915_pm_rpm@dpms-non-lpsp.html

  * igt@i915_pm_rps@engine-order:
    - shard-apl:          [PASS][38] -> [FAIL][39] ([i915#6537])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl2/igt@i915_pm_rps@engine-order.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl7/igt@i915_pm_rps@engine-order.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([i915#5286]) +2 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb1/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-iclb:         NOTRUN -> [SKIP][41] ([i915#5286]) +2 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][42] ([fdo#111614])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb3/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
    - shard-iclb:         NOTRUN -> [SKIP][43] ([fdo#110725] / [fdo#111614])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb8/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-180:
    - shard-glk:          [PASS][44] -> [FAIL][45] ([i915#5138])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk8/igt@kms_big_fb@x-tiled-8bpp-rotate-180.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk5/igt@kms_big_fb@x-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-tglb:         NOTRUN -> [SKIP][46] ([fdo#111615])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb2/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_ccs@pipe-a-bad-rotation-90-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][47] ([i915#3689] / [i915#6095])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb1/igt@kms_ccs@pipe-a-bad-rotation-90-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][48] ([fdo#111615] / [i915#3689])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb7/igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][49] ([fdo#109278] / [i915#3886]) +3 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][50] ([i915#3689]) +4 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb1/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][51] ([i915#3689] / [i915#3886]) +2 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb3/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-4_tiled_dg2_rc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][52] ([i915#6095]) +1 similar issue
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb5/igt@kms_ccs@pipe-c-bad-pixel-format-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#3886]) +3 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl1/igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#3886]) +3 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk5/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_chamelium@dp-audio:
    - shard-iclb:         NOTRUN -> [SKIP][55] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb6/igt@kms_chamelium@dp-audio.html

  * {igt@kms_chamelium@dp-edid-stress-resolution} (NEW):
    - shard-glk:          NOTRUN -> [SKIP][56] ([fdo#109271]) +45 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk6/igt@kms_chamelium@dp-edid-stress-resolution.html
    - shard-iclb:         NOTRUN -> [SKIP][57] ([fdo#109284])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb8/igt@kms_chamelium@dp-edid-stress-resolution.html
    - shard-tglb:         NOTRUN -> [SKIP][58] ([fdo#109284])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb1/igt@kms_chamelium@dp-edid-stress-resolution.html

  * igt@kms_chamelium@dp-hpd-after-suspend:
    - shard-snb:          NOTRUN -> [SKIP][59] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-snb4/igt@kms_chamelium@dp-hpd-after-suspend.html
    - shard-apl:          NOTRUN -> [SKIP][60] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl1/igt@kms_chamelium@dp-hpd-after-suspend.html
    - shard-tglb:         NOTRUN -> [SKIP][61] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb8/igt@kms_chamelium@dp-hpd-after-suspend.html

  * igt@kms_color_chamelium@ctm-limited-range:
    - shard-glk:          NOTRUN -> [SKIP][62] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk2/igt@kms_color_chamelium@ctm-limited-range.html

  * igt@kms_content_protection@legacy:
    - shard-tglb:         NOTRUN -> [SKIP][63] ([i915#7118])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb5/igt@kms_content_protection@legacy.html
    - shard-iclb:         NOTRUN -> [SKIP][64] ([i915#7118])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb3/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@legacy@pipe-a-dp-1:
    - shard-apl:          NOTRUN -> [INCOMPLETE][65] ([i915#1319] / [i915#7121] / [i915#7173])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl7/igt@kms_content_protection@legacy@pipe-a-dp-1.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1:
    - shard-apl:          [PASS][66] -> [DMESG-WARN][67] ([i915#180]) +2 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl6/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl3/igt@kms_cursor_crc@cursor-suspend@pipe-a-dp-1.html

  * igt@kms_cursor_legacy@flip-vs-cursor@varying-size:
    - shard-iclb:         [PASS][68] -> [FAIL][69] ([i915#2346]) +2 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb8/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglb:         NOTRUN -> [SKIP][70] ([fdo#109274])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb3/igt@kms_display_modes@extended-mode-basic.html
    - shard-iclb:         NOTRUN -> [SKIP][71] ([fdo#109274])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][72] ([i915#2587] / [i915#2672]) +3 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][73] ([i915#2672] / [i915#3555])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][74] ([i915#3555]) +3 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][75] ([i915#2672]) +3 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-tglb:         NOTRUN -> [SKIP][76] ([i915#2587] / [i915#2672]) +1 similar issue
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
    - shard-apl:          NOTRUN -> [SKIP][77] ([fdo#109271]) +44 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
    - shard-tglb:         NOTRUN -> [SKIP][78] ([i915#6497]) +2 similar issues
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][79] ([fdo#109280] / [fdo#111825]) +9 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt:
    - shard-iclb:         NOTRUN -> [SKIP][80] ([fdo#109280]) +9 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-pgflip-blt.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-tglb:         NOTRUN -> [SKIP][81] ([i915#3555]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb5/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1:
    - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#5235]) +3 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb8/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1.html
    - shard-iclb:         NOTRUN -> [SKIP][83] ([i915#5235]) +2 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-c-edp-1.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
    - shard-apl:          NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#658])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl6/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
    - shard-tglb:         NOTRUN -> [SKIP][85] ([i915#2920])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb7/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
    - shard-glk:          NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#658])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk8/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
    - shard-iclb:         NOTRUN -> [SKIP][87] ([fdo#111068] / [i915#658])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb7/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-iclb:         NOTRUN -> [SKIP][88] ([fdo#109642] / [fdo#111068] / [i915#658])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb6/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@psr2_cursor_mmap_gtt:
    - shard-tglb:         NOTRUN -> [FAIL][89] ([i915#132] / [i915#3467])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb2/igt@kms_psr@psr2_cursor_mmap_gtt.html
    - shard-iclb:         NOTRUN -> [SKIP][90] ([fdo#109441])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb5/igt@kms_psr@psr2_cursor_mmap_gtt.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-tglb:         NOTRUN -> [SKIP][91] ([fdo#111615] / [i915#5289])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_vblank@pipe-d-query-forked-busy:
    - shard-iclb:         NOTRUN -> [SKIP][92] ([fdo#109278]) +5 similar issues
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb3/igt@kms_vblank@pipe-d-query-forked-busy.html

  * igt@perf@per-context-mode-unprivileged:
    - shard-tglb:         NOTRUN -> [SKIP][93] ([fdo#109289]) +1 similar issue
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb6/igt@perf@per-context-mode-unprivileged.html
    - shard-iclb:         NOTRUN -> [SKIP][94] ([fdo#109289]) +1 similar issue
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb1/igt@perf@per-context-mode-unprivileged.html

  
#### Possible fixes ####

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-tglb:         [FAIL][95] ([i915#6268]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb7/igt@gem_ctx_exec@basic-nohangcheck.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb6/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-glk:          [FAIL][97] ([i915#2842]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk1/igt@gem_exec_fair@basic-none-share@rcs0.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk2/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [DMESG-WARN][99] ([i915#5566] / [i915#716]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl3/igt@gen9_exec_parse@allowed-single.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl6/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][101] ([fdo#109271]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl6/igt@i915_pm_dc@dc9-dpms.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl8/igt@i915_pm_dc@dc9-dpms.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode:
    - shard-glk:          [DMESG-FAIL][103] ([i915#118]) -> [PASS][104]
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt:
    - shard-glk:          [FAIL][105] ([i915#2546]) -> [PASS][106]
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-iclb:         [FAIL][107] -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1:
    - shard-iclb:         [SKIP][109] ([i915#5176]) -> [PASS][110] +1 similar issue
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb3/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-pixel-formats@pipe-b-edp-1.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1:
    - shard-iclb:         [SKIP][111] ([i915#5235]) -> [PASS][112] +2 similar issues
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb5/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html

  * igt@kms_psr@psr2_primary_mmap_gtt:
    - shard-iclb:         [SKIP][113] ([fdo#109441]) -> [PASS][114]
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb7/igt@kms_psr@psr2_primary_mmap_gtt.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-glk:          [FAIL][115] -> [PASS][116] +1 similar issue
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk1/igt@kms_rotation_crc@sprite-rotation-90.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk3/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_vblank@pipe-c-ts-continuation-suspend:
    - shard-apl:          [DMESG-WARN][117] ([i915#180]) -> [PASS][118]
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl1/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl6/igt@kms_vblank@pipe-c-ts-continuation-suspend.html

  
#### Warnings ####

  * igt@gem_pread@exhaustion:
    - shard-apl:          [INCOMPLETE][119] ([i915#7248]) -> [WARN][120] ([i915#2658])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl2/igt@gem_pread@exhaustion.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl7/igt@gem_pread@exhaustion.html
    - shard-tglb:         [INCOMPLETE][121] ([i915#7248]) -> [WARN][122] ([i915#2658])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-tglb2/igt@gem_pread@exhaustion.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-tglb5/igt@gem_pread@exhaustion.html
    - shard-glk:          [INCOMPLETE][123] ([i915#7248]) -> [WARN][124] ([i915#2658])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-glk7/igt@gem_pread@exhaustion.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-glk3/igt@gem_pread@exhaustion.html

  * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
    - shard-iclb:         [FAIL][125] ([i915#2684]) -> [WARN][126] ([i915#2684])
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb8/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb6/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
    - shard-iclb:         [SKIP][127] ([i915#658]) -> [SKIP][128] ([i915#2920]) +1 similar issue
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb6/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area:
    - shard-iclb:         [SKIP][129] ([fdo#111068] / [i915#658]) -> [SKIP][130] ([i915#2920])
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb7/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
    - shard-iclb:         [SKIP][131] ([i915#2920]) -> [SKIP][132] ([i915#658]) +1 similar issue
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-iclb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html

  * igt@runner@aborted:
    - shard-apl:          ([FAIL][133], [FAIL][134], [FAIL][135], [FAIL][136]) ([fdo#109271] / [i915#3002] / [i915#4312]) -> ([FAIL][137], [FAIL][138], [FAIL][139], [FAIL][140], [FAIL][141]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl1/igt@runner@aborted.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl3/igt@runner@aborted.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl2/igt@runner@aborted.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12326/shard-apl1/igt@runner@aborted.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl1/igt@runner@aborted.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl3/igt@runner@aborted.html
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl1/igt@runner@aborted.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl2/igt@runner@aborted.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/shard-apl3/igt@runner@aborted.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
  [fdo#110892]: https://bugs.freedesktop.org/show_bug.cgi?id=110892
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2848]: https://gitlab.freedesktop.org/drm/intel/issues/2848
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6537]: https://gitlab.freedesktop.org/drm/intel/issues/6537
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#7036]: https://gitlab.freedesktop.org/drm/intel/issues/7036
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7121]: https://gitlab.freedesktop.org/drm/intel/issues/7121
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
  [i915#7248]: https://gitlab.freedesktop.org/drm/intel/issues/7248
  [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7034 -> IGTPW_8027
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12326: 498be7d039e5a471043aac63fc0b39144fc5e35f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8027: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8027/index.html
  IGT_7034: 48a376644fb444ab93efbcc6a79dfb88b53e1535 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test
  2022-11-01 16:30 ` [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
@ 2022-11-01 23:04   ` Dixit, Ashutosh
  0 siblings, 0 replies; 10+ messages in thread
From: Dixit, Ashutosh @ 2022-11-01 23:04 UTC (permalink / raw)
  To: Mark Yacoub
  Cc: robdclark, khaled.almahallawy, vsuley, markyacoub, igt-dev, kalin,
	seanpaul, ihf, matthewtlam, petri.latvala, amstan

On Tue, 01 Nov 2022 09:30:42 -0700, Mark Yacoub wrote:
> +static void edid_stress_resolution(data_t *data, struct chamelium_port *port,
> +				   monitor_edid edids_list[],
> +				   size_t edids_list_len)
> +{
> +	int i;
> +	struct chamelium *chamelium = data->chamelium;
> +	struct udev_monitor *mon = igt_watch_uevents();
> +
> +	for (i = 0; i < edids_list_len; ++i) {
> +		struct chamelium_edid *chamelium_edid;
> +		drmModeModeInfo mode;
> +		struct igt_fb fb = { 0 };
> +		igt_output_t *output;
> +		enum pipe pipe;
> +		bool is_video_stable;
> +		int screen_res_w, screen_res_h;
> +
> +		monitor_edid *monitor_edid = &edids_list[i];

No warnings please.

../tests/chamelium/kms_chamelium.c: In function ‘edid_stress_resolution’:
../tests/chamelium/kms_chamelium.c:2570:31: warning: declaration of ‘monitor_edid’ shadows a global declaration [-Wshadow]
 2570 |                 monitor_edid *monitor_edid = &edids_list[i];
      |                               ^~~~~~~~~~~~
In file included from ../lib/monitor_edids/dp_edids.h:15,
                 from ../tests/chamelium/kms_chamelium.c:33:
../lib/monitor_edids/monitor_edids_helper.h:25:3: note: shadowed declaration is here
   25 | } monitor_edid;
      |   ^~~~~~~~~~~~

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

end of thread, other threads:[~2022-11-01 23:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-01 14:37 [igt-dev] [PATCH v2] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
2022-11-01 15:16 ` [igt-dev] ✗ GitLab.Pipeline: warning for kms_chamelium: Add new EDID stress resolution test (rev3) Patchwork
2022-11-01 15:37 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2022-11-01 16:30 ` [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
2022-11-01 23:04   ` Dixit, Ashutosh
2022-11-01 17:41 ` [igt-dev] ✓ Fi.CI.BAT: success for kms_chamelium: Add new EDID stress resolution test (rev4) Patchwork
2022-11-01 20:19 ` [igt-dev] ✗ Fi.CI.IGT: failure for kms_chamelium: Add new EDID stress resolution test (rev3) Patchwork
2022-11-01 20:38 ` [igt-dev] ✓ Fi.CI.IGT: success for kms_chamelium: Add new EDID stress resolution test (rev4) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2022-10-28 16:42 [igt-dev] [PATCH] [NEW]kms_chamelium: Add new EDID stress resolution test Mark Yacoub
2022-10-31 11:13 ` Petri Latvala

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