All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH] [i-g-t] tests/amdgpu/amd_vrr_range: add vrr range check for display connected
@ 2023-05-31 18:36 Hersen Wu
  2023-05-31 19:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Hersen Wu @ 2023-05-31 18:36 UTC (permalink / raw)
  To: igt-dev, rodrigo.siqueira, aurabindo.pillai, alex.hung,
	stylon.wang, hamza.mahfooz
  Cc: Hersen Wu

Add VRR test for display connected by removing hard coded connector type.

Add debugfs to allow read eDP EDID for each display detection. AMD Linux
kernel read eDP EDID only one time by default.

Optimize hard coded EDID to let 2 DP lanes meet timing requirement. Timing
of current hard coded DP EDID supports 4k@60hz, it needs 4 DP lanes. With
2 lane DP display connected, VRR test fails due to number of DP lane
not meet 4 lanes.

Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
---
 lib/igt_amd.c                |  31 ++++
 lib/igt_amd.h                |   2 +
 tests/amdgpu/amd_vrr_range.c | 298 ++++++++++++++++++++++-------------
 3 files changed, 221 insertions(+), 110 deletions(-)

diff --git a/lib/igt_amd.c b/lib/igt_amd.c
index 09923101f..8837714f7 100644
--- a/lib/igt_amd.c
+++ b/lib/igt_amd.c
@@ -1111,6 +1111,37 @@ int igt_amd_read_psr_state(int drm_fd, char *connector_name)
 	return strtol(buf, NULL, 10);
 }
 
+/**
+ * igt_amd_allow_edp_hotplug_detect: notify kernel read edp edid all the time
+ * @drm_fd: DRM file descriptor
+ * @connector_name: The connector's name
+ * @enable: allow or disable kernel read eDP EDID for each display detection
+ * example usage: echo 0x1 >
+ * /sys/kernel/debug/dri/0/eDP-1/allow_edp_hotplug_detection
+ */
+void igt_amd_allow_edp_hotplug_detect(int drm_fd, char *connector_name, bool enable)
+{
+	int fd, hpd_fd, wr_len;
+	const char *allow_hotplug_detect = "1";
+	const char *dis_allow_hotplug_detect = "0";
+
+	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
+	igt_assert(fd >= 0);
+	hpd_fd = openat(fd, DEBUGFS_ALLOW_EDP_HOTPLUG_DETECT, O_WRONLY);
+	close(fd);
+	igt_assert(hpd_fd >= 0);
+
+	if (enable) {
+		wr_len = write(hpd_fd, allow_hotplug_detect, strlen(allow_hotplug_detect));
+		igt_assert_eq(wr_len, strlen(allow_hotplug_detect));
+	} else {
+		wr_len = write(hpd_fd, dis_allow_hotplug_detect, strlen(dis_allow_hotplug_detect));
+		igt_assert_eq(wr_len, strlen(dis_allow_hotplug_detect));
+	}
+
+	close(hpd_fd);
+}
+
 /**
  * @brief check if AMDGPU DM visual confirm debugfs interface entry exist and defined
  *
diff --git a/lib/igt_amd.h b/lib/igt_amd.h
index 428bfe6f7..d57390405 100644
--- a/lib/igt_amd.h
+++ b/lib/igt_amd.h
@@ -48,6 +48,7 @@
 #define MAX_SUPPORTED_ILR 8
 #define DEBUGFS_EDP_PSR_CAP	"psr_capability"
 #define DEBUGFS_EDP_PSR_STATE	"psr_state"
+#define DEBUGFS_ALLOW_EDP_HOTPLUG_DETECT "allow_edp_hotplug_detection"
 
 /* amdgpu DM interface entries */
 #define DEBUGFS_DM_VISUAL_CONFIRM "amdgpu_dm_visual_confirm"
@@ -187,6 +188,7 @@ bool igt_amd_psr_support_sink(int drm_fd, char *connector_name, enum psr_mode mo
 bool igt_amd_psr_support_drv(int drm_fd, char *connector_name, enum psr_mode mode);
 bool igt_amd_output_has_psr_state(int drm_fd, char *connector_name);
 int  igt_amd_read_psr_state(int drm_fd, char *connector_name);
+void igt_amd_allow_edp_hotplug_detect(int drm_fd, char *connector_name, bool enable);
 
 /* DM interface helpers */
 bool igt_amd_has_visual_confirm(int drm_fd);
diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c
index 2f27296dd..3f8f23e9a 100644
--- a/tests/amdgpu/amd_vrr_range.c
+++ b/tests/amdgpu/amd_vrr_range.c
@@ -27,11 +27,14 @@
 
 IGT_TEST_DESCRIPTION("Test EDID parsing and debugfs reporting on Freesync displays");
 
+/* Maximumm pipes on any AMD ASIC. */
+#define MAX_PIPES 6
+
 /* Common test data. */
 typedef struct data {
 	igt_display_t display;
 	igt_plane_t *primary;
-	igt_output_t *output;
+	igt_output_t *output[MAX_PIPES];
 	int fd;
 } data_t;
 
@@ -53,45 +56,46 @@ struct {
 	const range_t range;
 } edid_database[] = {
 	{
-		/* DP EDID from Benq EL-2870u */
-		"Benq EL-2870u DP",
+		/* EDID Version 1.4. Timing requires 2 DP lanes. */
+		"External DP",
 		DRM_MODE_CONNECTOR_DisplayPort,
 		{
 		0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
-		0x09, 0xd1, 0x49, 0x79, 0x45, 0x54, 0x00, 0x00,
-		0x0c, 0x1e, 0x01, 0x04, 0xb5, 0x3e, 0x22, 0x78,
-		0x3f, 0x08, 0xa5, 0xa2, 0x57, 0x4f, 0xa2, 0x28,
-		0x0f, 0x50, 0x54, 0xa5, 0x6b, 0x80, 0xd1, 0xc0,
-		0x81, 0xc0, 0x81, 0x00, 0x81, 0x80, 0xa9, 0xc0,
-		0xb3, 0x00, 0xa9, 0x40, 0x01, 0x01, 0x4d, 0xd0,
-		0x00, 0xa0, 0xf0, 0x70, 0x3e, 0x80, 0x30, 0x20,
-		0x35, 0x00, 0x6d, 0x55, 0x21, 0x00, 0x00, 0x1a,
-		0x00, 0x00, 0x00, 0xff, 0x00, 0x46, 0x33, 0x4c,
-		0x30, 0x34, 0x33, 0x33, 0x33, 0x53, 0x4c, 0x30,
-		0x0a, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x28,
-		0x3c, 0x87, 0x87, 0x3c, 0x01, 0x0a, 0x20, 0x20,
-		0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
-		0x00, 0x42, 0x65, 0x6e, 0x51, 0x20, 0x45, 0x4c,
-		0x32, 0x38, 0x37, 0x30, 0x55, 0x0a, 0x01, 0xa8,
-		0x02, 0x03, 0x2e, 0xf1, 0x56, 0x61, 0x60, 0x5d,
-		0x5e, 0x5f, 0x10, 0x05, 0x04, 0x03, 0x02, 0x07,
-		0x06, 0x0f, 0x1f, 0x20, 0x21, 0x22, 0x14, 0x13,
-		0x12, 0x16, 0x01, 0x23, 0x09, 0x07, 0x07, 0x83,
-		0x01, 0x00, 0x00, 0xe3, 0x05, 0xc0, 0x00, 0xe6,
-		0x06, 0x05, 0x01, 0x5a, 0x53, 0x44, 0x02, 0x3a,
+		0x06, 0xb3, 0xaf, 0x24, 0x01, 0x01, 0x01, 0x01,
+		0x00, 0x1d, 0x01, 0x04, 0x80, 0x35, 0x1e, 0x78,
+		0x2b, 0x51, 0xb5, 0xa4, 0x54, 0x4f, 0xa0, 0x26,
+		0x0d, 0x50, 0x54, 0xbf, 0xcf, 0x00, 0x81, 0x40,
+		0x81, 0x80, 0x95, 0x00, 0x71, 0x4f, 0x81, 0xc0,
+		0xb3, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3a,
 		0x80, 0x18, 0x71, 0x38, 0x2d, 0x40, 0x58, 0x2c,
-		0x45, 0x00, 0x6d, 0x55, 0x21, 0x00, 0x00, 0x1e,
-		0x56, 0x5e, 0x00, 0xa0, 0xa0, 0xa0, 0x29, 0x50,
-		0x30, 0x20, 0x35, 0x00, 0x6d, 0x55, 0x21, 0x00,
-		0x00, 0x1a, 0x8c, 0x64, 0x00, 0x50, 0xf0, 0x70,
-		0x1f, 0x80, 0x08, 0x20, 0x18, 0x04, 0x6d, 0x55,
-		0x21, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00,
+		0x45, 0x00, 0x0f, 0x28, 0x21, 0x00, 0x00, 0x1e,
+		0xfc, 0x7e, 0x80, 0x88, 0x70, 0x38, 0x12, 0x40,
+		0x18, 0x20, 0x35, 0x00, 0x0f, 0x28, 0x21, 0x00,
+		0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x30,
+		0x90, 0x1e, 0xb4, 0x22, 0x01, 0x0a, 0x20, 0x20,
+		0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
+		0x00, 0x41, 0x53, 0x55, 0x53, 0x20, 0x56, 0x50,
+		0x32, 0x34, 0x39, 0x0a, 0x20, 0x20, 0x01, 0x91,
+		0x02, 0x03, 0x2d, 0xf1, 0x4f, 0x01, 0x03, 0x04,
+		0x13, 0x1f, 0x12, 0x02, 0x11, 0x90, 0x0e, 0x0f,
+		0x1d, 0x1e, 0x3f, 0x40, 0x23, 0x09, 0x07, 0x07,
+		0x83, 0x01, 0x00, 0x00, 0x67, 0x03, 0x0c, 0x00,
+		0x10, 0x00, 0x00, 0x44, 0x68, 0x1a, 0x00, 0x00,
+		0x01, 0x01, 0x30, 0x90, 0xe6, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16
 		},
-		{40, 60},
+		{48, 144},
 	},
+
 	{
 		/* HDMI EDID from ASUS VP249QGR */
 		"ASUS VP249QGR HDMI",
@@ -132,29 +136,63 @@ struct {
 		},
 		{48, 144},
 	},
+
+	{
+		/* EDID Version 1.4. Timing requires 2 DP lanes. */
+		"eDP",
+		DRM_MODE_CONNECTOR_eDP,
+		{
+		0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
+		0x06, 0xb3, 0xaf, 0x24, 0x01, 0x01, 0x01, 0x01,
+		0x00, 0x1d, 0x01, 0x04, 0x80, 0x35, 0x1e, 0x78,
+		0x2b, 0x51, 0xb5, 0xa4, 0x54, 0x4f, 0xa0, 0x26,
+		0x0d, 0x50, 0x54, 0xbf, 0xcf, 0x00, 0x81, 0x40,
+		0x81, 0x80, 0x95, 0x00, 0x71, 0x4f, 0x81, 0xc0,
+		0xb3, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3a,
+		0x80, 0x18, 0x71, 0x38, 0x2d, 0x40, 0x58, 0x2c,
+		0x45, 0x00, 0x0f, 0x28, 0x21, 0x00, 0x00, 0x1e,
+		0xfc, 0x7e, 0x80, 0x88, 0x70, 0x38, 0x12, 0x40,
+		0x18, 0x20, 0x35, 0x00, 0x0f, 0x28, 0x21, 0x00,
+		0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x30,
+		0x90, 0x1e, 0xb4, 0x22, 0x01, 0x0a, 0x20, 0x20,
+		0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
+		0x00, 0x41, 0x53, 0x55, 0x53, 0x20, 0x56, 0x50,
+		0x32, 0x34, 0x39, 0x0a, 0x20, 0x20, 0x01, 0x91,
+		0x02, 0x03, 0x2d, 0xf1, 0x4f, 0x01, 0x03, 0x04,
+		0x13, 0x1f, 0x12, 0x02, 0x11, 0x90, 0x0e, 0x0f,
+		0x1d, 0x1e, 0x3f, 0x40, 0x23, 0x09, 0x07, 0x07,
+		0x83, 0x01, 0x00, 0x00, 0x67, 0x03, 0x0c, 0x00,
+		0x10, 0x00, 0x00, 0x44, 0x68, 0x1a, 0x00, 0x00,
+		0x01, 0x01, 0x30, 0x90, 0xe6, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16
+		},
+		{48, 144},
+	},
 };
 
-/* Common test setup. */
-static void test_init(data_t *data, uint32_t connector_type)
+static void test_init(data_t *data)
 {
 	igt_display_t *display = &data->display;
+	int i;
 
-	igt_display_reset(display);
+	for_each_pipe(display, i) {
+		igt_output_t *output = &display->outputs[i];
 
-	/* find connected outputs */
-	data->output = NULL;
-	for (int i=0; i < data->display.n_outputs; ++i) {
-		drmModeConnector *connector = data->display.outputs[i].config.connector;
-		if (connector->connection == DRM_MODE_CONNECTED &&
-			connector->connector_type == connector_type) {
-			data->output = &data->display.outputs[i];
-		}
+		data->output[i] = output;
 	}
-	igt_assert_f(data->output, "Requires connected output\n");
 
+	igt_display_reset(display);
 }
 
-/* Common test cleanup. */
 static void test_fini(data_t *data)
 {
 	igt_display_reset(&data->display);
@@ -185,6 +223,7 @@ static range_t get_freesync_range(data_t *data, igt_output_t *output)
 	fd = igt_debugfs_connector_dir(data->fd, output->name, O_RDONLY);
 	igt_assert(fd >= 0);
 
+	/* example usage: cat /sys/kernel/debug/dri/0/DP-1/vrr_range */
 	res = igt_debugfs_simple_read(fd, "vrr_range", buf, sizeof(buf));
 	igt_require(res > 0);
 
@@ -199,56 +238,86 @@ static range_t get_freesync_range(data_t *data, igt_output_t *output)
 	return range;
 }
 
-static void trigger_edid_parse(data_t *data, uint32_t test_flags)
+static void trigger_edid_parse(data_t *data, igt_output_t *output, uint32_t test_flags)
 {
 	if (test_flags & TEST_SUSPEND)
 		igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
 					      SUSPEND_TEST_NONE);
 	else
-		igt_amd_trigger_hotplug(data->fd, data->output->name);
+		igt_amd_trigger_hotplug(data->fd, output->name);
 
 	/* more safe margin until resume and hotplug is completed */
 	usleep(1500000);
 }
 
 /* Check if EDID parsing is correctly reporting Freesync capability
- * by overriding EDID with ones from golden sample. Display under test
- * must still support Freesync.
+ * by overriding EDID with ones from golden sample.
  */
-static void test_freesync_parsing(data_t *data, uint32_t connector_type,
-		uint32_t test_flags)
+static void test_freesync_parsing_base(data_t *data, uint32_t test_flags)
 {
 	const struct edid *edid;
 	range_t range, expected_range;
-	int i;
+	igt_output_t *output;
+	int i, j, test_conn_cnt = 0;
 
-	test_init(data, connector_type);
+	test_init(data);
 
 	igt_amd_require_hpd(&data->display, data->fd);
 
-	/* find a test EDID */
-	i = find_test_edid_index(connector_type);
-	edid = (const struct edid *)edid_database[i].edid;
-	expected_range = edid_database[i].range;
+	for_each_pipe(&data->display, i) {
+		/* setup the output */
+		output = data->output[i];
+		if (!output || !igt_output_is_connected(output))
+			continue;
+
+		/* find a test EDID */
+		j = find_test_edid_index(output->config.connector->connector_type);
+
+		edid = (const struct edid *)edid_database[j].edid;
+		expected_range = edid_database[j].range;
+
+		/* eDP allow read edid for each display detection */
+		if (output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
+			igt_amd_allow_edp_hotplug_detect(data->fd, output->name, true);
+
+		/* force to use hard coded VRR EDID */
+		kmstest_force_edid(data->fd, output->config.connector, edid);
 
-	kmstest_force_edid(data->fd, data->output->config.connector, edid);
+		trigger_edid_parse(data, output, test_flags);
 
-	trigger_edid_parse(data, test_flags);
+		range = get_freesync_range(data, output);
 
-	range = get_freesync_range(data, data->output);
+		/* undo EDID override. re-parse EDID of display */
+		kmstest_force_edid(data->fd, output->config.connector, NULL);
 
-	/* undo EDID override and trigger a re-parsing of EDID */
-	kmstest_force_edid(data->fd, data->output->config.connector, NULL);
-	igt_amd_trigger_hotplug(data->fd, data->output->name);
+		igt_amd_trigger_hotplug(data->fd, output->name);
+
+		/* eDP dis-allow read edid for each display detection */
+		if (output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
+			igt_amd_allow_edp_hotplug_detect(data->fd, output->name, false);
+
+		test_conn_cnt++;
+
+		igt_assert_f(range.min == expected_range.min &&
+				range.max == expected_range.max,
+				"Expecting Freesync range %d-%d, got %d-%d\n",
+				expected_range.min, expected_range.max,
+				range.min, range.max);
+		igt_info("%s Freesync range: %d-%d\n", output->name, range.min, range.max);
+	}
 
 	test_fini(data);
+	igt_skip_on(test_conn_cnt == 0);
+}
+
+static inline void test_freesync_parsing(data_t *data)
+{
+	test_freesync_parsing_base(data, TEST_NONE);
+}
 
-	igt_assert_f(range.min == expected_range.min &&
-			range.max == expected_range.max,
-			"Expecting Freesync range %d-%d, got %d-%d\n",
-			expected_range.min, expected_range.max,
-			range.min, range.max);
-	igt_info("Freesync range: %d-%d\n", range.min, range.max);
+static inline void test_freesync_parsing_suspend(data_t *data)
+{
+	test_freesync_parsing_base(data, TEST_SUSPEND);
 }
 
 /* Returns true if an output supports VRR. */
@@ -260,32 +329,57 @@ static bool has_vrr(igt_output_t *output)
 
 /* More relaxed checking on Freesync capability.
  * Only checks if frame rate range is within legal range.
+ * Display under test MUST be VRR capable.
  */
-static void test_freesync_range(data_t *data, uint32_t connector_type,
-		uint32_t test_flags)
+static void test_freesync_range_base(data_t *data, uint32_t test_flags)
 {
 	range_t range;
+	igt_output_t *output;
+	int i, test_conn_cnt = 0;
 
-	test_init(data, connector_type);
+	test_init(data);
 
 	igt_amd_require_hpd(&data->display, data->fd);
 
-	igt_assert_f(has_vrr(data->output),
-			"connector %s is not VRR capable\n",
-			data->output->name);
+	for_each_pipe(&data->display, i) {
+		/* setup the output */
+		output = data->output[i];
+		if (!output || !igt_output_is_connected(output))
+			continue;
+
+		igt_debug_on_f(!has_vrr(output), "Requires output supports VRR\n");
+
+		if (!has_vrr(output)) {
+			igt_info("connector %s is not VRR capable\n", output->name);
+			continue;
+		}
+
+		trigger_edid_parse(data, output, test_flags);
+
+		range = get_freesync_range(data, output);
 
-	trigger_edid_parse(data, test_flags);
+		igt_assert_f(range.min != 0 &&
+				range.max != 0 &&
+				range.max - range.min > 10,
+				"Invalid Freesync range %d-%d\n",
+				range.min, range.max);
+		igt_info("%s Freesync range: %d-%d\n", output->name, range.min, range.max);
 
-	range = get_freesync_range(data, data->output);
+		test_conn_cnt++;
+	}
 
 	test_fini(data);
+	igt_skip_on(test_conn_cnt == 0);
+}
+
+static inline void test_freesync_range(data_t *data)
+{
+	test_freesync_range_base(data, TEST_NONE);
+}
 
-	igt_assert_f(range.min != 0 &&
-			range.max != 0 &&
-			range.max - range.min > 10,
-			"Invalid Freesync range %d-%d\n",
-			range.min, range.max);
-	igt_info("Freesync range: %d-%d\n", range.min, range.max);
+static inline void test_freesync_range_suspend(data_t *data)
+{
+	test_freesync_range_base(data, TEST_SUSPEND);
 }
 
 igt_main
@@ -307,33 +401,17 @@ igt_main
 		igt_display_require_output(&data.display);
 	}
 
-	igt_describe("Freesync EDID parsing on HDMI");
-	igt_subtest("freesync-parsing-hdmi") test_freesync_parsing(&data,
-			DRM_MODE_CONNECTOR_HDMIA, TEST_NONE);
-	igt_describe("Freesync EDID parsing on DP");
-	igt_subtest("freesync-parsing-dp") test_freesync_parsing(&data,
-			DRM_MODE_CONNECTOR_DisplayPort, TEST_NONE);
-
-	igt_describe("Freesync EDID parsing on HDMI after suspend");
-	igt_subtest("freesync-parsing-hdmi-suspend") test_freesync_parsing(&data,
-			DRM_MODE_CONNECTOR_HDMIA, TEST_SUSPEND);
-	igt_describe("Freesync EDID parsing on DP after suspend");
-	igt_subtest("freesync-parsing-dp-suspend") test_freesync_parsing(&data,
-			DRM_MODE_CONNECTOR_DisplayPort, TEST_SUSPEND);
-
-	igt_describe("Freesync range on HDMI");
-	igt_subtest("freesync-range-hdmi") test_freesync_range(&data,
-			DRM_MODE_CONNECTOR_HDMIA, TEST_NONE);
-	igt_describe("Freesync range on DP");
-	igt_subtest("freesync-range-dp") test_freesync_range(&data,
-			DRM_MODE_CONNECTOR_DisplayPort, TEST_NONE);
-
-	igt_describe("Freesync range on HDMI after suspend");
-	igt_subtest("freesync-range-hdmi-suspend") test_freesync_range(&data,
-			DRM_MODE_CONNECTOR_HDMIA, TEST_SUSPEND);
-	igt_describe("Freesync range on DP after suspend");
-	igt_subtest("freesync-range-dp-suspend") test_freesync_range(&data,
-			DRM_MODE_CONNECTOR_DisplayPort, TEST_SUSPEND);
+	igt_describe("Hard coded Freesync EDID parsing");
+	igt_subtest("freesync-parsing") test_freesync_parsing(&data);
+
+	igt_describe("Hard coded Freesync EDID parsing after suspend");
+	igt_subtest("freesync-parsing-suspend") test_freesync_parsing_suspend(&data);
+
+	igt_describe("Freesync range from display");
+	igt_subtest("freesync-range") test_freesync_range(&data);
+
+	igt_describe("Freesync range from display after suspend");
+	igt_subtest("freesync-range-suspend") test_freesync_range_suspend(&data);
 
 	igt_fixture
 	{
-- 
2.25.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests/amdgpu/amd_vrr_range: add vrr range check for display connected
  2023-05-31 18:36 [igt-dev] [PATCH] [i-g-t] tests/amdgpu/amd_vrr_range: add vrr range check for display connected Hersen Wu
@ 2023-05-31 19:09 ` Patchwork
  2023-05-31 23:05 ` [igt-dev] [PATCH] [i-g-t] " Alex Hung
  2023-06-02  9:21 ` [igt-dev] ✓ Fi.CI.IGT: success for " Patchwork
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2023-05-31 19:09 UTC (permalink / raw)
  To: Hersen Wu; +Cc: igt-dev

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

== Series Details ==

Series: tests/amdgpu/amd_vrr_range: add vrr range check for display connected
URL   : https://patchwork.freedesktop.org/series/118667/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13208 -> IGTPW_9083
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (36 -> 37)
------------------------------

  Additional (1): bat-dg1-5 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_mmap@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][1] ([i915#4083])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@gem_mmap@basic.html

  * igt@gem_tiled_fence_blits@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][2] ([i915#4077]) +2 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@gem_tiled_fence_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][3] ([i915#4079]) +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_backlight@basic-brightness:
    - bat-dg1-5:          NOTRUN -> [SKIP][4] ([i915#7561])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_pm_backlight@basic-brightness@edp-1:
    - bat-rplp-1:         NOTRUN -> [ABORT][5] ([i915#7077])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-rplp-1/igt@i915_pm_backlight@basic-brightness@edp-1.html

  * igt@i915_pm_rps@basic-api:
    - bat-dg1-5:          NOTRUN -> [SKIP][6] ([i915#6621])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-apl-guc:         [PASS][7] -> [DMESG-FAIL][8] ([i915#5334])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-WARN][9] ([i915#6367])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-rpls-2/igt@i915_selftest@live@slpc.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - bat-rpls-2:         NOTRUN -> [ABORT][10] ([i915#6687])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@kms_addfb_basic@basic-x-tiled-legacy:
    - bat-dg1-5:          NOTRUN -> [SKIP][11] ([i915#4212]) +7 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg1-5:          NOTRUN -> [SKIP][12] ([i915#4215])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-dg2-11:         NOTRUN -> [SKIP][13] ([i915#7828])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg2-11/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - bat-dg1-5:          NOTRUN -> [SKIP][14] ([i915#7828]) +8 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-dg1-5:          NOTRUN -> [SKIP][15] ([i915#4103] / [i915#4213]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-dg1-5:          NOTRUN -> [SKIP][16] ([fdo#109285])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
    - bat-dg2-8:          [PASS][17] -> [FAIL][18] ([i915#7932])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html

  * igt@kms_psr@sprite_plane_onoff:
    - bat-dg1-5:          NOTRUN -> [SKIP][19] ([i915#1072] / [i915#4078]) +3 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@kms_psr@sprite_plane_onoff.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-dg1-5:          NOTRUN -> [SKIP][20] ([i915#3555] / [i915#4579])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-read:
    - bat-dg1-5:          NOTRUN -> [SKIP][21] ([i915#3708]) +3 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@prime_vgem@basic-fence-read.html

  * igt@prime_vgem@basic-gtt:
    - bat-dg1-5:          NOTRUN -> [SKIP][22] ([i915#3708] / [i915#4077]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg1-5/igt@prime_vgem@basic-gtt.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@basic-rte:
    - {bat-mtlp-8}:       [ABORT][23] ([i915#7953]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/bat-mtlp-8/igt@i915_pm_rpm@basic-rte.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-mtlp-8/igt@i915_pm_rpm@basic-rte.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-2:         [ABORT][25] ([i915#4983] / [i915#7461] / [i915#7913] / [i915#8347]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/bat-rpls-2/igt@i915_selftest@live@reset.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-rpls-2/igt@i915_selftest@live@reset.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-1:         [DMESG-WARN][27] ([i915#6367]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/bat-rpls-1/igt@i915_selftest@live@slpc.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-rpls-1/igt@i915_selftest@live@slpc.html

  * igt@i915_selftest@live@workarounds:
    - bat-dg2-11:         [INCOMPLETE][29] ([i915#7913]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/bat-dg2-11/igt@i915_selftest@live@workarounds.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg2-11/igt@i915_selftest@live@workarounds.html

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1:
    - bat-dg2-8:          [FAIL][31] ([i915#7932]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-1.html

  
#### Warnings ####

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-rplp-1:         [ABORT][33] ([i915#4579] / [i915#8260]) -> [SKIP][34] ([i915#3555] / [i915#4579])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/bat-rplp-1/igt@kms_setmode@basic-clone-single-crtc.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/bat-rplp-1/igt@kms_setmode@basic-clone-single-crtc.html

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

  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6645]: https://gitlab.freedesktop.org/drm/intel/issues/6645
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
  [i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
  [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#7953]: https://gitlab.freedesktop.org/drm/intel/issues/7953
  [i915#8260]: https://gitlab.freedesktop.org/drm/intel/issues/8260
  [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7314 -> IGTPW_9083

  CI-20190529: 20190529
  CI_DRM_13208: fa006f7737d7eebd38030e06310ba773d95a5960 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9083: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/index.html
  IGT_7314: ab70dfcdecf93a17fcaddb774855f726325fa0dd @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


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

+igt@kms_vrr@flipline
+igt@kms_vrr@flip-basic
+igt@kms_vrr@flip-dpms
+igt@kms_vrr@flip-suspend
+igt@kms_vrr@negative-basic

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH] [i-g-t] tests/amdgpu/amd_vrr_range: add vrr range check for display connected
  2023-05-31 18:36 [igt-dev] [PATCH] [i-g-t] tests/amdgpu/amd_vrr_range: add vrr range check for display connected Hersen Wu
  2023-05-31 19:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2023-05-31 23:05 ` Alex Hung
  2023-06-02  9:21 ` [igt-dev] ✓ Fi.CI.IGT: success for " Patchwork
  2 siblings, 0 replies; 4+ messages in thread
From: Alex Hung @ 2023-05-31 23:05 UTC (permalink / raw)
  To: Hersen Wu, igt-dev, rodrigo.siqueira, aurabindo.pillai,
	stylon.wang, hamza.mahfooz

Reviewed-by: Alex Hung <alex.hung@amd.com>

On 2023-05-31 12:36, Hersen Wu wrote:
> Add VRR test for display connected by removing hard coded connector type.
> 
> Add debugfs to allow read eDP EDID for each display detection. AMD Linux
> kernel read eDP EDID only one time by default.
> 
> Optimize hard coded EDID to let 2 DP lanes meet timing requirement. Timing
> of current hard coded DP EDID supports 4k@60hz, it needs 4 DP lanes. With
> 2 lane DP display connected, VRR test fails due to number of DP lane
> not meet 4 lanes.
> 
> Signed-off-by: Hersen Wu <hersenxs.wu@amd.com>
> ---
>   lib/igt_amd.c                |  31 ++++
>   lib/igt_amd.h                |   2 +
>   tests/amdgpu/amd_vrr_range.c | 298 ++++++++++++++++++++++-------------
>   3 files changed, 221 insertions(+), 110 deletions(-)
> 
> diff --git a/lib/igt_amd.c b/lib/igt_amd.c
> index 09923101f..8837714f7 100644
> --- a/lib/igt_amd.c
> +++ b/lib/igt_amd.c
> @@ -1111,6 +1111,37 @@ int igt_amd_read_psr_state(int drm_fd, char *connector_name)
>   	return strtol(buf, NULL, 10);
>   }
>   
> +/**
> + * igt_amd_allow_edp_hotplug_detect: notify kernel read edp edid all the time
> + * @drm_fd: DRM file descriptor
> + * @connector_name: The connector's name
> + * @enable: allow or disable kernel read eDP EDID for each display detection
> + * example usage: echo 0x1 >
> + * /sys/kernel/debug/dri/0/eDP-1/allow_edp_hotplug_detection
> + */
> +void igt_amd_allow_edp_hotplug_detect(int drm_fd, char *connector_name, bool enable)
> +{
> +	int fd, hpd_fd, wr_len;
> +	const char *allow_hotplug_detect = "1";
> +	const char *dis_allow_hotplug_detect = "0";
> +
> +	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +	hpd_fd = openat(fd, DEBUGFS_ALLOW_EDP_HOTPLUG_DETECT, O_WRONLY);
> +	close(fd);
> +	igt_assert(hpd_fd >= 0);
> +
> +	if (enable) {
> +		wr_len = write(hpd_fd, allow_hotplug_detect, strlen(allow_hotplug_detect));
> +		igt_assert_eq(wr_len, strlen(allow_hotplug_detect));
> +	} else {
> +		wr_len = write(hpd_fd, dis_allow_hotplug_detect, strlen(dis_allow_hotplug_detect));
> +		igt_assert_eq(wr_len, strlen(dis_allow_hotplug_detect));
> +	}
> +
> +	close(hpd_fd);
> +}
> +
>   /**
>    * @brief check if AMDGPU DM visual confirm debugfs interface entry exist and defined
>    *
> diff --git a/lib/igt_amd.h b/lib/igt_amd.h
> index 428bfe6f7..d57390405 100644
> --- a/lib/igt_amd.h
> +++ b/lib/igt_amd.h
> @@ -48,6 +48,7 @@
>   #define MAX_SUPPORTED_ILR 8
>   #define DEBUGFS_EDP_PSR_CAP	"psr_capability"
>   #define DEBUGFS_EDP_PSR_STATE	"psr_state"
> +#define DEBUGFS_ALLOW_EDP_HOTPLUG_DETECT "allow_edp_hotplug_detection"
>   
>   /* amdgpu DM interface entries */
>   #define DEBUGFS_DM_VISUAL_CONFIRM "amdgpu_dm_visual_confirm"
> @@ -187,6 +188,7 @@ bool igt_amd_psr_support_sink(int drm_fd, char *connector_name, enum psr_mode mo
>   bool igt_amd_psr_support_drv(int drm_fd, char *connector_name, enum psr_mode mode);
>   bool igt_amd_output_has_psr_state(int drm_fd, char *connector_name);
>   int  igt_amd_read_psr_state(int drm_fd, char *connector_name);
> +void igt_amd_allow_edp_hotplug_detect(int drm_fd, char *connector_name, bool enable);
>   
>   /* DM interface helpers */
>   bool igt_amd_has_visual_confirm(int drm_fd);
> diff --git a/tests/amdgpu/amd_vrr_range.c b/tests/amdgpu/amd_vrr_range.c
> index 2f27296dd..3f8f23e9a 100644
> --- a/tests/amdgpu/amd_vrr_range.c
> +++ b/tests/amdgpu/amd_vrr_range.c
> @@ -27,11 +27,14 @@
>   
>   IGT_TEST_DESCRIPTION("Test EDID parsing and debugfs reporting on Freesync displays");
>   
> +/* Maximumm pipes on any AMD ASIC. */
> +#define MAX_PIPES 6
> +
>   /* Common test data. */
>   typedef struct data {
>   	igt_display_t display;
>   	igt_plane_t *primary;
> -	igt_output_t *output;
> +	igt_output_t *output[MAX_PIPES];
>   	int fd;
>   } data_t;
>   
> @@ -53,45 +56,46 @@ struct {
>   	const range_t range;
>   } edid_database[] = {
>   	{
> -		/* DP EDID from Benq EL-2870u */
> -		"Benq EL-2870u DP",
> +		/* EDID Version 1.4. Timing requires 2 DP lanes. */
> +		"External DP",
>   		DRM_MODE_CONNECTOR_DisplayPort,
>   		{
>   		0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
> -		0x09, 0xd1, 0x49, 0x79, 0x45, 0x54, 0x00, 0x00,
> -		0x0c, 0x1e, 0x01, 0x04, 0xb5, 0x3e, 0x22, 0x78,
> -		0x3f, 0x08, 0xa5, 0xa2, 0x57, 0x4f, 0xa2, 0x28,
> -		0x0f, 0x50, 0x54, 0xa5, 0x6b, 0x80, 0xd1, 0xc0,
> -		0x81, 0xc0, 0x81, 0x00, 0x81, 0x80, 0xa9, 0xc0,
> -		0xb3, 0x00, 0xa9, 0x40, 0x01, 0x01, 0x4d, 0xd0,
> -		0x00, 0xa0, 0xf0, 0x70, 0x3e, 0x80, 0x30, 0x20,
> -		0x35, 0x00, 0x6d, 0x55, 0x21, 0x00, 0x00, 0x1a,
> -		0x00, 0x00, 0x00, 0xff, 0x00, 0x46, 0x33, 0x4c,
> -		0x30, 0x34, 0x33, 0x33, 0x33, 0x53, 0x4c, 0x30,
> -		0x0a, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x28,
> -		0x3c, 0x87, 0x87, 0x3c, 0x01, 0x0a, 0x20, 0x20,
> -		0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
> -		0x00, 0x42, 0x65, 0x6e, 0x51, 0x20, 0x45, 0x4c,
> -		0x32, 0x38, 0x37, 0x30, 0x55, 0x0a, 0x01, 0xa8,
> -		0x02, 0x03, 0x2e, 0xf1, 0x56, 0x61, 0x60, 0x5d,
> -		0x5e, 0x5f, 0x10, 0x05, 0x04, 0x03, 0x02, 0x07,
> -		0x06, 0x0f, 0x1f, 0x20, 0x21, 0x22, 0x14, 0x13,
> -		0x12, 0x16, 0x01, 0x23, 0x09, 0x07, 0x07, 0x83,
> -		0x01, 0x00, 0x00, 0xe3, 0x05, 0xc0, 0x00, 0xe6,
> -		0x06, 0x05, 0x01, 0x5a, 0x53, 0x44, 0x02, 0x3a,
> +		0x06, 0xb3, 0xaf, 0x24, 0x01, 0x01, 0x01, 0x01,
> +		0x00, 0x1d, 0x01, 0x04, 0x80, 0x35, 0x1e, 0x78,
> +		0x2b, 0x51, 0xb5, 0xa4, 0x54, 0x4f, 0xa0, 0x26,
> +		0x0d, 0x50, 0x54, 0xbf, 0xcf, 0x00, 0x81, 0x40,
> +		0x81, 0x80, 0x95, 0x00, 0x71, 0x4f, 0x81, 0xc0,
> +		0xb3, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3a,
>   		0x80, 0x18, 0x71, 0x38, 0x2d, 0x40, 0x58, 0x2c,
> -		0x45, 0x00, 0x6d, 0x55, 0x21, 0x00, 0x00, 0x1e,
> -		0x56, 0x5e, 0x00, 0xa0, 0xa0, 0xa0, 0x29, 0x50,
> -		0x30, 0x20, 0x35, 0x00, 0x6d, 0x55, 0x21, 0x00,
> -		0x00, 0x1a, 0x8c, 0x64, 0x00, 0x50, 0xf0, 0x70,
> -		0x1f, 0x80, 0x08, 0x20, 0x18, 0x04, 0x6d, 0x55,
> -		0x21, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00,
> +		0x45, 0x00, 0x0f, 0x28, 0x21, 0x00, 0x00, 0x1e,
> +		0xfc, 0x7e, 0x80, 0x88, 0x70, 0x38, 0x12, 0x40,
> +		0x18, 0x20, 0x35, 0x00, 0x0f, 0x28, 0x21, 0x00,
> +		0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x30,
> +		0x90, 0x1e, 0xb4, 0x22, 0x01, 0x0a, 0x20, 0x20,
> +		0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
> +		0x00, 0x41, 0x53, 0x55, 0x53, 0x20, 0x56, 0x50,
> +		0x32, 0x34, 0x39, 0x0a, 0x20, 0x20, 0x01, 0x91,
> +		0x02, 0x03, 0x2d, 0xf1, 0x4f, 0x01, 0x03, 0x04,
> +		0x13, 0x1f, 0x12, 0x02, 0x11, 0x90, 0x0e, 0x0f,
> +		0x1d, 0x1e, 0x3f, 0x40, 0x23, 0x09, 0x07, 0x07,
> +		0x83, 0x01, 0x00, 0x00, 0x67, 0x03, 0x0c, 0x00,
> +		0x10, 0x00, 0x00, 0x44, 0x68, 0x1a, 0x00, 0x00,
> +		0x01, 0x01, 0x30, 0x90, 0xe6, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>   		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
>   		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> -		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16
>   		},
> -		{40, 60},
> +		{48, 144},
>   	},
> +
>   	{
>   		/* HDMI EDID from ASUS VP249QGR */
>   		"ASUS VP249QGR HDMI",
> @@ -132,29 +136,63 @@ struct {
>   		},
>   		{48, 144},
>   	},
> +
> +	{
> +		/* EDID Version 1.4. Timing requires 2 DP lanes. */
> +		"eDP",
> +		DRM_MODE_CONNECTOR_eDP,
> +		{
> +		0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
> +		0x06, 0xb3, 0xaf, 0x24, 0x01, 0x01, 0x01, 0x01,
> +		0x00, 0x1d, 0x01, 0x04, 0x80, 0x35, 0x1e, 0x78,
> +		0x2b, 0x51, 0xb5, 0xa4, 0x54, 0x4f, 0xa0, 0x26,
> +		0x0d, 0x50, 0x54, 0xbf, 0xcf, 0x00, 0x81, 0x40,
> +		0x81, 0x80, 0x95, 0x00, 0x71, 0x4f, 0x81, 0xc0,
> +		0xb3, 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x3a,
> +		0x80, 0x18, 0x71, 0x38, 0x2d, 0x40, 0x58, 0x2c,
> +		0x45, 0x00, 0x0f, 0x28, 0x21, 0x00, 0x00, 0x1e,
> +		0xfc, 0x7e, 0x80, 0x88, 0x70, 0x38, 0x12, 0x40,
> +		0x18, 0x20, 0x35, 0x00, 0x0f, 0x28, 0x21, 0x00,
> +		0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x30,
> +		0x90, 0x1e, 0xb4, 0x22, 0x01, 0x0a, 0x20, 0x20,
> +		0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
> +		0x00, 0x41, 0x53, 0x55, 0x53, 0x20, 0x56, 0x50,
> +		0x32, 0x34, 0x39, 0x0a, 0x20, 0x20, 0x01, 0x91,
> +		0x02, 0x03, 0x2d, 0xf1, 0x4f, 0x01, 0x03, 0x04,
> +		0x13, 0x1f, 0x12, 0x02, 0x11, 0x90, 0x0e, 0x0f,
> +		0x1d, 0x1e, 0x3f, 0x40, 0x23, 0x09, 0x07, 0x07,
> +		0x83, 0x01, 0x00, 0x00, 0x67, 0x03, 0x0c, 0x00,
> +		0x10, 0x00, 0x00, 0x44, 0x68, 0x1a, 0x00, 0x00,
> +		0x01, 0x01, 0x30, 0x90, 0xe6, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16
> +		},
> +		{48, 144},
> +	},
>   };
>   
> -/* Common test setup. */
> -static void test_init(data_t *data, uint32_t connector_type)
> +static void test_init(data_t *data)
>   {
>   	igt_display_t *display = &data->display;
> +	int i;
>   
> -	igt_display_reset(display);
> +	for_each_pipe(display, i) {
> +		igt_output_t *output = &display->outputs[i];
>   
> -	/* find connected outputs */
> -	data->output = NULL;
> -	for (int i=0; i < data->display.n_outputs; ++i) {
> -		drmModeConnector *connector = data->display.outputs[i].config.connector;
> -		if (connector->connection == DRM_MODE_CONNECTED &&
> -			connector->connector_type == connector_type) {
> -			data->output = &data->display.outputs[i];
> -		}
> +		data->output[i] = output;
>   	}
> -	igt_assert_f(data->output, "Requires connected output\n");
>   
> +	igt_display_reset(display);
>   }
>   
> -/* Common test cleanup. */
>   static void test_fini(data_t *data)
>   {
>   	igt_display_reset(&data->display);
> @@ -185,6 +223,7 @@ static range_t get_freesync_range(data_t *data, igt_output_t *output)
>   	fd = igt_debugfs_connector_dir(data->fd, output->name, O_RDONLY);
>   	igt_assert(fd >= 0);
>   
> +	/* example usage: cat /sys/kernel/debug/dri/0/DP-1/vrr_range */
>   	res = igt_debugfs_simple_read(fd, "vrr_range", buf, sizeof(buf));
>   	igt_require(res > 0);
>   
> @@ -199,56 +238,86 @@ static range_t get_freesync_range(data_t *data, igt_output_t *output)
>   	return range;
>   }
>   
> -static void trigger_edid_parse(data_t *data, uint32_t test_flags)
> +static void trigger_edid_parse(data_t *data, igt_output_t *output, uint32_t test_flags)
>   {
>   	if (test_flags & TEST_SUSPEND)
>   		igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
>   					      SUSPEND_TEST_NONE);
>   	else
> -		igt_amd_trigger_hotplug(data->fd, data->output->name);
> +		igt_amd_trigger_hotplug(data->fd, output->name);
>   
>   	/* more safe margin until resume and hotplug is completed */
>   	usleep(1500000);
>   }
>   
>   /* Check if EDID parsing is correctly reporting Freesync capability
> - * by overriding EDID with ones from golden sample. Display under test
> - * must still support Freesync.
> + * by overriding EDID with ones from golden sample.
>    */
> -static void test_freesync_parsing(data_t *data, uint32_t connector_type,
> -		uint32_t test_flags)
> +static void test_freesync_parsing_base(data_t *data, uint32_t test_flags)
>   {
>   	const struct edid *edid;
>   	range_t range, expected_range;
> -	int i;
> +	igt_output_t *output;
> +	int i, j, test_conn_cnt = 0;
>   
> -	test_init(data, connector_type);
> +	test_init(data);
>   
>   	igt_amd_require_hpd(&data->display, data->fd);
>   
> -	/* find a test EDID */
> -	i = find_test_edid_index(connector_type);
> -	edid = (const struct edid *)edid_database[i].edid;
> -	expected_range = edid_database[i].range;
> +	for_each_pipe(&data->display, i) {
> +		/* setup the output */
> +		output = data->output[i];
> +		if (!output || !igt_output_is_connected(output))
> +			continue;
> +
> +		/* find a test EDID */
> +		j = find_test_edid_index(output->config.connector->connector_type);
> +
> +		edid = (const struct edid *)edid_database[j].edid;
> +		expected_range = edid_database[j].range;
> +
> +		/* eDP allow read edid for each display detection */
> +		if (output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
> +			igt_amd_allow_edp_hotplug_detect(data->fd, output->name, true);
> +
> +		/* force to use hard coded VRR EDID */
> +		kmstest_force_edid(data->fd, output->config.connector, edid);
>   
> -	kmstest_force_edid(data->fd, data->output->config.connector, edid);
> +		trigger_edid_parse(data, output, test_flags);
>   
> -	trigger_edid_parse(data, test_flags);
> +		range = get_freesync_range(data, output);
>   
> -	range = get_freesync_range(data, data->output);
> +		/* undo EDID override. re-parse EDID of display */
> +		kmstest_force_edid(data->fd, output->config.connector, NULL);
>   
> -	/* undo EDID override and trigger a re-parsing of EDID */
> -	kmstest_force_edid(data->fd, data->output->config.connector, NULL);
> -	igt_amd_trigger_hotplug(data->fd, data->output->name);
> +		igt_amd_trigger_hotplug(data->fd, output->name);
> +
> +		/* eDP dis-allow read edid for each display detection */
> +		if (output->config.connector->connector_type == DRM_MODE_CONNECTOR_eDP)
> +			igt_amd_allow_edp_hotplug_detect(data->fd, output->name, false);
> +
> +		test_conn_cnt++;
> +
> +		igt_assert_f(range.min == expected_range.min &&
> +				range.max == expected_range.max,
> +				"Expecting Freesync range %d-%d, got %d-%d\n",
> +				expected_range.min, expected_range.max,
> +				range.min, range.max);
> +		igt_info("%s Freesync range: %d-%d\n", output->name, range.min, range.max);
> +	}
>   
>   	test_fini(data);
> +	igt_skip_on(test_conn_cnt == 0);
> +}
> +
> +static inline void test_freesync_parsing(data_t *data)
> +{
> +	test_freesync_parsing_base(data, TEST_NONE);
> +}
>   
> -	igt_assert_f(range.min == expected_range.min &&
> -			range.max == expected_range.max,
> -			"Expecting Freesync range %d-%d, got %d-%d\n",
> -			expected_range.min, expected_range.max,
> -			range.min, range.max);
> -	igt_info("Freesync range: %d-%d\n", range.min, range.max);
> +static inline void test_freesync_parsing_suspend(data_t *data)
> +{
> +	test_freesync_parsing_base(data, TEST_SUSPEND);
>   }
>   
>   /* Returns true if an output supports VRR. */
> @@ -260,32 +329,57 @@ static bool has_vrr(igt_output_t *output)
>   
>   /* More relaxed checking on Freesync capability.
>    * Only checks if frame rate range is within legal range.
> + * Display under test MUST be VRR capable.
>    */
> -static void test_freesync_range(data_t *data, uint32_t connector_type,
> -		uint32_t test_flags)
> +static void test_freesync_range_base(data_t *data, uint32_t test_flags)
>   {
>   	range_t range;
> +	igt_output_t *output;
> +	int i, test_conn_cnt = 0;
>   
> -	test_init(data, connector_type);
> +	test_init(data);
>   
>   	igt_amd_require_hpd(&data->display, data->fd);
>   
> -	igt_assert_f(has_vrr(data->output),
> -			"connector %s is not VRR capable\n",
> -			data->output->name);
> +	for_each_pipe(&data->display, i) {
> +		/* setup the output */
> +		output = data->output[i];
> +		if (!output || !igt_output_is_connected(output))
> +			continue;
> +
> +		igt_debug_on_f(!has_vrr(output), "Requires output supports VRR\n");
> +
> +		if (!has_vrr(output)) {
> +			igt_info("connector %s is not VRR capable\n", output->name);
> +			continue;
> +		}
> +
> +		trigger_edid_parse(data, output, test_flags);
> +
> +		range = get_freesync_range(data, output);
>   
> -	trigger_edid_parse(data, test_flags);
> +		igt_assert_f(range.min != 0 &&
> +				range.max != 0 &&
> +				range.max - range.min > 10,
> +				"Invalid Freesync range %d-%d\n",
> +				range.min, range.max);
> +		igt_info("%s Freesync range: %d-%d\n", output->name, range.min, range.max);
>   
> -	range = get_freesync_range(data, data->output);
> +		test_conn_cnt++;
> +	}
>   
>   	test_fini(data);
> +	igt_skip_on(test_conn_cnt == 0);
> +}
> +
> +static inline void test_freesync_range(data_t *data)
> +{
> +	test_freesync_range_base(data, TEST_NONE);
> +}
>   
> -	igt_assert_f(range.min != 0 &&
> -			range.max != 0 &&
> -			range.max - range.min > 10,
> -			"Invalid Freesync range %d-%d\n",
> -			range.min, range.max);
> -	igt_info("Freesync range: %d-%d\n", range.min, range.max);
> +static inline void test_freesync_range_suspend(data_t *data)
> +{
> +	test_freesync_range_base(data, TEST_SUSPEND);
>   }
>   
>   igt_main
> @@ -307,33 +401,17 @@ igt_main
>   		igt_display_require_output(&data.display);
>   	}
>   
> -	igt_describe("Freesync EDID parsing on HDMI");
> -	igt_subtest("freesync-parsing-hdmi") test_freesync_parsing(&data,
> -			DRM_MODE_CONNECTOR_HDMIA, TEST_NONE);
> -	igt_describe("Freesync EDID parsing on DP");
> -	igt_subtest("freesync-parsing-dp") test_freesync_parsing(&data,
> -			DRM_MODE_CONNECTOR_DisplayPort, TEST_NONE);
> -
> -	igt_describe("Freesync EDID parsing on HDMI after suspend");
> -	igt_subtest("freesync-parsing-hdmi-suspend") test_freesync_parsing(&data,
> -			DRM_MODE_CONNECTOR_HDMIA, TEST_SUSPEND);
> -	igt_describe("Freesync EDID parsing on DP after suspend");
> -	igt_subtest("freesync-parsing-dp-suspend") test_freesync_parsing(&data,
> -			DRM_MODE_CONNECTOR_DisplayPort, TEST_SUSPEND);
> -
> -	igt_describe("Freesync range on HDMI");
> -	igt_subtest("freesync-range-hdmi") test_freesync_range(&data,
> -			DRM_MODE_CONNECTOR_HDMIA, TEST_NONE);
> -	igt_describe("Freesync range on DP");
> -	igt_subtest("freesync-range-dp") test_freesync_range(&data,
> -			DRM_MODE_CONNECTOR_DisplayPort, TEST_NONE);
> -
> -	igt_describe("Freesync range on HDMI after suspend");
> -	igt_subtest("freesync-range-hdmi-suspend") test_freesync_range(&data,
> -			DRM_MODE_CONNECTOR_HDMIA, TEST_SUSPEND);
> -	igt_describe("Freesync range on DP after suspend");
> -	igt_subtest("freesync-range-dp-suspend") test_freesync_range(&data,
> -			DRM_MODE_CONNECTOR_DisplayPort, TEST_SUSPEND);
> +	igt_describe("Hard coded Freesync EDID parsing");
> +	igt_subtest("freesync-parsing") test_freesync_parsing(&data);
> +
> +	igt_describe("Hard coded Freesync EDID parsing after suspend");
> +	igt_subtest("freesync-parsing-suspend") test_freesync_parsing_suspend(&data);
> +
> +	igt_describe("Freesync range from display");
> +	igt_subtest("freesync-range") test_freesync_range(&data);
> +
> +	igt_describe("Freesync range from display after suspend");
> +	igt_subtest("freesync-range-suspend") test_freesync_range_suspend(&data);
>   
>   	igt_fixture
>   	{

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

* [igt-dev] ✓ Fi.CI.IGT: success for tests/amdgpu/amd_vrr_range: add vrr range check for display connected
  2023-05-31 18:36 [igt-dev] [PATCH] [i-g-t] tests/amdgpu/amd_vrr_range: add vrr range check for display connected Hersen Wu
  2023-05-31 19:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
  2023-05-31 23:05 ` [igt-dev] [PATCH] [i-g-t] " Alex Hung
@ 2023-06-02  9:21 ` Patchwork
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2023-06-02  9:21 UTC (permalink / raw)
  To: Hersen Wu; +Cc: igt-dev

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

== Series Details ==

Series: tests/amdgpu/amd_vrr_range: add vrr range check for display connected
URL   : https://patchwork.freedesktop.org/series/118667/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13208_full -> IGTPW_9083_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Missing    (1): shard-rkl0 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-deadline:
    - shard-glk:          NOTRUN -> [FAIL][1] ([i915#2846])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk7/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-glk:          [PASS][2] -> [FAIL][3] ([i915#2842]) +1 similar issue
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-glk6/igt@gem_exec_fair@basic-pace@vcs0.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk2/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_lmem_swapping@parallel-random:
    - shard-glk:          NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#4613])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk3/igt@gem_lmem_swapping@parallel-random.html

  * igt@gem_ppgtt@blt-vs-render-ctx0:
    - shard-snb:          [PASS][5] -> [FAIL][6] ([i915#8295])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-snb4/igt@gem_ppgtt@blt-vs-render-ctx0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-snb6/igt@gem_ppgtt@blt-vs-render-ctx0.html

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#3886])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk4/igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_content_protection@srm:
    - shard-glk:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#4579]) +1 similar issue
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk7/igt@kms_content_protection@srm.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-snb:          NOTRUN -> [SKIP][9] ([fdo#109271]) +44 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-snb4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_plane_scaling@plane-upscale-with-modifiers-20x20@pipe-b-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#4579]) +14 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-snb6/igt@kms_plane_scaling@plane-upscale-with-modifiers-20x20@pipe-b-vga-1.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
    - shard-glk:          NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#658])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk7/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr@psr2_sprite_blt:
    - shard-glk:          NOTRUN -> [SKIP][12] ([fdo#109271]) +51 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk2/igt@kms_psr@psr2_sprite_blt.html

  
#### Possible fixes ####

  * igt@gem_eio@hibernate:
    - {shard-tglu}:       [ABORT][13] ([i915#7975] / [i915#8213] / [i915#8398]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-tglu-10/igt@gem_eio@hibernate.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-tglu-2/igt@gem_eio@hibernate.html

  * igt@gem_exec_fair@basic-deadline:
    - {shard-rkl}:        [FAIL][15] ([i915#2846]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-rkl-7/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none@bcs0:
    - {shard-rkl}:        [FAIL][17] ([i915#2842]) -> [PASS][18] +2 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-rkl-4/igt@gem_exec_fair@basic-none@bcs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-rkl-6/igt@gem_exec_fair@basic-none@bcs0.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-snb:          [ABORT][19] ([i915#4528]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rpm@modeset-lpsp-stress:
    - {shard-dg1}:        [SKIP][21] ([i915#1397]) -> [PASS][22] +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-dg1-17/igt@i915_pm_rpm@modeset-lpsp-stress.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-dg1-19/igt@i915_pm_rpm@modeset-lpsp-stress.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - {shard-rkl}:        [SKIP][23] ([i915#1397]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-rkl-1/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [FAIL][25] ([i915#2346]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-apl:          [FAIL][27] ([i915#2346]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@single-move@pipe-b:
    - {shard-dg1}:        [INCOMPLETE][29] ([i915#8011] / [i915#8347]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-dg1-19/igt@kms_cursor_legacy@single-move@pipe-b.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-dg1-16/igt@kms_cursor_legacy@single-move@pipe-b.html

  * igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][31] ([i915#79]) -> [PASS][32] +2 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html

  * igt@perf_pmu@busy-idle-check-all@vecs0:
    - {shard-dg1}:        [FAIL][33] ([i915#4521]) -> [PASS][34] +2 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-dg1-18/igt@perf_pmu@busy-idle-check-all@vecs0.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-dg1-18/igt@perf_pmu@busy-idle-check-all@vecs0.html

  
#### Warnings ####

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [FAIL][35] ([i915#4275]) -> [SKIP][36] ([fdo#109271])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13208/shard-apl3/igt@i915_pm_dc@dc9-dpms.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/shard-apl6/igt@i915_pm_dc@dc9-dpms.html

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

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [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#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4521]: https://gitlab.freedesktop.org/drm/intel/issues/4521
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [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#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6493]: https://gitlab.freedesktop.org/drm/intel/issues/6493
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6806]: https://gitlab.freedesktop.org/drm/intel/issues/6806
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
  [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7941]: https://gitlab.freedesktop.org/drm/intel/issues/7941
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292
  [i915#8295]: https://gitlab.freedesktop.org/drm/intel/issues/8295
  [i915#8311]: https://gitlab.freedesktop.org/drm/intel/issues/8311
  [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
  [i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
  [i915#8398]: https://gitlab.freedesktop.org/drm/intel/issues/8398
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
  [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7314 -> IGTPW_9083
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_13208: fa006f7737d7eebd38030e06310ba773d95a5960 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9083: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9083/index.html
  IGT_7314: ab70dfcdecf93a17fcaddb774855f726325fa0dd @ 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_9083/index.html

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

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

end of thread, other threads:[~2023-06-02  9:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-31 18:36 [igt-dev] [PATCH] [i-g-t] tests/amdgpu/amd_vrr_range: add vrr range check for display connected Hersen Wu
2023-05-31 19:09 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2023-05-31 23:05 ` [igt-dev] [PATCH] [i-g-t] " Alex Hung
2023-06-02  9:21 ` [igt-dev] ✓ Fi.CI.IGT: success for " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.