All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t] tests/amdgpu: Add amd_link_settings test
@ 2021-09-16 13:27 Stylon Wang
  2021-09-16 15:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Stylon Wang @ 2021-09-16 13:27 UTC (permalink / raw)
  To: igt-dev
  Cc: nicholas.kazlauskas, sunpeng.li, rodrigo.siqueira, Eryk Brol,
	Stylon Wang

From: Eryk Brol <eryk.brol@amd.com>

[Why]
Having a test that iterates through different link
settings and performs link training with them is useful
and currently missing from IGT.

[How]
Add a link settings test and its required helper functions.

Signed-off-by: Stylon Wang <stylon.wang@amd.com>
---
 lib/igt_amd.c                    | 119 +++++++++++++
 lib/igt_amd.h                    |  44 +++++
 tests/amdgpu/amd_link_settings.c | 280 +++++++++++++++++++++++++++++++
 tests/amdgpu/meson.build         |   1 +
 4 files changed, 444 insertions(+)
 create mode 100644 tests/amdgpu/amd_link_settings.c

diff --git a/lib/igt_amd.c b/lib/igt_amd.c
index 4ffe7cf2..f1bfb421 100644
--- a/lib/igt_amd.c
+++ b/lib/igt_amd.c
@@ -323,3 +323,122 @@ int igt_amd_trigger_hotplug(int drm_fd, char *connector_name)
 
 	return 0;
 }
+
+/*
+ * igt_amd_read_link_settings:
+ * @drm_fd: DRM file descriptor
+ * @connector_name: The name of the connector to read the link_settings
+ * @lane_count: Lane count
+ * @link_rate: Link rate
+ * @link_spread: Spread spectrum
+ *
+ * The indices of @lane_count, @link_rate, and @link_spread correspond to the
+ * values of "Current", "Verified", "Reported", and "Preferred", respectively.
+ */
+void igt_amd_read_link_settings(
+	int drm_fd, char *connector_name, int *lane_count, int *link_rate, int *link_spread)
+{
+	int fd, ret;
+	char buf[101];
+	int i = 0;
+	char *token_end, *val_token;
+
+	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
+	if (fd < 0) {
+		igt_info("Could not open connector %s debugfs directory\n",
+			 connector_name);
+		return;
+	}
+	ret = igt_debugfs_simple_read(fd, DEBUGFS_DP_LINK_SETTINGS, buf, sizeof(buf));
+	igt_assert_f(ret >= 0, "Reading %s for connector %s failed.\n",
+		     DEBUGFS_DP_LINK_SETTINGS, connector_name);
+
+	close(fd);
+
+	/* Between current, verified, reported, and preferred are null terminators,
+	 * replace them with ';' to use as the delimiter for strtok. */
+	while (strlen(buf) < sizeof(buf) - 1 && buf[strlen(buf)] == '\0')
+		buf[strlen(buf)] = ';';
+
+	/* Parse values read from file. */
+	for (char *token = strtok_r(buf, ";", &token_end);
+	     token != NULL;
+	     token = strtok_r(NULL, ";", &token_end))
+	{
+		strtok_r(token, ": ", &val_token);
+		lane_count[i] = strtol(val_token, &val_token, 10);
+		link_rate[i] = strtol(val_token, &val_token, 10);
+		link_spread[i] = strtol(val_token, &val_token, 10);
+		i++;
+
+		if (i > 3) return;
+	}
+}
+
+/*
+ * igt_amd_write_link_settings:
+ * @drm_fd: DRM file descriptor
+ * @connector_name: The name of the connector to write the link_settings
+ * @lane_count: Lane count
+ * @link_rate: Link rate
+ * @training_type: Link training type
+ */
+void igt_amd_write_link_settings(
+	int drm_fd, char *connector_name, enum dc_lane_count lane_count,
+	enum dc_link_rate link_rate, enum dc_link_training_type training_type)
+{
+	int ls_fd, fd;
+	const int buf_len = 40;
+	char buf[buf_len];
+	int wr_len = 0;
+
+	memset(buf, '\0', sizeof(char) * buf_len);
+
+	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
+	igt_assert(fd >= 0);
+	ls_fd = openat(fd, DEBUGFS_DP_LINK_SETTINGS, O_WRONLY);
+	close(fd);
+	igt_assert(ls_fd >= 0);
+
+	/* dp_link_settings_write expects a \n at the end or else it will
+	 * dereference a null pointer.
+	 */
+	if (training_type == LINK_TRAINING_DEFAULT)
+		snprintf(buf, sizeof(buf), "%02x %02x \n", lane_count, link_rate);
+	else
+		snprintf(buf, sizeof(buf), "%02x %02x %02x \n", lane_count,
+			 link_rate, training_type);
+
+	wr_len = write(ls_fd, buf, strlen(buf));
+	igt_assert_eq(wr_len, strlen(buf));
+
+	close(ls_fd);
+}
+
+/**
+ * igt_amd_output_has_link_settings: check if connector has link_settings debugfs entry
+ * @drm_fd: DRM file descriptor
+ * @connector_name: The connector's name, on which we're reading the status
+ */
+bool igt_amd_output_has_link_settings(int drm_fd, char *connector_name)
+{
+	int fd;
+	int res;
+	struct stat stat;
+
+	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
+	if (fd < 0) {
+		igt_info("output %s: debugfs not found\n", connector_name);
+		return false;
+	}
+
+	res = fstatat(fd, DEBUGFS_DP_LINK_SETTINGS, &stat, 0);
+	if (res != 0) {
+		igt_info("output %s: %s debugfs not supported\n", connector_name, DEBUGFS_DP_LINK_SETTINGS);
+		close(fd);
+		return false;
+	}
+
+	close(fd);
+	return true;
+}
diff --git a/lib/igt_amd.h b/lib/igt_amd.h
index d333ad9c..e5bdbf33 100644
--- a/lib/igt_amd.h
+++ b/lib/igt_amd.h
@@ -27,8 +27,44 @@
 #include "igt.h"
 #include "igt_fb.h"
 
+#define DEBUGFS_DP_LINK_SETTINGS "link_settings"
 #define DEBUGFS_HPD_TRIGGER "trigger_hotplug"
 
+enum dc_lane_count {
+	LANE_COUNT_UNKNOWN = 0,
+	LANE_COUNT_ONE = 1,
+	LANE_COUNT_TWO = 2,
+	LANE_COUNT_FOUR = 4,
+	LANE_COUNT_EIGHT = 8,
+	LANE_COUNT_DP_MAX = LANE_COUNT_FOUR
+};
+
+/* This is actually a reference clock (27MHz) multiplier
+ * 162MBps bandwidth for 1.62GHz like rate,
+ * 270MBps for 2.70GHz,
+ * 324MBps for 3.24Ghz,
+ * 540MBps for 5.40GHz
+ * 810MBps for 8.10GHz
+ */
+enum dc_link_rate {
+	LINK_RATE_UNKNOWN = 0,
+	LINK_RATE_LOW = 0x06,		// Rate_1 (RBR)	- 1.62 Gbps/Lane
+	LINK_RATE_RATE_2 = 0x08,	// Rate_2		- 2.16 Gbps/Lane
+	LINK_RATE_RATE_3 = 0x09,	// Rate_3		- 2.43 Gbps/Lane
+	LINK_RATE_HIGH = 0x0A,		// Rate_4 (HBR)	- 2.70 Gbps/Lane
+	LINK_RATE_RBR2 = 0x0C,		// Rate_5 (RBR2)- 3.24 Gbps/Lane
+	LINK_RATE_RATE_6 = 0x10,	// Rate_6		- 4.32 Gbps/Lane
+	LINK_RATE_HIGH2 = 0x14,		// Rate_7 (HBR2)- 5.40 Gbps/Lane
+	LINK_RATE_HIGH3 = 0x1E		// Rate_8 (HBR3)- 8.10 Gbps/Lane
+};
+
+enum dc_link_training_type {
+	LINK_TRAINING_DEFAULT = 0,
+	LINK_TRAINING_SLOW = 0,
+	LINK_TRAINING_FAST,
+	LINK_TRAINING_NO_PATTERN
+};
+
 uint32_t igt_amd_create_bo(int fd, uint64_t size);
 void *igt_amd_mmap_bo(int fd, uint32_t handle, uint64_t size, int prot);
 unsigned int igt_amd_compute_offset(unsigned int* swizzle_pattern,
@@ -48,4 +84,12 @@ bool igt_amd_is_tiled(uint64_t modifier);
 void igt_amd_require_hpd(igt_display_t *display, int drm_fd);
 int igt_amd_trigger_hotplug(int drm_fd, char *connector_name);
 
+/* IGT link helper functions */
+void igt_amd_read_link_settings(
+	int drm_fd, char *connector_name, int *lane_count, int *link_rate, int *link_spread);
+void igt_amd_write_link_settings(
+	int drm_fd, char *connector_name, enum dc_lane_count lane_count,
+	enum dc_link_rate link_rate, enum dc_link_training_type training_type);
+bool igt_amd_output_has_link_settings(int drm_fd, char *connector_name);
+
 #endif /* IGT_AMD_H */
diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c
new file mode 100644
index 00000000..7822683d
--- /dev/null
+++ b/tests/amdgpu/amd_link_settings.c
@@ -0,0 +1,280 @@
+/*
+ * Copyright 2020 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "igt.h"
+#include "igt_amd.h"
+
+typedef struct
+{
+	int drm_fd;
+        igt_display_t display;
+        igt_plane_t *primary;
+        igt_output_t *output;
+	igt_fb_t fb;
+	igt_pipe_crc_t *pipe_crc;
+	igt_pipe_t *pipe;
+        enum pipe pipe_id;
+	int connector_type;
+	int w, h;
+	igt_crc_t crc_640_480;
+} data_t;
+
+drmModeModeInfo mode_640_480 = {
+	.name		= "640x480",
+	.vrefresh	= 60,
+	.clock		= 25200,
+
+	.hdisplay	= 640,
+	.hsync_start	= 656,
+	.hsync_end	= 752,
+	.htotal		= 800,
+
+	.vdisplay	= 480,
+	.vsync_start	= 490,
+	.vsync_end	= 492,
+	.vtotal		= 525,
+
+	.flags		= DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+};
+
+const enum dc_lane_count lane_count_values[] =
+{
+	LANE_COUNT_ONE,
+	LANE_COUNT_TWO,
+	LANE_COUNT_FOUR,
+};
+
+const enum dc_link_rate dp_link_rate_values[] =
+{
+	LINK_RATE_LOW,
+	LINK_RATE_HIGH,
+	LINK_RATE_HIGH2,
+	LINK_RATE_HIGH3
+};
+
+const enum dc_link_rate edp_link_rate_values[] =
+{
+	LINK_RATE_LOW,
+	LINK_RATE_HIGH,
+	LINK_RATE_RBR2,
+	LINK_RATE_HIGH2
+};
+
+static void test_fini(data_t *data)
+{
+	igt_pipe_crc_free(data->pipe_crc);
+	igt_display_reset(&data->display);
+}
+
+static void set_all_output_pipe_to_none(data_t *data)
+{
+	igt_output_t *output;
+
+	for_each_connected_output(&data->display, output) {
+		igt_output_set_pipe(output, PIPE_NONE);
+	}
+
+	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+}
+
+static void test_init(data_t *data, igt_output_t *output)
+{
+	enum pipe pipe;
+
+	igt_require(output->config.connector->count_modes >= 1);
+
+	set_all_output_pipe_to_none(data);
+
+	for_each_pipe(&data->display, pipe) {
+		if (igt_pipe_connector_valid(pipe, output)) {
+			data->pipe_id = pipe;
+			break;
+		}
+	}
+
+	data->connector_type = output->config.connector->connector_type;
+
+	igt_require(data->pipe_id != PIPE_NONE);
+
+	data->pipe = &data->display.pipes[data->pipe_id];
+	data->pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe_id, "auto");
+
+	igt_output_set_pipe(output, data->pipe_id);
+
+	data->primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+}
+
+static void run_link_training_config(data_t *data, igt_output_t *output)
+{
+	int lane_count[4], link_rate[4], link_spread[4];
+	int max_lc, max_lr;
+	const int current = 0;
+	const int verified = 1;
+	char *connector_name = output->name;
+	igt_crc_t crc;
+	const enum dc_link_rate *link_rate_values;
+	int num_link_rates;
+	if (data->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
+		link_rate_values = dp_link_rate_values;
+		num_link_rates = ARRAY_SIZE(dp_link_rate_values);
+	} else if (data->connector_type == DRM_MODE_CONNECTOR_eDP) {
+		link_rate_values = edp_link_rate_values;
+		num_link_rates = ARRAY_SIZE(edp_link_rate_values);
+	} else {
+		igt_info("Not a DP or eDP connector\n");
+		return;
+	}
+
+	igt_amd_read_link_settings(data->drm_fd, connector_name, lane_count,
+			           link_rate, link_spread);
+
+	max_lc = lane_count[verified];
+	max_lr = link_rate[verified];
+
+	for (int i = 0; i < ARRAY_SIZE(lane_count_values); i++)
+	{
+		if (lane_count_values[i] > max_lc)
+			continue;
+
+		for (int j = 0; j < num_link_rates; j++)
+		{
+			if (link_rate_values[j] > max_lr)
+				continue;
+
+			/* Write link settings */
+			igt_info("Applying lane count: %d, link rate 0x%02x, on default training\n",
+				  lane_count_values[i], link_rate_values[j]);
+			igt_amd_write_link_settings(data->drm_fd, connector_name,
+						    lane_count_values[i],
+						    link_rate_values[j],
+						    LINK_TRAINING_DEFAULT);
+
+			/* Commit */
+			igt_create_pattern_fb(data->drm_fd, mode_640_480.hdisplay,
+					      mode_640_480.vdisplay, DRM_FORMAT_XRGB8888,
+					      0, &data->fb);
+			igt_plane_set_fb(data->primary, &data->fb);
+			igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+			/* Verify */
+			igt_amd_read_link_settings(data->drm_fd, connector_name,
+						   lane_count, link_rate,
+						   link_spread);
+
+			/* Collect CRC after writing settings */
+			igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
+			igt_assert_crc_equal(&crc, &data->crc_640_480);
+
+			igt_assert(lane_count[current] == lane_count_values[i]);
+			igt_assert(link_rate[current] == link_rate_values[j]);
+
+		}
+	}
+}
+
+static void test_link_training_configs(data_t *data)
+{
+	const drmModeModeInfo *orig_mode;
+	igt_output_t *output;
+	int lane_count[4], link_rate[4], link_spread[4];
+	int orig_lc, orig_lr;
+	const int current = 0;
+
+	igt_enable_connectors(data->drm_fd);
+
+	for_each_connected_output(&data->display, output) {
+		if (!igt_amd_output_has_link_settings(data->drm_fd, output->name)) {
+			igt_info("Skipping output: %s\n", output->name);
+			continue;
+		}
+
+		igt_info("Testing on output: %s\n", output->name);
+
+		/* Init only if display supports link_settings */
+		test_init(data, output);
+
+		orig_mode = igt_output_get_mode(output);
+		igt_assert(orig_mode);
+
+		/* Collect original mode's LC and LR */
+		igt_amd_read_link_settings(data->drm_fd, output->name, lane_count,
+					   link_rate, link_spread);
+		orig_lc = lane_count[current];
+		orig_lr = link_rate[current];
+
+		/* Collect 640x480 CRC */
+		igt_create_pattern_fb(data->drm_fd, mode_640_480.hdisplay,
+				      mode_640_480.vdisplay, DRM_FORMAT_XRGB8888,
+				      0, &data->fb);
+		igt_plane_set_fb(data->primary, &data->fb);
+		igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+		igt_pipe_crc_collect_crc(data->pipe_crc, &data->crc_640_480);
+
+		/* Change link settings. */
+		run_link_training_config(data, output);
+
+		/* Revert mode back. */
+		igt_output_override_mode(output, orig_mode);
+		igt_info("%s: Reverting to lane count: %d, link rate: 0x%02x\n", output->name, orig_lc, orig_lr);
+		igt_amd_write_link_settings(data->drm_fd, output->name, orig_lc, orig_lr,
+					    LINK_TRAINING_DEFAULT);
+
+		igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+		igt_remove_fb(data->drm_fd, &data->fb);
+	}
+
+	test_fini(data);
+}
+
+igt_main
+{
+	data_t data;
+	memset(&data, 0, sizeof(data));
+
+	igt_skip_on_simulation();
+
+	igt_fixture
+	{
+		data.drm_fd = drm_open_driver_master(DRIVER_AMDGPU);
+		if (data.drm_fd == -1)
+			igt_skip("Not an amdgpu driver.\n");
+
+		kmstest_set_vt_graphics_mode();
+
+		igt_display_require(&data.display, data.drm_fd);
+		igt_require(data.display.is_atomic);
+		igt_display_require_output(&data.display);
+	}
+
+	igt_describe("Retrieves all link settings configurations and retrains "
+		     "links on all possible configurations with different "
+		     "types of link training.");
+	igt_subtest("link-training-configs")
+		test_link_training_configs(&data);
+
+	igt_fixture
+	{
+		igt_display_fini(&data.display);
+	}
+}
diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
index 805eb299..aec71cb5 100644
--- a/tests/amdgpu/meson.build
+++ b/tests/amdgpu/meson.build
@@ -13,6 +13,7 @@ if libdrm_amdgpu.found()
 			  'amd_prime',
 			  'amd_module_load',
 			  'amd_mem_leak',
+			  'amd_link_settings',
 			  'amd_vrr_range',
 			]
 	amdgpu_deps += libdrm_amdgpu
-- 
2.32.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests/amdgpu: Add amd_link_settings test
  2021-09-16 13:27 [igt-dev] [PATCH i-g-t] tests/amdgpu: Add amd_link_settings test Stylon Wang
@ 2021-09-16 15:02 ` Patchwork
  2021-09-16 16:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  2021-09-23 18:02 ` [igt-dev] [PATCH i-g-t] " Rodrigo Siqueira
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2021-09-16 15:02 UTC (permalink / raw)
  To: Stylon Wang; +Cc: igt-dev

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

== Series Details ==

Series: tests/amdgpu: Add amd_link_settings test
URL   : https://patchwork.freedesktop.org/series/94752/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10597 -> IGTPW_6226
====================================================

Summary
-------

  **WARNING**

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

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

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

### IGT changes ###

#### Warnings ####

  * igt@core_hotunplug@unbind-rebind:
    - fi-rkl-11600:       [INCOMPLETE][1] ([i915#4130]) -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-rkl-11600/igt@core_hotunplug@unbind-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-rkl-11600/igt@core_hotunplug@unbind-rebind.html

  * igt@i915_module_load@reload:
    - fi-kbl-8809g:       [INCOMPLETE][3] ([i915#4136]) -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-kbl-8809g/igt@i915_module_load@reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-kbl-8809g/igt@i915_module_load@reload.html

  
#### Suppressed ####

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

  * igt@i915_pm_rpm@module-reload:
    - {fi-jsl-1}:         NOTRUN -> [INCOMPLETE][5]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-jsl-1/igt@i915_pm_rpm@module-reload.html

  * igt@runner@aborted:
    - {fi-ehl-2}:         NOTRUN -> [FAIL][6]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-ehl-2/igt@runner@aborted.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@cs-compute:
    - fi-cfl-guc:         NOTRUN -> [SKIP][7] ([fdo#109271]) +17 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-cfl-guc/igt@amdgpu/amd_basic@cs-compute.html

  * igt@amdgpu/amd_basic@cs-gfx:
    - fi-skl-6700k2:      NOTRUN -> [SKIP][8] ([fdo#109271]) +17 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-skl-6700k2/igt@amdgpu/amd_basic@cs-gfx.html

  * igt@amdgpu/amd_basic@cs-sdma:
    - fi-cfl-8109u:       NOTRUN -> [SKIP][9] ([fdo#109271]) +17 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-cfl-8109u/igt@amdgpu/amd_basic@cs-sdma.html

  * igt@amdgpu/amd_basic@semaphore:
    - fi-icl-y:           NOTRUN -> [SKIP][10] ([fdo#109315]) +17 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-icl-y/igt@amdgpu/amd_basic@semaphore.html

  * igt@core_hotunplug@unbind-rebind:
    - fi-tgl-1115g4:      NOTRUN -> [INCOMPLETE][11] ([i915#4130])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
    - fi-icl-u2:          [PASS][12] -> [INCOMPLETE][13] ([i915#4130])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-icl-u2/igt@core_hotunplug@unbind-rebind.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-icl-u2/igt@core_hotunplug@unbind-rebind.html

  * igt@gem_huc_copy@huc-copy:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][14] ([i915#2190])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@gem_huc_copy@huc-copy.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][15] ([i915#1155])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@i915_pm_backlight@basic-brightness.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][16] ([fdo#111827]) +8 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][17] ([i915#4103]) +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][18] ([fdo#109285])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][19] ([i915#1072]) +3 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@kms_psr@primary_mmap_gtt.html

  * igt@prime_vgem@basic-userptr:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][20] ([i915#3301])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@prime_vgem@basic-userptr.html

  * igt@runner@aborted:
    - fi-cml-u2:          NOTRUN -> [FAIL][21] ([i915#2082] / [i915#2426] / [i915#3363])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-cml-u2/igt@runner@aborted.html
    - fi-tgl-1115g4:      NOTRUN -> [FAIL][22] ([i915#1602] / [i915#2722])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-tgl-1115g4/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_module_load@reload:
    - fi-cfl-guc:         [INCOMPLETE][23] ([i915#4130]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-cfl-guc/igt@i915_module_load@reload.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-cfl-guc/igt@i915_module_load@reload.html
    - fi-skl-6700k2:      [INCOMPLETE][25] ([i915#4130] / [i915#4136]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-skl-6700k2/igt@i915_module_load@reload.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-skl-6700k2/igt@i915_module_load@reload.html
    - fi-kbl-guc:         [INCOMPLETE][27] ([i915#4130] / [i915#4139]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-kbl-guc/igt@i915_module_load@reload.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-kbl-guc/igt@i915_module_load@reload.html
    - fi-cfl-8109u:       [INCOMPLETE][29] ([i915#4136]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-cfl-8109u/igt@i915_module_load@reload.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-cfl-8109u/igt@i915_module_load@reload.html
    - fi-icl-y:           [INCOMPLETE][31] ([i915#4130]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-icl-y/igt@i915_module_load@reload.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-icl-y/igt@i915_module_load@reload.html

  
#### Warnings ####

  * igt@i915_module_load@reload:
    - fi-cml-u2:          [INCOMPLETE][33] -> [INCOMPLETE][34] ([i915#4130] / [i915#4136])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/fi-cml-u2/igt@i915_module_load@reload.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/fi-cml-u2/igt@i915_module_load@reload.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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#2082]: https://gitlab.freedesktop.org/drm/intel/issues/2082
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4130]: https://gitlab.freedesktop.org/drm/intel/issues/4130
  [i915#4136]: https://gitlab.freedesktop.org/drm/intel/issues/4136
  [i915#4139]: https://gitlab.freedesktop.org/drm/intel/issues/4139


Participating hosts (37 -> 35)
------------------------------

  Additional (1): fi-tgl-1115g4 
  Missing    (3): fi-bsw-cyan bat-adls-5 fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6210 -> IGTPW_6226

  CI-20190529: 20190529
  CI_DRM_10597: df5c4aa981fd15df5d747e00ccfb039e0eb5d5d5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6226: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/index.html
  IGT_6210: fd787fc30408b3c36e31bd6030eec681768a7a69 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git



== Testlist changes ==

+igt@amdgpu/amd_link_settings@link-training-configs

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for tests/amdgpu: Add amd_link_settings test
  2021-09-16 13:27 [igt-dev] [PATCH i-g-t] tests/amdgpu: Add amd_link_settings test Stylon Wang
  2021-09-16 15:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2021-09-16 16:45 ` Patchwork
  2021-09-23 18:02 ` [igt-dev] [PATCH i-g-t] " Rodrigo Siqueira
  2 siblings, 0 replies; 4+ messages in thread
From: Patchwork @ 2021-09-16 16:45 UTC (permalink / raw)
  To: Stylon Wang; +Cc: igt-dev

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

== Series Details ==

Series: tests/amdgpu: Add amd_link_settings test
URL   : https://patchwork.freedesktop.org/series/94752/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10597_full -> IGTPW_6226_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@device_reset@unbind-reset-rebind:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][1] ([i915#4130])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl2/igt@device_reset@unbind-reset-rebind.html

  * igt@feature_discovery@psr2:
    - shard-iclb:         NOTRUN -> [SKIP][2] ([i915#658]) +2 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb4/igt@feature_discovery@psr2.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-kbl:          [PASS][3] -> [DMESG-WARN][4] ([i915#180]) +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-kbl1/igt@gem_ctx_isolation@preservation-s3@rcs0.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl7/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         NOTRUN -> [TIMEOUT][5] ([i915#2369] / [i915#3063] / [i915#3648])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb6/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-kbl:          [PASS][6] -> [FAIL][7] ([i915#2846])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-kbl2/igt@gem_exec_fair@basic-deadline.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl2/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-flow@rcs0:
    - shard-tglb:         [PASS][8] -> [FAIL][9] ([i915#2842])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb6/igt@gem_exec_fair@basic-flow@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-kbl:          NOTRUN -> [FAIL][10] ([i915#2842]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl3/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-tglb:         NOTRUN -> [FAIL][11] ([i915#2842]) +4 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-iclb:         NOTRUN -> [FAIL][12] ([i915#2842]) +4 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb5/igt@gem_exec_fair@basic-pace@vcs0.html

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

  * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
    - shard-kbl:          NOTRUN -> [SKIP][15] ([fdo#109271]) +212 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl2/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html

  * igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs:
    - shard-iclb:         NOTRUN -> [SKIP][16] ([i915#768]) +1 similar issue
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb5/igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs.html

  * igt@gem_softpin@evict-snoop-interruptible:
    - shard-tglb:         NOTRUN -> [SKIP][17] ([fdo#109312])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb6/igt@gem_softpin@evict-snoop-interruptible.html
    - shard-iclb:         NOTRUN -> [SKIP][18] ([fdo#109312])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@gem_softpin@evict-snoop-interruptible.html

  * igt@gem_userptr_blits@access-control:
    - shard-tglb:         NOTRUN -> [SKIP][19] ([i915#3297])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb3/igt@gem_userptr_blits@access-control.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-iclb:         NOTRUN -> [SKIP][20] ([i915#3297]) +1 similar issue
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@gem_userptr_blits@dmabuf-unsync.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-tglb:         NOTRUN -> [FAIL][21] ([i915#3318])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb3/igt@gem_userptr_blits@vma-merge.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-tglb:         NOTRUN -> [SKIP][22] ([i915#2856]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@gen9_exec_parse@bb-oversize.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-iclb:         NOTRUN -> [SKIP][23] ([i915#2856]) +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb1/igt@gen9_exec_parse@unaligned-access.html

  * igt@i915_pm_rpm@modeset-non-lpsp:
    - shard-iclb:         NOTRUN -> [SKIP][24] ([fdo#110892]) +1 similar issue
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb3/igt@i915_pm_rpm@modeset-non-lpsp.html
    - shard-tglb:         NOTRUN -> [SKIP][25] ([fdo#111644] / [i915#1397] / [i915#2411])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb5/igt@i915_pm_rpm@modeset-non-lpsp.html

  * igt@i915_pm_rpm@system-suspend:
    - shard-tglb:         [PASS][26] -> [INCOMPLETE][27] ([i915#2411] / [i915#456]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb7/igt@i915_pm_rpm@system-suspend.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@i915_pm_rpm@system-suspend.html

  * igt@i915_suspend@debugfs-reader:
    - shard-tglb:         [PASS][28] -> [INCOMPLETE][29] ([i915#456]) +2 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb5/igt@i915_suspend@debugfs-reader.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@i915_suspend@debugfs-reader.html

  * igt@kms_atomic@plane-primary-legacy:
    - shard-iclb:         [PASS][30] -> [DMESG-WARN][31] ([i915#3728])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb1/igt@kms_atomic@plane-primary-legacy.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_atomic@plane-primary-legacy.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-iclb:         NOTRUN -> [SKIP][32] ([fdo#110725] / [fdo#111614]) +3 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb4/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][33] ([fdo#111614]) +3 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb3/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3777]) +2 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][35] ([fdo#111615]) +4 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_big_fb@yf-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-iclb:         NOTRUN -> [SKIP][36] ([fdo#110723])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][37] ([i915#3689] / [i915#3886]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][38] ([fdo#109278] / [i915#3886]) +4 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb7/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - shard-kbl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3886]) +7 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl2/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([i915#3689]) +12 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-iclb:         NOTRUN -> [SKIP][41] ([i915#3742])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb3/igt@kms_cdclk@mode-transition.html
    - shard-tglb:         NOTRUN -> [SKIP][42] ([i915#3742])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium@vga-edid-read:
    - shard-iclb:         NOTRUN -> [SKIP][43] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb7/igt@kms_chamelium@vga-edid-read.html

  * igt@kms_color@pipe-d-ctm-green-to-red:
    - shard-iclb:         NOTRUN -> [SKIP][44] ([fdo#109278] / [i915#1149])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@kms_color@pipe-d-ctm-green-to-red.html

  * igt@kms_color_chamelium@pipe-a-ctm-0-75:
    - shard-kbl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [fdo#111827]) +26 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl7/igt@kms_color_chamelium@pipe-a-ctm-0-75.html

  * igt@kms_color_chamelium@pipe-d-ctm-0-75:
    - shard-iclb:         NOTRUN -> [SKIP][46] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_color_chamelium@pipe-d-ctm-0-75.html

  * igt@kms_color_chamelium@pipe-d-ctm-red-to-blue:
    - shard-tglb:         NOTRUN -> [SKIP][47] ([fdo#109284] / [fdo#111827]) +13 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-iclb:         NOTRUN -> [SKIP][48] ([i915#3116])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@kms_content_protection@dp-mst-type-1.html
    - shard-tglb:         NOTRUN -> [SKIP][49] ([i915#3116])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb6/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-iclb:         NOTRUN -> [SKIP][50] ([fdo#109300] / [fdo#111066]) +2 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb4/igt@kms_content_protection@legacy.html
    - shard-kbl:          NOTRUN -> [TIMEOUT][51] ([i915#1319]) +1 similar issue
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl6/igt@kms_content_protection@legacy.html
    - shard-tglb:         NOTRUN -> [SKIP][52] ([fdo#111828]) +2 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb1/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@uevent:
    - shard-kbl:          NOTRUN -> [FAIL][53] ([i915#2105])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl6/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x170-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([fdo#109279] / [i915#3359]) +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb3/igt@kms_cursor_crc@pipe-a-cursor-512x170-onscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][55] ([i915#3319]) +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding:
    - shard-iclb:         NOTRUN -> [SKIP][56] ([fdo#109278] / [fdo#109279]) +1 similar issue
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_cursor_crc@pipe-c-cursor-512x170-sliding.html

  * igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#3359]) +6 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
    - shard-iclb:         NOTRUN -> [SKIP][58] ([fdo#109274] / [fdo#109278]) +1 similar issue
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb5/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@pipe-d-single-bo:
    - shard-kbl:          NOTRUN -> [SKIP][59] ([fdo#109271] / [i915#533]) +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl7/igt@kms_cursor_legacy@pipe-d-single-bo.html

  * igt@kms_dsc@xrgb8888-dsc-compression:
    - shard-tglb:         NOTRUN -> [SKIP][60] ([i915#3828])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_dsc@xrgb8888-dsc-compression.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          NOTRUN -> [INCOMPLETE][61] ([i915#155] / [i915#180] / [i915#636])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-tglb:         NOTRUN -> [SKIP][62] ([fdo#111825] / [i915#3966])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-wf_vblank:
    - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109274]) +4 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_flip@2x-flip-vs-wf_vblank.html

  * igt@kms_flip@2x-plain-flip-ts-check:
    - shard-tglb:         NOTRUN -> [SKIP][64] ([fdo#111825]) +33 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb5/igt@kms_flip@2x-plain-flip-ts-check.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][65] ([i915#180]) +3 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs:
    - shard-iclb:         [PASS][66] -> [SKIP][67] ([i915#3701])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile:
    - shard-tglb:         NOTRUN -> [SKIP][68] ([i915#2587])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs:
    - shard-kbl:          NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#2672])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-iclb:         NOTRUN -> [SKIP][70] ([fdo#109280]) +22 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_hdr@static-toggle:
    - shard-tglb:         NOTRUN -> [SKIP][71] ([i915#1187])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb1/igt@kms_hdr@static-toggle.html

  * igt@kms_invalid_dotclock:
    - shard-tglb:         NOTRUN -> [SKIP][72] ([fdo#110577])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_invalid_dotclock.html
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109310])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb8/igt@kms_invalid_dotclock.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-iclb:         NOTRUN -> [SKIP][74] ([i915#1839])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb5/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
    - shard-kbl:          NOTRUN -> [FAIL][75] ([fdo#108145] / [i915#265])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl7/igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:
    - shard-kbl:          NOTRUN -> [FAIL][76] ([i915#265]) +1 similar issue
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl3/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html

  * igt@kms_plane_cursor@pipe-d-primary-size-64:
    - shard-iclb:         NOTRUN -> [SKIP][77] ([fdo#109278]) +23 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@kms_plane_cursor@pipe-d-primary-size-64.html

  * igt@kms_plane_lowres@pipe-b-tiling-x:
    - shard-iclb:         NOTRUN -> [SKIP][78] ([i915#3536]) +1 similar issue
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@kms_plane_lowres@pipe-b-tiling-x.html

  * igt@kms_plane_lowres@pipe-b-tiling-y:
    - shard-tglb:         NOTRUN -> [SKIP][79] ([i915#3536]) +2 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_plane_lowres@pipe-b-tiling-y.html

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping:
    - shard-kbl:          NOTRUN -> [SKIP][80] ([fdo#109271] / [i915#2733])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl4/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
    - shard-kbl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658]) +5 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl1/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5:
    - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#2920]) +2 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-5.html

  * igt@kms_psr2_su@page_flip:
    - shard-tglb:         NOTRUN -> [SKIP][83] ([i915#1911])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@kms_psr2_su@page_flip.html
    - shard-iclb:         NOTRUN -> [SKIP][84] ([fdo#109642] / [fdo#111068] / [i915#658])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb1/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_basic:
    - shard-tglb:         NOTRUN -> [FAIL][85] ([i915#132] / [i915#3467]) +3 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb8/igt@kms_psr@psr2_basic.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [PASS][86] -> [SKIP][87] ([fdo#109441]) +2 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb3/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_psr@psr2_sprite_mmap_gtt:
    - shard-iclb:         NOTRUN -> [SKIP][88] ([fdo#109441]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb3/igt@kms_psr@psr2_sprite_mmap_gtt.html

  * igt@kms_tv_load_detect@load-detect:
    - shard-tglb:         NOTRUN -> [SKIP][89] ([fdo#109309])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb8/igt@kms_tv_load_detect@load-detect.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-kbl:          NOTRUN -> [SKIP][90] ([fdo#109271] / [i915#2437]) +1 similar issue
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl1/igt@kms_writeback@writeback-pixel-formats.html

  * igt@nouveau_crc@pipe-b-source-outp-inactive:
    - shard-iclb:         NOTRUN -> [SKIP][91] ([i915#2530]) +1 similar issue
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb7/igt@nouveau_crc@pipe-b-source-outp-inactive.html

  * igt@nouveau_crc@pipe-c-ctx-flip-detection:
    - shard-tglb:         NOTRUN -> [SKIP][92] ([i915#2530]) +1 similar issue
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb8/igt@nouveau_crc@pipe-c-ctx-flip-detection.html

  * igt@perf@per-context-mode-unprivileged:
    - shard-iclb:         NOTRUN -> [SKIP][93] ([fdo#109289]) +2 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb5/igt@perf@per-context-mode-unprivileged.html

  * igt@perf@unprivileged-single-ctx-counters:
    - shard-tglb:         NOTRUN -> [SKIP][94] ([fdo#109289]) +1 similar issue
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb1/igt@perf@unprivileged-single-ctx-counters.html

  * igt@prime_nv_api@i915_nv_double_export:
    - shard-tglb:         NOTRUN -> [SKIP][95] ([fdo#109291]) +1 similar issue
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb1/igt@prime_nv_api@i915_nv_double_export.html

  * igt@prime_udl:
    - shard-iclb:         NOTRUN -> [SKIP][96] ([fdo#109291]) +1 similar issue
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb8/igt@prime_udl.html

  * igt@prime_vgem@coherency-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][97] ([fdo#111656])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb6/igt@prime_vgem@coherency-gtt.html
    - shard-iclb:         NOTRUN -> [SKIP][98] ([fdo#109292])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@prime_vgem@coherency-gtt.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-iclb:         NOTRUN -> [SKIP][99] ([fdo#109295]) +1 similar issue
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb3/igt@prime_vgem@fence-flip-hang.html

  * igt@prime_vgem@fence-read-hang:
    - shard-tglb:         NOTRUN -> [SKIP][100] ([fdo#109295]) +1 similar issue
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb1/igt@prime_vgem@fence-read-hang.html

  * igt@sysfs_clients@busy:
    - shard-tglb:         NOTRUN -> [SKIP][101] ([i915#2994]) +1 similar issue
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb8/igt@sysfs_clients@busy.html

  * igt@sysfs_clients@fair-3:
    - shard-kbl:          NOTRUN -> [SKIP][102] ([fdo#109271] / [i915#2994]) +3 similar issues
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl3/igt@sysfs_clients@fair-3.html

  * igt@sysfs_clients@fair-7:
    - shard-iclb:         NOTRUN -> [SKIP][103] ([i915#2994]) +1 similar issue
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@sysfs_clients@fair-7.html

  
#### Possible fixes ####

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [FAIL][104] ([i915#2842]) -> [PASS][105]
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb5/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [FAIL][106] ([i915#2849]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb3/igt@gem_exec_fair@basic-throttle@rcs0.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb8/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@kms_atomic@atomic-invalid-params:
    - shard-iclb:         [DMESG-WARN][108] ([i915#3728]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb2/igt@kms_atomic@atomic-invalid-params.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_atomic@atomic-invalid-params.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-tglb:         [INCOMPLETE][110] ([i915#2828] / [i915#456]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb5/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [DMESG-WARN][112] ([i915#180]) -> [PASS][113] +2 similar issues
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglb:         [SKIP][114] ([i915#433]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb3/igt@kms_hdmi_inject@inject-audio.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb6/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_plane_cursor@pipe-b-primary-size-256:
    - shard-iclb:         [INCOMPLETE][116] -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb1/igt@kms_plane_cursor@pipe-b-primary-size-256.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_plane_cursor@pipe-b-primary-size-256.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [SKIP][118] ([fdo#109441]) -> [PASS][119] +3 similar issues
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_vblank@pipe-d-ts-continuation-dpms-rpm:
    - shard-tglb:         [SKIP][120] ([i915#2411]) -> [PASS][121]
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb1/igt@kms_vblank@pipe-d-ts-continuation-dpms-rpm.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@kms_vblank@pipe-d-ts-continuation-dpms-rpm.html

  * igt@kms_vblank@pipe-d-ts-continuation-suspend:
    - shard-tglb:         [INCOMPLETE][122] ([i915#3896]) -> [PASS][123]
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-tglb7/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-tglb7/igt@kms_vblank@pipe-d-ts-continuation-suspend.html

  
#### Warnings ####

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-iclb:         [SKIP][124] ([i915#588]) -> [SKIP][125] ([i915#658])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb6/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-iclb:         [WARN][126] ([i915#2684]) -> [WARN][127] ([i915#1804] / [i915#2684])
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb8/igt@i915_pm_rc6_residency@rc6-fence.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb4/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-iclb:         [WARN][128] ([i915#1804] / [i915#2684]) -> [WARN][129] ([i915#2684])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb6/igt@i915_pm_rc6_residency@rc6-idle.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb1/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_pm_rpm@modeset-lpsp-stress-no-wait:
    - shard-kbl:          [SKIP][130] ([fdo#109271]) -> [INCOMPLETE][131] ([i915#151])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-kbl1/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-kbl6/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
    - shard-iclb:         [SKIP][132] ([i915#658]) -> [SKIP][133] ([i915#2920])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb8/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-3:
    - shard-iclb:         [SKIP][134] ([i915#2920]) -> [SKIP][135] ([i915#658]) +1 similar issue
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10597/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area-3.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6226/shard-iclb3/igt@kms_psr2_sf@plane-move-sf-dmg-area-3.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][136], [FAIL][137], [FAIL][138], [FAIL][139], [FAIL][140], [FAIL][141], [FAIL][142], [FAIL][143], [FAIL][144], [FAIL][145], [FAIL][146]) ([fdo#109271] / [i915#1436] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363]) -> ([FAIL][147], [FAIL][148], [FAIL][149], [FAIL][150], [FAIL][151], [FAIL][152], [FAIL][153], [FAIL][154], [FAIL][155],

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t] tests/amdgpu: Add amd_link_settings test
  2021-09-16 13:27 [igt-dev] [PATCH i-g-t] tests/amdgpu: Add amd_link_settings test Stylon Wang
  2021-09-16 15:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
  2021-09-16 16:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2021-09-23 18:02 ` Rodrigo Siqueira
  2 siblings, 0 replies; 4+ messages in thread
From: Rodrigo Siqueira @ 2021-09-23 18:02 UTC (permalink / raw)
  To: Stylon Wang; +Cc: igt-dev, nicholas.kazlauskas, sunpeng.li, Eryk Brol

I did not review all the details about this test, but we checked it in
our ASICs, and it works well. For this reason:

Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Tested-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>

Thanks
Siqueira

On 09/16, Stylon Wang wrote:
> From: Eryk Brol <eryk.brol@amd.com>
> 
> [Why]
> Having a test that iterates through different link
> settings and performs link training with them is useful
> and currently missing from IGT.
> 
> [How]
> Add a link settings test and its required helper functions.
> 
> Signed-off-by: Stylon Wang <stylon.wang@amd.com>
> ---
>  lib/igt_amd.c                    | 119 +++++++++++++
>  lib/igt_amd.h                    |  44 +++++
>  tests/amdgpu/amd_link_settings.c | 280 +++++++++++++++++++++++++++++++
>  tests/amdgpu/meson.build         |   1 +
>  4 files changed, 444 insertions(+)
>  create mode 100644 tests/amdgpu/amd_link_settings.c
> 
> diff --git a/lib/igt_amd.c b/lib/igt_amd.c
> index 4ffe7cf2..f1bfb421 100644
> --- a/lib/igt_amd.c
> +++ b/lib/igt_amd.c
> @@ -323,3 +323,122 @@ int igt_amd_trigger_hotplug(int drm_fd, char *connector_name)
>  
>  	return 0;
>  }
> +
> +/*
> + * igt_amd_read_link_settings:
> + * @drm_fd: DRM file descriptor
> + * @connector_name: The name of the connector to read the link_settings
> + * @lane_count: Lane count
> + * @link_rate: Link rate
> + * @link_spread: Spread spectrum
> + *
> + * The indices of @lane_count, @link_rate, and @link_spread correspond to the
> + * values of "Current", "Verified", "Reported", and "Preferred", respectively.
> + */
> +void igt_amd_read_link_settings(
> +	int drm_fd, char *connector_name, int *lane_count, int *link_rate, int *link_spread)
> +{
> +	int fd, ret;
> +	char buf[101];
> +	int i = 0;
> +	char *token_end, *val_token;
> +
> +	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
> +	if (fd < 0) {
> +		igt_info("Could not open connector %s debugfs directory\n",
> +			 connector_name);
> +		return;
> +	}
> +	ret = igt_debugfs_simple_read(fd, DEBUGFS_DP_LINK_SETTINGS, buf, sizeof(buf));
> +	igt_assert_f(ret >= 0, "Reading %s for connector %s failed.\n",
> +		     DEBUGFS_DP_LINK_SETTINGS, connector_name);
> +
> +	close(fd);
> +
> +	/* Between current, verified, reported, and preferred are null terminators,
> +	 * replace them with ';' to use as the delimiter for strtok. */
> +	while (strlen(buf) < sizeof(buf) - 1 && buf[strlen(buf)] == '\0')
> +		buf[strlen(buf)] = ';';
> +
> +	/* Parse values read from file. */
> +	for (char *token = strtok_r(buf, ";", &token_end);
> +	     token != NULL;
> +	     token = strtok_r(NULL, ";", &token_end))
> +	{
> +		strtok_r(token, ": ", &val_token);
> +		lane_count[i] = strtol(val_token, &val_token, 10);
> +		link_rate[i] = strtol(val_token, &val_token, 10);
> +		link_spread[i] = strtol(val_token, &val_token, 10);
> +		i++;
> +
> +		if (i > 3) return;
> +	}
> +}
> +
> +/*
> + * igt_amd_write_link_settings:
> + * @drm_fd: DRM file descriptor
> + * @connector_name: The name of the connector to write the link_settings
> + * @lane_count: Lane count
> + * @link_rate: Link rate
> + * @training_type: Link training type
> + */
> +void igt_amd_write_link_settings(
> +	int drm_fd, char *connector_name, enum dc_lane_count lane_count,
> +	enum dc_link_rate link_rate, enum dc_link_training_type training_type)
> +{
> +	int ls_fd, fd;
> +	const int buf_len = 40;
> +	char buf[buf_len];
> +	int wr_len = 0;
> +
> +	memset(buf, '\0', sizeof(char) * buf_len);
> +
> +	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +	ls_fd = openat(fd, DEBUGFS_DP_LINK_SETTINGS, O_WRONLY);
> +	close(fd);
> +	igt_assert(ls_fd >= 0);
> +
> +	/* dp_link_settings_write expects a \n at the end or else it will
> +	 * dereference a null pointer.
> +	 */
> +	if (training_type == LINK_TRAINING_DEFAULT)
> +		snprintf(buf, sizeof(buf), "%02x %02x \n", lane_count, link_rate);
> +	else
> +		snprintf(buf, sizeof(buf), "%02x %02x %02x \n", lane_count,
> +			 link_rate, training_type);
> +
> +	wr_len = write(ls_fd, buf, strlen(buf));
> +	igt_assert_eq(wr_len, strlen(buf));
> +
> +	close(ls_fd);
> +}
> +
> +/**
> + * igt_amd_output_has_link_settings: check if connector has link_settings debugfs entry
> + * @drm_fd: DRM file descriptor
> + * @connector_name: The connector's name, on which we're reading the status
> + */
> +bool igt_amd_output_has_link_settings(int drm_fd, char *connector_name)
> +{
> +	int fd;
> +	int res;
> +	struct stat stat;
> +
> +	fd = igt_debugfs_connector_dir(drm_fd, connector_name, O_RDONLY);
> +	if (fd < 0) {
> +		igt_info("output %s: debugfs not found\n", connector_name);
> +		return false;
> +	}
> +
> +	res = fstatat(fd, DEBUGFS_DP_LINK_SETTINGS, &stat, 0);
> +	if (res != 0) {
> +		igt_info("output %s: %s debugfs not supported\n", connector_name, DEBUGFS_DP_LINK_SETTINGS);
> +		close(fd);
> +		return false;
> +	}
> +
> +	close(fd);
> +	return true;
> +}
> diff --git a/lib/igt_amd.h b/lib/igt_amd.h
> index d333ad9c..e5bdbf33 100644
> --- a/lib/igt_amd.h
> +++ b/lib/igt_amd.h
> @@ -27,8 +27,44 @@
>  #include "igt.h"
>  #include "igt_fb.h"
>  
> +#define DEBUGFS_DP_LINK_SETTINGS "link_settings"
>  #define DEBUGFS_HPD_TRIGGER "trigger_hotplug"
>  
> +enum dc_lane_count {
> +	LANE_COUNT_UNKNOWN = 0,
> +	LANE_COUNT_ONE = 1,
> +	LANE_COUNT_TWO = 2,
> +	LANE_COUNT_FOUR = 4,
> +	LANE_COUNT_EIGHT = 8,
> +	LANE_COUNT_DP_MAX = LANE_COUNT_FOUR
> +};
> +
> +/* This is actually a reference clock (27MHz) multiplier
> + * 162MBps bandwidth for 1.62GHz like rate,
> + * 270MBps for 2.70GHz,
> + * 324MBps for 3.24Ghz,
> + * 540MBps for 5.40GHz
> + * 810MBps for 8.10GHz
> + */
> +enum dc_link_rate {
> +	LINK_RATE_UNKNOWN = 0,
> +	LINK_RATE_LOW = 0x06,		// Rate_1 (RBR)	- 1.62 Gbps/Lane
> +	LINK_RATE_RATE_2 = 0x08,	// Rate_2		- 2.16 Gbps/Lane
> +	LINK_RATE_RATE_3 = 0x09,	// Rate_3		- 2.43 Gbps/Lane
> +	LINK_RATE_HIGH = 0x0A,		// Rate_4 (HBR)	- 2.70 Gbps/Lane
> +	LINK_RATE_RBR2 = 0x0C,		// Rate_5 (RBR2)- 3.24 Gbps/Lane
> +	LINK_RATE_RATE_6 = 0x10,	// Rate_6		- 4.32 Gbps/Lane
> +	LINK_RATE_HIGH2 = 0x14,		// Rate_7 (HBR2)- 5.40 Gbps/Lane
> +	LINK_RATE_HIGH3 = 0x1E		// Rate_8 (HBR3)- 8.10 Gbps/Lane
> +};
> +
> +enum dc_link_training_type {
> +	LINK_TRAINING_DEFAULT = 0,
> +	LINK_TRAINING_SLOW = 0,
> +	LINK_TRAINING_FAST,
> +	LINK_TRAINING_NO_PATTERN
> +};
> +
>  uint32_t igt_amd_create_bo(int fd, uint64_t size);
>  void *igt_amd_mmap_bo(int fd, uint32_t handle, uint64_t size, int prot);
>  unsigned int igt_amd_compute_offset(unsigned int* swizzle_pattern,
> @@ -48,4 +84,12 @@ bool igt_amd_is_tiled(uint64_t modifier);
>  void igt_amd_require_hpd(igt_display_t *display, int drm_fd);
>  int igt_amd_trigger_hotplug(int drm_fd, char *connector_name);
>  
> +/* IGT link helper functions */
> +void igt_amd_read_link_settings(
> +	int drm_fd, char *connector_name, int *lane_count, int *link_rate, int *link_spread);
> +void igt_amd_write_link_settings(
> +	int drm_fd, char *connector_name, enum dc_lane_count lane_count,
> +	enum dc_link_rate link_rate, enum dc_link_training_type training_type);
> +bool igt_amd_output_has_link_settings(int drm_fd, char *connector_name);
> +
>  #endif /* IGT_AMD_H */
> diff --git a/tests/amdgpu/amd_link_settings.c b/tests/amdgpu/amd_link_settings.c
> new file mode 100644
> index 00000000..7822683d
> --- /dev/null
> +++ b/tests/amdgpu/amd_link_settings.c
> @@ -0,0 +1,280 @@
> +/*
> + * Copyright 2020 Advanced Micro Devices, Inc.
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice shall be included in
> + * all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + */
> +
> +#include "igt.h"
> +#include "igt_amd.h"
> +
> +typedef struct
> +{
> +	int drm_fd;
> +        igt_display_t display;
> +        igt_plane_t *primary;
> +        igt_output_t *output;
> +	igt_fb_t fb;
> +	igt_pipe_crc_t *pipe_crc;
> +	igt_pipe_t *pipe;
> +        enum pipe pipe_id;
> +	int connector_type;
> +	int w, h;
> +	igt_crc_t crc_640_480;
> +} data_t;
> +
> +drmModeModeInfo mode_640_480 = {
> +	.name		= "640x480",
> +	.vrefresh	= 60,
> +	.clock		= 25200,
> +
> +	.hdisplay	= 640,
> +	.hsync_start	= 656,
> +	.hsync_end	= 752,
> +	.htotal		= 800,
> +
> +	.vdisplay	= 480,
> +	.vsync_start	= 490,
> +	.vsync_end	= 492,
> +	.vtotal		= 525,
> +
> +	.flags		= DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
> +};
> +
> +const enum dc_lane_count lane_count_values[] =
> +{
> +	LANE_COUNT_ONE,
> +	LANE_COUNT_TWO,
> +	LANE_COUNT_FOUR,
> +};
> +
> +const enum dc_link_rate dp_link_rate_values[] =
> +{
> +	LINK_RATE_LOW,
> +	LINK_RATE_HIGH,
> +	LINK_RATE_HIGH2,
> +	LINK_RATE_HIGH3
> +};
> +
> +const enum dc_link_rate edp_link_rate_values[] =
> +{
> +	LINK_RATE_LOW,
> +	LINK_RATE_HIGH,
> +	LINK_RATE_RBR2,
> +	LINK_RATE_HIGH2
> +};
> +
> +static void test_fini(data_t *data)
> +{
> +	igt_pipe_crc_free(data->pipe_crc);
> +	igt_display_reset(&data->display);
> +}
> +
> +static void set_all_output_pipe_to_none(data_t *data)
> +{
> +	igt_output_t *output;
> +
> +	for_each_connected_output(&data->display, output) {
> +		igt_output_set_pipe(output, PIPE_NONE);
> +	}
> +
> +	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +}
> +
> +static void test_init(data_t *data, igt_output_t *output)
> +{
> +	enum pipe pipe;
> +
> +	igt_require(output->config.connector->count_modes >= 1);
> +
> +	set_all_output_pipe_to_none(data);
> +
> +	for_each_pipe(&data->display, pipe) {
> +		if (igt_pipe_connector_valid(pipe, output)) {
> +			data->pipe_id = pipe;
> +			break;
> +		}
> +	}
> +
> +	data->connector_type = output->config.connector->connector_type;
> +
> +	igt_require(data->pipe_id != PIPE_NONE);
> +
> +	data->pipe = &data->display.pipes[data->pipe_id];
> +	data->pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe_id, "auto");
> +
> +	igt_output_set_pipe(output, data->pipe_id);
> +
> +	data->primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> +}
> +
> +static void run_link_training_config(data_t *data, igt_output_t *output)
> +{
> +	int lane_count[4], link_rate[4], link_spread[4];
> +	int max_lc, max_lr;
> +	const int current = 0;
> +	const int verified = 1;
> +	char *connector_name = output->name;
> +	igt_crc_t crc;
> +	const enum dc_link_rate *link_rate_values;
> +	int num_link_rates;
> +	if (data->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
> +		link_rate_values = dp_link_rate_values;
> +		num_link_rates = ARRAY_SIZE(dp_link_rate_values);
> +	} else if (data->connector_type == DRM_MODE_CONNECTOR_eDP) {
> +		link_rate_values = edp_link_rate_values;
> +		num_link_rates = ARRAY_SIZE(edp_link_rate_values);
> +	} else {
> +		igt_info("Not a DP or eDP connector\n");
> +		return;
> +	}
> +
> +	igt_amd_read_link_settings(data->drm_fd, connector_name, lane_count,
> +			           link_rate, link_spread);
> +
> +	max_lc = lane_count[verified];
> +	max_lr = link_rate[verified];
> +
> +	for (int i = 0; i < ARRAY_SIZE(lane_count_values); i++)
> +	{
> +		if (lane_count_values[i] > max_lc)
> +			continue;
> +
> +		for (int j = 0; j < num_link_rates; j++)
> +		{
> +			if (link_rate_values[j] > max_lr)
> +				continue;
> +
> +			/* Write link settings */
> +			igt_info("Applying lane count: %d, link rate 0x%02x, on default training\n",
> +				  lane_count_values[i], link_rate_values[j]);
> +			igt_amd_write_link_settings(data->drm_fd, connector_name,
> +						    lane_count_values[i],
> +						    link_rate_values[j],
> +						    LINK_TRAINING_DEFAULT);
> +
> +			/* Commit */
> +			igt_create_pattern_fb(data->drm_fd, mode_640_480.hdisplay,
> +					      mode_640_480.vdisplay, DRM_FORMAT_XRGB8888,
> +					      0, &data->fb);
> +			igt_plane_set_fb(data->primary, &data->fb);
> +			igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +
> +			/* Verify */
> +			igt_amd_read_link_settings(data->drm_fd, connector_name,
> +						   lane_count, link_rate,
> +						   link_spread);
> +
> +			/* Collect CRC after writing settings */
> +			igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
> +			igt_assert_crc_equal(&crc, &data->crc_640_480);
> +
> +			igt_assert(lane_count[current] == lane_count_values[i]);
> +			igt_assert(link_rate[current] == link_rate_values[j]);
> +
> +		}
> +	}
> +}
> +
> +static void test_link_training_configs(data_t *data)
> +{
> +	const drmModeModeInfo *orig_mode;
> +	igt_output_t *output;
> +	int lane_count[4], link_rate[4], link_spread[4];
> +	int orig_lc, orig_lr;
> +	const int current = 0;
> +
> +	igt_enable_connectors(data->drm_fd);
> +
> +	for_each_connected_output(&data->display, output) {
> +		if (!igt_amd_output_has_link_settings(data->drm_fd, output->name)) {
> +			igt_info("Skipping output: %s\n", output->name);
> +			continue;
> +		}
> +
> +		igt_info("Testing on output: %s\n", output->name);
> +
> +		/* Init only if display supports link_settings */
> +		test_init(data, output);
> +
> +		orig_mode = igt_output_get_mode(output);
> +		igt_assert(orig_mode);
> +
> +		/* Collect original mode's LC and LR */
> +		igt_amd_read_link_settings(data->drm_fd, output->name, lane_count,
> +					   link_rate, link_spread);
> +		orig_lc = lane_count[current];
> +		orig_lr = link_rate[current];
> +
> +		/* Collect 640x480 CRC */
> +		igt_create_pattern_fb(data->drm_fd, mode_640_480.hdisplay,
> +				      mode_640_480.vdisplay, DRM_FORMAT_XRGB8888,
> +				      0, &data->fb);
> +		igt_plane_set_fb(data->primary, &data->fb);
> +		igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +
> +		igt_pipe_crc_collect_crc(data->pipe_crc, &data->crc_640_480);
> +
> +		/* Change link settings. */
> +		run_link_training_config(data, output);
> +
> +		/* Revert mode back. */
> +		igt_output_override_mode(output, orig_mode);
> +		igt_info("%s: Reverting to lane count: %d, link rate: 0x%02x\n", output->name, orig_lc, orig_lr);
> +		igt_amd_write_link_settings(data->drm_fd, output->name, orig_lc, orig_lr,
> +					    LINK_TRAINING_DEFAULT);
> +
> +		igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +
> +		igt_remove_fb(data->drm_fd, &data->fb);
> +	}
> +
> +	test_fini(data);
> +}
> +
> +igt_main
> +{
> +	data_t data;
> +	memset(&data, 0, sizeof(data));
> +
> +	igt_skip_on_simulation();
> +
> +	igt_fixture
> +	{
> +		data.drm_fd = drm_open_driver_master(DRIVER_AMDGPU);
> +		if (data.drm_fd == -1)
> +			igt_skip("Not an amdgpu driver.\n");
> +
> +		kmstest_set_vt_graphics_mode();
> +
> +		igt_display_require(&data.display, data.drm_fd);
> +		igt_require(data.display.is_atomic);
> +		igt_display_require_output(&data.display);
> +	}
> +
> +	igt_describe("Retrieves all link settings configurations and retrains "
> +		     "links on all possible configurations with different "
> +		     "types of link training.");
> +	igt_subtest("link-training-configs")
> +		test_link_training_configs(&data);
> +
> +	igt_fixture
> +	{
> +		igt_display_fini(&data.display);
> +	}
> +}
> diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
> index 805eb299..aec71cb5 100644
> --- a/tests/amdgpu/meson.build
> +++ b/tests/amdgpu/meson.build
> @@ -13,6 +13,7 @@ if libdrm_amdgpu.found()
>  			  'amd_prime',
>  			  'amd_module_load',
>  			  'amd_mem_leak',
> +			  'amd_link_settings',
>  			  'amd_vrr_range',
>  			]
>  	amdgpu_deps += libdrm_amdgpu
> -- 
> 2.32.0
> 

-- 
Rodrigo Siqueira
https://siqueira.tech

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

end of thread, other threads:[~2021-09-23 18:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-16 13:27 [igt-dev] [PATCH i-g-t] tests/amdgpu: Add amd_link_settings test Stylon Wang
2021-09-16 15:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2021-09-16 16:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2021-09-23 18:02 ` [igt-dev] [PATCH i-g-t] " Rodrigo Siqueira

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.