Skip to contentSkip to conversation

Add subtests for HDCP over MST

PATCH Superseded Karthik B S 3 participants 7 messages Feb 4, 2021

v6 of 8 Superseded Latest is v8 →

lore
Share & tools
lore
#0 lore raw

v6 cover Add subtests for HDCP over MST

Add subtests to verify content protection on MST set up.

Karthik B S (2):
tests/kms_content_protection: Add MST subtests
CI HAX: Add MST tests to fast feedback testlist

 tests/intel-ci/fast-feedback.testlist |   6 +
 tests/kms_content_protection.c        | 277 ++++++++++++++++++++++++--
 2 files changed, 261 insertions(+), 22 deletions(-)
Signature · 6 lines
2.22.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#1 lore raw

PATCH v6 1/2 tests/kms_content_protection: Add MST subtests

Add subtests to verify content protection simultaneously on multiple outputs on the same MST topology.

v3: -Remove the logging which are no longer required. (Anshuman)
-Add logic to verify that CP is still enabled on other connectors
while disabling it on one of the connectors. (Anshuman)

v4: -Rename is_output_support_cp_capable(). (Anshuman, Ram)
-Rephrase the comment in is_dp_mst_output. (Anshuman) -Remove the redundant HDCP check hunk before HDCP disable. (Anshuman) -Check the link on the HDCP enabled outputs when one of the outputs
in the same DP MST topology is disabled. (Anshuman)
-Revert the change in test_content_protection_cleanup(). (Anshuman) -Create fb's in a common function for both MST and SST. (Ram) -Rename is_dp_mst_output() to output_is_dp_mst(). (Ram) -Remove the redundant igt_debug() before HDCP enable. (Ram) -Rephrase the igt_assert statement during HDCP enable. (Ram) -Optimize the execution time by checking the link for all MST
connectors together. (Ram)
-No need of loop where we disable CP on one of the MST outputs. (Ram) -During verification by disabling one of the MST outputs,
check for the negative case until the required timeout. (Ram)

v5: -Modify skip message when HDCP support is not present. (Anshuman)
-Remove the definition of color_t structure as it is no longer used.

v6: -Optimize execution time in LIC test. (Anshuman)

---
 tests/kms_content_protection.c | 277 ++++++++++++++++++++++++++++++---
 1 file changed, 255 insertions(+), 22 deletions(-)
tests/kms_content_protection.c +255 -22
index 303ed418..793f6e11 100644
@@ -179,16 +179,10 @@ static void modeset_with_fb(const enum pipe pipe, igt_output_t *output,
 	igt_output_override_mode(output, &mode);
 	igt_output_set_pipe(output, pipe);
 
-	igt_create_color_fb(display->drm_fd, mode.hdisplay, mode.vdisplay,
-			    DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE,
-			    1.f, 0.f, 0.f, &data.red);
-	igt_create_color_fb(display->drm_fd, mode.hdisplay, mode.vdisplay,
-			    DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE,
-			    0.f, 1.f, 0.f, &data.green);
-
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_display_commit2(display, s);
 	igt_plane_set_fb(primary, &data.red);
+	igt_fb_set_size(&data.red, primary, mode.hdisplay, mode.vdisplay);
 
 	/* Wait for Flip completion before starting the HDCP authentication */
 	commit_display_and_wait_for_flip(s);
@@ -458,37 +452,83 @@ static bool sink_hdcp2_capable(igt_output_t *output)
 	return strstr(buf, "HDCP2.2");
 }
 
-static void
-test_content_protection(enum igt_commit_style s, int content_type)
+static void prepare_modeset_on_mst_output(igt_output_t *output, enum pipe pipe)
 {
-	igt_display_t *display = &data.display;
-	igt_output_t *output;
-	int valid_tests = 0;
+	drmModeConnectorPtr c = output->config.connector;
+	drmModeModeInfo *mode;
+	igt_plane_t *primary;
+	int i, width, height;
 
-	if (data.cp_tests & CP_MEI_RELOAD)
-		igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
-			      "mei_hdcp module is not loaded\n");
+	mode = igt_output_get_mode(output);
 
-	for_each_connected_output(display, output) {
+	/*
+	 * TODO: Add logic to use the highest possible modes on each output.
+	 * Currently using 2k modes by default on all the outputs.
+	 */
+	igt_debug("Before mode override: Output %s Mode hdisplay %d Mode vdisplay %d\n",
+		   output->name, mode->hdisplay, mode->vdisplay);
+
+	if (mode->hdisplay > 1920 && mode->vdisplay > 1080) {
+		for (i = 0; i < c->count_modes; i++) {
+			if (c->modes[i].hdisplay <= 1920 && c->modes[i].vdisplay <= 1080) {
+				mode = &c->modes[i];
+				igt_output_override_mode(output, mode);
+				break;
+			}
+		}
+	}
+
+	igt_debug("After mode overide: Output %s Mode hdisplay %d Mode vdisplay %d\n",
+		   output->name, mode->hdisplay, mode->vdisplay);
+
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_output_set_pipe(output, pipe);
+	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+	igt_plane_set_fb(primary, NULL);
+	igt_plane_set_fb(primary, pipe % 2 ? &data.red : &data.green);
+	igt_fb_set_size(pipe % 2 ? &data.red : &data.green, primary, width, height);
+	igt_plane_set_size(primary, width, height);
+}
+
+static bool output_hdcp_capable(igt_output_t *output, int content_type)
+{
 		if (!output->props[IGT_CONNECTOR_CONTENT_PROTECTION])
-			continue;
+			return false;
 
 		if (!output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE] &&
 		    content_type)
-			continue;
-
-		igt_info("CP Test execution on %s\n", output->name);
+			return false;
 
 		if (content_type && !sink_hdcp2_capable(output)) {
 			igt_info("\tSkip %s (Sink has no HDCP2.2 support)\n",
 				 output->name);
-			continue;
+			return false;
 		} else if (!sink_hdcp_capable(output)) {
 			igt_info("\tSkip %s (Sink has no HDCP support)\n",
 				 output->name);
-			continue;
+			return false;
 		}
 
+		return true;
+}
+
+static void
+test_content_protection(enum igt_commit_style s, int content_type)
+{
+	igt_display_t *display = &data.display;
+	igt_output_t *output;
+	int valid_tests = 0;
+
+	if (data.cp_tests & CP_MEI_RELOAD)
+		igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
+			      "mei_hdcp module is not loaded\n");
+
+	for_each_connected_output(display, output) {
+		if (!output_hdcp_capable(output, content_type))
+			continue;
+
 		test_content_protection_on_output(output, s, content_type);
 		valid_tests++;
 	}
@@ -496,6 +536,150 @@ test_content_protection(enum igt_commit_style s, int content_type)
 	igt_require_f(valid_tests, "No connector found with HDCP capability\n");
 }
 
+static int parse_path_blob(char *blob_data)
+{
+	int connector_id;
+	char *encoder;
+
+	encoder = strtok(blob_data, ":");
+	igt_assert_f(!strcmp(encoder, "mst"), "PATH connector property expected to have 'mst'\n");
+
+	connector_id = atoi(strtok(NULL, "-"));
+
+	return connector_id;
+}
+
+static bool output_is_dp_mst(igt_output_t *output, int i)
+{
+	drmModePropertyBlobPtr path_blob = NULL;
+	uint64_t path_blob_id;
+	drmModeConnector *connector = output->config.connector;
+	struct kmstest_connector_config config;
+	const char *encoder;
+	int connector_id;
+	static int prev_connector_id;
+
+	kmstest_get_connector_config(data.drm_fd, output->config.connector->connector_id, -1, &config);
+	encoder = kmstest_encoder_type_str(config.encoder->encoder_type);
+
+	if (strcmp(encoder, "DP MST"))
+		return false;
+
+	igt_assert(kmstest_get_property(data.drm_fd, connector->connector_id,
+		   DRM_MODE_OBJECT_CONNECTOR, "PATH", NULL,
+		   &path_blob_id, NULL));
+
+	igt_assert(path_blob = drmModeGetPropertyBlob(data.drm_fd, path_blob_id));
+
+	connector_id = parse_path_blob((char *) path_blob->data);
+
+	/*
+	 * Discarding outputs of other DP MST topology.
+	 * Testing only on outputs on the topology we got previously
+	 */
+	if (i == 0) {
+		prev_connector_id = connector_id;
+	} else {
+		if (connector_id != prev_connector_id)
+			return false;
+	}
+
+	drmModeFreePropertyBlob(path_blob);
+
+	return true;
+}
+
+static void test_cp_lic_on_mst(igt_output_t *mst_outputs[], int valid_outputs, bool first_output)
+{
+	int ret, count;
+	uint64_t val;
+
+	/* Only wait for the first output, this optimizes the test execution time */
+	ret = wait_for_prop_value(mst_outputs[first_output], CP_DESIRED, LIC_PERIOD_MSEC);
+	igt_assert_f(!ret, "Content Protection LIC Failed on %s\n", mst_outputs[0]->name);
+
+	for (count = first_output + 1; count < valid_outputs; count++) {
+		val = igt_output_get_prop(mst_outputs[count], IGT_CONNECTOR_CONTENT_PROTECTION);
+		igt_assert_f(val != CP_DESIRED, "Content Protection LIC Failed on %s\n", mst_outputs[count]->name);
+	}
+}
+
+static void
+test_content_protection_mst(int content_type)
+{
+	igt_display_t *display = &data.display;
+	igt_output_t *output;
+	int valid_outputs = 0, dp_mst_outputs = 0, ret, count, max_pipe = 0, i;
+	enum pipe pipe;
+	igt_output_t *mst_output[IGT_MAX_PIPES];
+
+	for_each_connected_output(display, output) {
+		if (!output_is_dp_mst(output, valid_outputs))
+			continue;
+
+		dp_mst_outputs++;
+
+		if (!output_hdcp_capable(output, content_type))
+			continue;
+
+		mst_output[valid_outputs] = output;
+		valid_outputs++;
+	}
+
+	igt_require_f(dp_mst_outputs > 1, "No DP MST set up with >= 2 outputs found in a single topology\n");
+	igt_require_f(valid_outputs > 1, "DP MST outputs do not have the required HDCP support\n");
+
+	for_each_pipe(display, pipe)
+		max_pipe++;
+
+	if (valid_outputs > max_pipe)
+		valid_outputs = max_pipe;
+
+	pipe = PIPE_A;
+
+	for (count = 0; count < valid_outputs; count++) {
+		igt_assert_f(igt_pipe_connector_valid(pipe, mst_output[count]), "Output-pipe combination invalid\n");
+
+		prepare_modeset_on_mst_output(mst_output[count], pipe);
+		pipe++;
+	}
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	for (count = 0; count < valid_outputs; count++) {
+		igt_output_set_prop_value(mst_output[count], IGT_CONNECTOR_CONTENT_PROTECTION, CP_DESIRED);
+
+		if (output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE])
+			igt_output_set_prop_value(mst_output[count], IGT_CONNECTOR_HDCP_CONTENT_TYPE, content_type);
+	}
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	for (count = 0; count < valid_outputs; count++) {
+		ret = wait_for_prop_value(mst_output[count], CP_ENABLED, KERNEL_AUTH_TIME_ALLOWED_MSEC);
+		igt_assert_f(ret, "Content Protection not enabled on %s\n", mst_output[count]->name);
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(mst_output, valid_outputs, 0);
+
+	/*
+	 * Verify if CP is still enabled on other outputs by disabling CP on the first output.
+	 */
+	igt_debug("CP Prop being UNDESIRED on %s\n", mst_output[0]->name);
+	test_cp_disable(mst_output[0], COMMIT_ATOMIC);
+
+	/* CP is expected to be still enabled on other outputs*/
+	for (i = 1; i < valid_outputs; i++) {
+		/* Wait for the timeout to verify CP is not disabled */
+		ret = wait_for_prop_value(mst_output[i], CP_UNDESIRED, KERNEL_DISABLE_TIME_ALLOWED_MSEC);
+		igt_assert_f(!ret, "Content Protection not enabled on %s\n", mst_output[i]->name);
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(mst_output, valid_outputs, 1);
+}
+
 static void test_content_protection_cleanup(void)
 {
 	igt_display_t *display = &data.display;
@@ -514,6 +698,31 @@ static void test_content_protection_cleanup(void)
 		igt_info("CP Prop being UNDESIRED on %s\n", output->name);
 		test_cp_disable(output, COMMIT_ATOMIC);
 	}
+
+	igt_remove_fb(data.drm_fd, &data.red);
+	igt_remove_fb(data.drm_fd, &data.green);
+}
+
+static void create_fbs(void)
+{
+	igt_output_t *output;
+	int width, height;
+	drmModeModeInfo *mode;
+
+	for_each_connected_output(&data.display, output) {
+		mode = igt_output_get_mode(output);
+		igt_assert(mode);
+
+		width = max(width, mode->hdisplay);
+		height = max(height, mode->vdisplay);
+	}
+
+	igt_create_color_fb(data.drm_fd, width, height,
+			    DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE,
+			    1.f, 0.f, 0.f, &data.red);
+	igt_create_color_fb(data.drm_fd, width, height,
+			    DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE,
+			    0.f, 1.f, 0.f, &data.green);
 }
 
 igt_main
@@ -522,6 +731,8 @@ igt_main
 		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
 
 		igt_display_require(&data.display, data.drm_fd);
+
+		create_fbs();
 	}
 
 	igt_subtest("legacy") {
@@ -592,6 +803,28 @@ igt_main
 		test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
 	}
 
+	igt_describe("Test Content protection over DP MST");
+	igt_subtest("dp-mst-type-0") {
+		test_content_protection_mst(HDCP_CONTENT_TYPE_0);
+	}
+
+	igt_describe("Test Content protection over DP MST with LIC");
+	igt_subtest("dp-mst-lic-type-0") {
+		data.cp_tests = CP_LIC;
+		test_content_protection_mst(HDCP_CONTENT_TYPE_0);
+	}
+
+	igt_describe("Test Content protection over DP MST");
+	igt_subtest("dp-mst-type-1") {
+		test_content_protection_mst(HDCP_CONTENT_TYPE_1);
+	}
+
+	igt_describe("Test Content protection over DP MST with LIC");
+	igt_subtest("dp-mst-lic-type-1") {
+		data.cp_tests = CP_LIC;
+		test_content_protection_mst(HDCP_CONTENT_TYPE_1);
+	}
+
 	igt_fixture {
 		test_content_protection_cleanup();
 		igt_display_fini(&data.display);
Signature · 6 lines
2.22.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#2 lore raw

Re: [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_content_protection: Add MST subtests

Quoted 273 lines

-----Original Message-----
From: Karthik B S <[email protected]>
Sent: Thursday, February 4, 2021 9:40 AM
To: [email protected]
Cc: Gupta, Anshuman <[email protected]>; C, Ramalingam <[email protected]>; B S, Karthik <[email protected]>
Subject: [PATCH i-g-t v6 1/2] tests/kms_content_protection: Add MST subtests

Add subtests to verify content protection simultaneously on multiple outputs on the same MST topology.

v3: -Remove the logging which are no longer required. (Anshuman)
-Add logic to verify that CP is still enabled on other connectors
while disabling it on one of the connectors. (Anshuman)

v4: -Rename is_output_support_cp_capable(). (Anshuman, Ram)
-Rephrase the comment in is_dp_mst_output. (Anshuman) -Remove the redundant HDCP check hunk before HDCP disable.
(Anshuman)
-Check the link on the HDCP enabled outputs when one of the outputs
in the same DP MST topology is disabled. (Anshuman)
-Revert the change in test_content_protection_cleanup(). (Anshuman) -Create fb's in a common function for both MST and SST. (Ram) -Rename is_dp_mst_output() to output_is_dp_mst(). (Ram) -Remove the redundant igt_debug() before HDCP enable. (Ram) -Rephrase the igt_assert statement during HDCP enable. (Ram) -Optimize the execution time by checking the link for all MST
connectors together. (Ram)
-No need of loop where we disable CP on one of the MST outputs. (Ram) -During verification by disabling one of the MST outputs,
check for the negative case until the required timeout. (Ram)

v5: -Modify skip message when HDCP support is not present. (Anshuman)
-Remove the definition of color_t structure as it is no longer used.

v6: -Optimize execution time in LIC test. (Anshuman)

---
 tests/kms_content_protection.c | 277
++++++++++++++++++++++++++++++---
 1 file changed, 255 insertions(+), 22 deletions(-)
(quoted diff) +0 -0

b/tests/kms_content_protection.c index 303ed418..793f6e11 100644

tests/kms_content_protection.c +0 -7
@@ -179,16 +179,10 @@ static void modeset_with_fb(const enum pipe
 pipe, igt_output_t *output,
 	igt_output_override_mode(output, &mode);
 	igt_output_set_pipe(output, pipe);
 
-	igt_create_color_fb(display->drm_fd, mode.hdisplay,
 mode.vdisplay,
-			    DRM_FORMAT_XRGB8888,
 LOCAL_DRM_FORMAT_MOD_NONE,
-			    1.f, 0.f, 0.f, &data.red);
-	igt_create_color_fb(display->drm_fd, mode.hdisplay,
 mode.vdisplay,
-			    DRM_FORMAT_XRGB8888,
 LOCAL_DRM_FORMAT_MOD_NONE,
-			    0.f, 1.f, 0.f, &data.green);
-
 	primary = igt_output_get_plane_type(output,

DRM_PLANE_TYPE_PRIMARY);

tests/kms_content_protection.c +1 -0
 	igt_display_commit2(display, s);
 	igt_plane_set_fb(primary, &data.red);
+	igt_fb_set_size(&data.red, primary, mode.hdisplay, mode.vdisplay);
 
 	/* Wait for Flip completion before starting the HDCP authentication

*/

tests/kms_content_protection.c +1 -2
 	commit_display_and_wait_for_flip(s);
@@ -458,37 +452,83 @@ static bool sink_hdcp2_capable(igt_output_t
 *output)
 	return strstr(buf, "HDCP2.2");
 }
 
-static void
-test_content_protection(enum igt_commit_style s, int content_type)
+static void prepare_modeset_on_mst_output(igt_output_t *output,

enum

tests/kms_content_protection.c +8 -7
+pipe pipe)
 {
-	igt_display_t *display = &data.display;
-	igt_output_t *output;
-	int valid_tests = 0;
+	drmModeConnectorPtr c = output->config.connector;
+	drmModeModeInfo *mode;
+	igt_plane_t *primary;
+	int i, width, height;
 
-	if (data.cp_tests & CP_MEI_RELOAD)
-		igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
-			      "mei_hdcp module is not loaded\n");
+	mode = igt_output_get_mode(output);
 
-	for_each_connected_output(display, output) {
+	/*
+	 * TODO: Add logic to use the highest possible modes on each

output.

tests/kms_content_protection.c +3 -0
+	 * Currently using 2k modes by default on all the outputs.
+	 */
+	igt_debug("Before mode override: Output %s Mode hdisplay %d

Mode vdisplay %d\n",

tests/kms_content_protection.c +5 -0
+		   output->name, mode->hdisplay, mode->vdisplay);
+
+	if (mode->hdisplay > 1920 && mode->vdisplay > 1080) {
+		for (i = 0; i < c->count_modes; i++) {
+			if (c->modes[i].hdisplay <= 1920 && c-
Quoted 1 line

modes[i].vdisplay <= 1080) {

tests/kms_content_protection.c +8 -0
+				mode = &c->modes[i];
+				igt_output_override_mode(output, mode);
+				break;
+			}
+		}
+	}
+
+	igt_debug("After mode overide: Output %s Mode hdisplay %d

Mode vdisplay %d\n",

tests/kms_content_protection.c +7 -0
+		   output->name, mode->hdisplay, mode->vdisplay);
+
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_output_set_pipe(output, pipe);
+	primary = igt_output_get_plane_type(output,

DRM_PLANE_TYPE_PRIMARY);

tests/kms_content_protection.c +3 -0
+	igt_plane_set_fb(primary, NULL);
+	igt_plane_set_fb(primary, pipe % 2 ? &data.red : &data.green);
+	igt_fb_set_size(pipe % 2 ? &data.red : &data.green, primary, width,

height);

tests/kms_content_protection.c +4 -0
+	igt_plane_set_size(primary, width, height); }
+
+static bool output_hdcp_capable(igt_output_t *output, int content_type)
+{
 		if (!output-
Quoted 1 line

props[IGT_CONNECTOR_CONTENT_PROTECTION])

tests/kms_content_protection.c +1 -1
-			continue;
+			return false;
 
 		if (!output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE]

&&

tests/kms_content_protection.c +1 -3
 		    content_type)
-			continue;
-
-		igt_info("CP Test execution on %s\n", output->name);
+			return false;
 
 		if (content_type && !sink_hdcp2_capable(output)) {
 			igt_info("\tSkip %s (Sink has no HDCP2.2

support)\n",

tests/kms_content_protection.c +19 -2
 				 output->name);
-			continue;
+			return false;
 		} else if (!sink_hdcp_capable(output)) {
 			igt_info("\tSkip %s (Sink has no HDCP support)\n",
 				 output->name);
-			continue;
+			return false;
 		}
 
+		return true;
+}
+
+static void
+test_content_protection(enum igt_commit_style s, int content_type) {
+	igt_display_t *display = &data.display;
+	igt_output_t *output;
+	int valid_tests = 0;
+
+	if (data.cp_tests & CP_MEI_RELOAD)
+		igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
+			      "mei_hdcp module is not loaded\n");
+
+	for_each_connected_output(display, output) {
+		if (!output_hdcp_capable(output, content_type))
+			continue;
+
 		test_content_protection_on_output(output, s,

content_type);

tests/kms_content_protection.c +29 -0
 		valid_tests++;
 	}
@@ -496,6 +536,150 @@ test_content_protection(enum
 igt_commit_style s, int content_type)
 	igt_require_f(valid_tests, "No connector found with HDCP
 capability\n");  }
 
+static int parse_path_blob(char *blob_data) {
+	int connector_id;
+	char *encoder;
+
+	encoder = strtok(blob_data, ":");
+	igt_assert_f(!strcmp(encoder, "mst"), "PATH connector property
+expected to have 'mst'\n");
+
+	connector_id = atoi(strtok(NULL, "-"));
+
+	return connector_id;
+}
+
+static bool output_is_dp_mst(igt_output_t *output, int i) {
+	drmModePropertyBlobPtr path_blob = NULL;
+	uint64_t path_blob_id;
+	drmModeConnector *connector = output->config.connector;
+	struct kmstest_connector_config config;
+	const char *encoder;
+	int connector_id;
+	static int prev_connector_id;
+
+	kmstest_get_connector_config(data.drm_fd, output-
 >config.connector->connector_id, -1, &config);
+	encoder = kmstest_encoder_type_str(config.encoder-
 >encoder_type);
+
+	if (strcmp(encoder, "DP MST"))
+		return false;
+
+	igt_assert(kmstest_get_property(data.drm_fd, connector-
Quoted 1 line

connector_id,

tests/kms_content_protection.c +30 -0
+		   DRM_MODE_OBJECT_CONNECTOR, "PATH", NULL,
+		   &path_blob_id, NULL));
+
+	igt_assert(path_blob = drmModeGetPropertyBlob(data.drm_fd,
+path_blob_id));
+
+	connector_id = parse_path_blob((char *) path_blob->data);
+
+	/*
+	 * Discarding outputs of other DP MST topology.
+	 * Testing only on outputs on the topology we got previously
+	 */
+	if (i == 0) {
+		prev_connector_id = connector_id;
+	} else {
+		if (connector_id != prev_connector_id)
+			return false;
+	}
+
+	drmModeFreePropertyBlob(path_blob);
+
+	return true;
+}
+
+static void test_cp_lic_on_mst(igt_output_t *mst_outputs[], int
+valid_outputs, bool first_output) {
+	int ret, count;
+	uint64_t val;
+
+	/* Only wait for the first output, this optimizes the test execution

time */

tests/kms_content_protection.c +1 -0
+	ret = wait_for_prop_value(mst_outputs[first_output], CP_DESIRED,

LIC_PERIOD_MSEC);

tests/kms_content_protection.c +5 -0
+	igt_assert_f(!ret, "Content Protection LIC Failed on %s\n",
+mst_outputs[0]->name);
+
+	for (count = first_output + 1; count < valid_outputs; count++) {
+		val = igt_output_get_prop(mst_outputs[count],

IGT_CONNECTOR_CONTENT_PROTECTION);

tests/kms_content_protection.c +1 -0
+		igt_assert_f(val != CP_DESIRED, "Content Protection LIC

Failed on %s\n", mst_outputs[count]->name);

tests/kms_content_protection.c +8 -0
+	}
+}
+
+static void
+test_content_protection_mst(int content_type) {
+	igt_display_t *display = &data.display;
+	igt_output_t *output;
+	int valid_outputs = 0, dp_mst_outputs = 0, ret, count, max_pipe =

0, i;

tests/kms_content_protection.c test_content_protection(enum igt_commit_style s, int content_type) · line 622

Quoted 10 lines
tests/kms_content_protection.c +10 -0
+	enum pipe pipe;
+	igt_output_t *mst_output[IGT_MAX_PIPES];
+
+	for_each_connected_output(display, output) {
+		if (!output_is_dp_mst(output, valid_outputs))
+			continue;
+
+		dp_mst_outputs++;
+
+		if (!output_hdcp_capable(output, content_type))

Let's check hdcp capability after modeset on MST , we can't pre-assume modeset being done for multiple streams, without modeset we may not get hdcp capability.

Quoted 147 lines
tests/kms_content_protection.c +7 -0
+			continue;
+
+		mst_output[valid_outputs] = output;
+		valid_outputs++;
+	}
+
+	igt_require_f(dp_mst_outputs > 1, "No DP MST set up with >= 2

outputs found in a single topology\n");

tests/kms_content_protection.c +13 -0
+	igt_require_f(valid_outputs > 1, "DP MST outputs do not have the
+required HDCP support\n");
+
+	for_each_pipe(display, pipe)
+		max_pipe++;
+
+	if (valid_outputs > max_pipe)
+		valid_outputs = max_pipe;
+
+	pipe = PIPE_A;
+
+	for (count = 0; count < valid_outputs; count++) {
+		igt_assert_f(igt_pipe_connector_valid(pipe,

mst_output[count]),
+"Output-pipe combination invalid\n");

tests/kms_content_protection.c +2 -0
+
+		prepare_modeset_on_mst_output(mst_output[count],

pipe);

tests/kms_content_protection.c +11 -0
+		pipe++;
+	}
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	for (count = 0; count < valid_outputs; count++) {
+		igt_output_set_prop_value(mst_output[count],
+IGT_CONNECTOR_CONTENT_PROTECTION, CP_DESIRED);
+
+		if (output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE])
+			igt_output_set_prop_value(mst_output[count],

IGT_CONNECTOR_HDCP_CONTENT_TYPE, content_type);

tests/kms_content_protection.c +6 -0
+	}
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	for (count = 0; count < valid_outputs; count++) {
+		ret = wait_for_prop_value(mst_output[count],

CP_ENABLED, KERNEL_AUTH_TIME_ALLOWED_MSEC);

tests/kms_content_protection.c +1 -0
+		igt_assert_f(ret, "Content Protection not enabled on %s\n",

mst_output[count]->name);

tests/kms_content_protection.c +7 -0
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(mst_output, valid_outputs, 0);
+
+	/*
+	 * Verify if CP is still enabled on other outputs by disabling CP on

the first output.

tests/kms_content_protection.c +2 -0
+	 */
+	igt_debug("CP Prop being UNDESIRED on %s\n", mst_output[0]-
Quoted 1 line

name);

tests/kms_content_protection.c +6 -0
+	test_cp_disable(mst_output[0], COMMIT_ATOMIC);
+
+	/* CP is expected to be still enabled on other outputs*/
+	for (i = 1; i < valid_outputs; i++) {
+		/* Wait for the timeout to verify CP is not disabled */
+		ret = wait_for_prop_value(mst_output[i], CP_UNDESIRED,

KERNEL_DISABLE_TIME_ALLOWED_MSEC);

tests/kms_content_protection.c +1 -0
+		igt_assert_f(!ret, "Content Protection not enabled on %s\n",

mst_output[i]->name);

tests/kms_content_protection.c +5 -0
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(mst_output, valid_outputs, 1); }
+
 static void test_content_protection_cleanup(void)
 {
 	igt_display_t *display = &data.display; @@ -514,6 +698,31 @@

static void test_content_protection_cleanup(void)
igt_info("CP Prop being UNDESIRED on %s\n", output-

Quoted 1 line

name);

tests/kms_content_protection.c +20 -0
 		test_cp_disable(output, COMMIT_ATOMIC);
 	}
+
+	igt_remove_fb(data.drm_fd, &data.red);
+	igt_remove_fb(data.drm_fd, &data.green); }
+
+static void create_fbs(void)
+{
+	igt_output_t *output;
+	int width, height;
+	drmModeModeInfo *mode;
+
+	for_each_connected_output(&data.display, output) {
+		mode = igt_output_get_mode(output);
+		igt_assert(mode);
+
+		width = max(width, mode->hdisplay);
+		height = max(height, mode->vdisplay);
+	}
+
+	igt_create_color_fb(data.drm_fd, width, height,
+			    DRM_FORMAT_XRGB8888,

LOCAL_DRM_FORMAT_MOD_NONE,

tests/kms_content_protection.c +3 -0
+			    1.f, 0.f, 0.f, &data.red);
+	igt_create_color_fb(data.drm_fd, width, height,
+			    DRM_FORMAT_XRGB8888,

LOCAL_DRM_FORMAT_MOD_NONE,

tests/kms_content_protection.c +25 -0
+			    0.f, 1.f, 0.f, &data.green);
 }
 
 igt_main
@@ -522,6 +731,8 @@ igt_main
 		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
 
 		igt_display_require(&data.display, data.drm_fd);
+
+		create_fbs();
 	}
 
 	igt_subtest("legacy") {
@@ -592,6 +803,28 @@ igt_main
 		test_content_protection(COMMIT_ATOMIC,
 HDCP_CONTENT_TYPE_0);
 	}
 
+	igt_describe("Test Content protection over DP MST");
+	igt_subtest("dp-mst-type-0") {
+		test_content_protection_mst(HDCP_CONTENT_TYPE_0);
+	}
+
+	igt_describe("Test Content protection over DP MST with LIC");
+	igt_subtest("dp-mst-lic-type-0") {
+		data.cp_tests = CP_LIC;
+		test_content_protection_mst(HDCP_CONTENT_TYPE_0);
+	}
+
+	igt_describe("Test Content protection over DP MST");
+	igt_subtest("dp-mst-type-1") {
+		test_content_protection_mst(HDCP_CONTENT_TYPE_1);
+	}
+
+	igt_describe("Test Content protection over DP MST with LIC");
+	igt_subtest("dp-mst-lic-type-1") {
+		data.cp_tests = CP_LIC;
+		test_content_protection_mst(HDCP_CONTENT_TYPE_1);
+	}
+
 	igt_fixture {
 		test_content_protection_cleanup();
Quoted 3 lines

igt_display_fini(&data.display);
--
2.22.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#3 lore raw

Re: [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_content_protection: Add MST subtests

Quoted 276 lines · Anshuman
Quoted 276 lines

-----Original Message-----
From: Karthik B S <[email protected]>
Sent: Thursday, February 4, 2021 9:40 AM
To: [email protected]
Cc: Gupta, Anshuman <[email protected]>; C, Ramalingam <[email protected]>; B S, Karthik <[email protected]>
Subject: [PATCH i-g-t v6 1/2] tests/kms_content_protection: Add MST subtests

Add subtests to verify content protection simultaneously on multiple outputs on the same MST topology.

v3: -Remove the logging which are no longer required. (Anshuman)
-Add logic to verify that CP is still enabled on other connectors
while disabling it on one of the connectors. (Anshuman)

v4: -Rename is_output_support_cp_capable(). (Anshuman, Ram)
-Rephrase the comment in is_dp_mst_output. (Anshuman) -Remove the redundant HDCP check hunk before HDCP disable.
(Anshuman)
-Check the link on the HDCP enabled outputs when one of the outputs
in the same DP MST topology is disabled. (Anshuman)
-Revert the change in test_content_protection_cleanup(). (Anshuman) -Create fb's in a common function for both MST and SST. (Ram) -Rename is_dp_mst_output() to output_is_dp_mst(). (Ram) -Remove the redundant igt_debug() before HDCP enable. (Ram) -Rephrase the igt_assert statement during HDCP enable. (Ram) -Optimize the execution time by checking the link for all MST
connectors together. (Ram)
-No need of loop where we disable CP on one of the MST outputs. (Ram) -During verification by disabling one of the MST outputs,
check for the negative case until the required timeout. (Ram)

v5: -Modify skip message when HDCP support is not present. (Anshuman)
-Remove the definition of color_t structure as it is no longer used.

v6: -Optimize execution time in LIC test. (Anshuman)

---
  tests/kms_content_protection.c | 277
++++++++++++++++++++++++++++++---
  1 file changed, 255 insertions(+), 22 deletions(-)
(quoted diff) +0 -0

b/tests/kms_content_protection.c index 303ed418..793f6e11 100644

tests/kms_content_protection.c +0 -7
@@ -179,16 +179,10 @@ static void modeset_with_fb(const enum pipe
 pipe, igt_output_t *output,
  	igt_output_override_mode(output, &mode);
  	igt_output_set_pipe(output, pipe);
 
-	igt_create_color_fb(display->drm_fd, mode.hdisplay,
 mode.vdisplay,
-			    DRM_FORMAT_XRGB8888,
 LOCAL_DRM_FORMAT_MOD_NONE,
-			    1.f, 0.f, 0.f, &data.red);
-	igt_create_color_fb(display->drm_fd, mode.hdisplay,
 mode.vdisplay,
-			    DRM_FORMAT_XRGB8888,
 LOCAL_DRM_FORMAT_MOD_NONE,
-			    0.f, 1.f, 0.f, &data.green);
-
  	primary = igt_output_get_plane_type(output,

DRM_PLANE_TYPE_PRIMARY);
igt_display_commit2(display, s);
igt_plane_set_fb(primary, &data.red);

tests/kms_content_protection.c +1 -0
+	igt_fb_set_size(&data.red, primary, mode.hdisplay, mode.vdisplay);
 
  	/* Wait for Flip completion before starting the HDCP authentication

*/
commit_display_and_wait_for_flip(s);

tests/kms_content_protection.c +1 -2
@@ -458,37 +452,83 @@ static bool sink_hdcp2_capable(igt_output_t
 *output)
  	return strstr(buf, "HDCP2.2");
  }
 
-static void
-test_content_protection(enum igt_commit_style s, int content_type)
+static void prepare_modeset_on_mst_output(igt_output_t *output,

enum

tests/kms_content_protection.c +8 -7
+pipe pipe)
  {
-	igt_display_t *display = &data.display;
-	igt_output_t *output;
-	int valid_tests = 0;
+	drmModeConnectorPtr c = output->config.connector;
+	drmModeModeInfo *mode;
+	igt_plane_t *primary;
+	int i, width, height;
 
-	if (data.cp_tests & CP_MEI_RELOAD)
-		igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
-			      "mei_hdcp module is not loaded\n");
+	mode = igt_output_get_mode(output);
 
-	for_each_connected_output(display, output) {
+	/*
+	 * TODO: Add logic to use the highest possible modes on each

output.

tests/kms_content_protection.c +3 -0
+	 * Currently using 2k modes by default on all the outputs.
+	 */
+	igt_debug("Before mode override: Output %s Mode hdisplay %d

Mode vdisplay %d\n",

tests/kms_content_protection.c +5 -0
+		   output->name, mode->hdisplay, mode->vdisplay);
+
+	if (mode->hdisplay > 1920 && mode->vdisplay > 1080) {
+		for (i = 0; i < c->count_modes; i++) {
+			if (c->modes[i].hdisplay <= 1920 && c-
Quoted 1 line

modes[i].vdisplay <= 1080) {

tests/kms_content_protection.c +8 -0
+				mode = &c->modes[i];
+				igt_output_override_mode(output, mode);
+				break;
+			}
+		}
+	}
+
+	igt_debug("After mode overide: Output %s Mode hdisplay %d

Mode vdisplay %d\n",

tests/kms_content_protection.c +7 -0
+		   output->name, mode->hdisplay, mode->vdisplay);
+
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_output_set_pipe(output, pipe);
+	primary = igt_output_get_plane_type(output,

DRM_PLANE_TYPE_PRIMARY);

tests/kms_content_protection.c +3 -0
+	igt_plane_set_fb(primary, NULL);
+	igt_plane_set_fb(primary, pipe % 2 ? &data.red : &data.green);
+	igt_fb_set_size(pipe % 2 ? &data.red : &data.green, primary, width,

height);

tests/kms_content_protection.c +4 -0
+	igt_plane_set_size(primary, width, height); }
+
+static bool output_hdcp_capable(igt_output_t *output, int content_type)
+{
  		if (!output-
Quoted 1 line

props[IGT_CONNECTOR_CONTENT_PROTECTION])

tests/kms_content_protection.c +1 -1
-			continue;
+			return false;
 
  		if (!output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE]

&&
content_type)

tests/kms_content_protection.c +1 -3
-			continue;
-
-		igt_info("CP Test execution on %s\n", output->name);
+			return false;
 
  		if (content_type && !sink_hdcp2_capable(output)) {
  			igt_info("\tSkip %s (Sink has no HDCP2.2

support)\n",
output->name);

tests/kms_content_protection.c +19 -2
-			continue;
+			return false;
  		} else if (!sink_hdcp_capable(output)) {
  			igt_info("\tSkip %s (Sink has no HDCP support)\n",
  				 output->name);
-			continue;
+			return false;
  		}
 
+		return true;
+}
+
+static void
+test_content_protection(enum igt_commit_style s, int content_type) {
+	igt_display_t *display = &data.display;
+	igt_output_t *output;
+	int valid_tests = 0;
+
+	if (data.cp_tests & CP_MEI_RELOAD)
+		igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
+			      "mei_hdcp module is not loaded\n");
+
+	for_each_connected_output(display, output) {
+		if (!output_hdcp_capable(output, content_type))
+			continue;
+
  		test_content_protection_on_output(output, s,

content_type);
valid_tests++;
}

tests/kms_content_protection.c +29 -0
@@ -496,6 +536,150 @@ test_content_protection(enum
 igt_commit_style s, int content_type)
  	igt_require_f(valid_tests, "No connector found with HDCP
 capability\n");  }
 
+static int parse_path_blob(char *blob_data) {
+	int connector_id;
+	char *encoder;
+
+	encoder = strtok(blob_data, ":");
+	igt_assert_f(!strcmp(encoder, "mst"), "PATH connector property
+expected to have 'mst'\n");
+
+	connector_id = atoi(strtok(NULL, "-"));
+
+	return connector_id;
+}
+
+static bool output_is_dp_mst(igt_output_t *output, int i) {
+	drmModePropertyBlobPtr path_blob = NULL;
+	uint64_t path_blob_id;
+	drmModeConnector *connector = output->config.connector;
+	struct kmstest_connector_config config;
+	const char *encoder;
+	int connector_id;
+	static int prev_connector_id;
+
+	kmstest_get_connector_config(data.drm_fd, output-
 > config.connector->connector_id, -1, &config);
+	encoder = kmstest_encoder_type_str(config.encoder-
 > encoder_type);
+
+	if (strcmp(encoder, "DP MST"))
+		return false;
+
+	igt_assert(kmstest_get_property(data.drm_fd, connector-
Quoted 1 line

connector_id,

tests/kms_content_protection.c +30 -0
+		   DRM_MODE_OBJECT_CONNECTOR, "PATH", NULL,
+		   &path_blob_id, NULL));
+
+	igt_assert(path_blob = drmModeGetPropertyBlob(data.drm_fd,
+path_blob_id));
+
+	connector_id = parse_path_blob((char *) path_blob->data);
+
+	/*
+	 * Discarding outputs of other DP MST topology.
+	 * Testing only on outputs on the topology we got previously
+	 */
+	if (i == 0) {
+		prev_connector_id = connector_id;
+	} else {
+		if (connector_id != prev_connector_id)
+			return false;
+	}
+
+	drmModeFreePropertyBlob(path_blob);
+
+	return true;
+}
+
+static void test_cp_lic_on_mst(igt_output_t *mst_outputs[], int
+valid_outputs, bool first_output) {
+	int ret, count;
+	uint64_t val;
+
+	/* Only wait for the first output, this optimizes the test execution

time */

tests/kms_content_protection.c +1 -0
+	ret = wait_for_prop_value(mst_outputs[first_output], CP_DESIRED,

LIC_PERIOD_MSEC);

tests/kms_content_protection.c +5 -0
+	igt_assert_f(!ret, "Content Protection LIC Failed on %s\n",
+mst_outputs[0]->name);
+
+	for (count = first_output + 1; count < valid_outputs; count++) {
+		val = igt_output_get_prop(mst_outputs[count],

IGT_CONNECTOR_CONTENT_PROTECTION);

tests/kms_content_protection.c +1 -0
+		igt_assert_f(val != CP_DESIRED, "Content Protection LIC

Failed on %s\n", mst_outputs[count]->name);

tests/kms_content_protection.c +8 -0
+	}
+}
+
+static void
+test_content_protection_mst(int content_type) {
+	igt_display_t *display = &data.display;
+	igt_output_t *output;
+	int valid_outputs = 0, dp_mst_outputs = 0, ret, count, max_pipe =

0, i;

tests/kms_content_protection.c +4 -0
+	enum pipe pipe;
+	igt_output_t *mst_output[IGT_MAX_PIPES];
+
+	for_each_connected_output(display, output) {
Quoted 8 lines

tests/kms_content_protection.c test_content_protection(enum igt_commit_style s, int content_type) · line 622

Quoted 6 lines
tests/kms_content_protection.c +6 -0
+		if (!output_is_dp_mst(output, valid_outputs))
+			continue;
+
+		dp_mst_outputs++;
+
+		if (!output_hdcp_capable(output, content_type))

Let's check hdcp capability after modeset on MST , we can't pre-assume modeset being done for multiple streams, without modeset we may not get hdcp capability.

Thank you for the review. Sure, I'll update this.

Thanks and Regards,

Karthik.B.S

Quoted 142 lines
Quoted 142 lines
tests/kms_content_protection.c +7 -0
+			continue;
+
+		mst_output[valid_outputs] = output;
+		valid_outputs++;
+	}
+
+	igt_require_f(dp_mst_outputs > 1, "No DP MST set up with >= 2

outputs found in a single topology\n");

tests/kms_content_protection.c +13 -0
+	igt_require_f(valid_outputs > 1, "DP MST outputs do not have the
+required HDCP support\n");
+
+	for_each_pipe(display, pipe)
+		max_pipe++;
+
+	if (valid_outputs > max_pipe)
+		valid_outputs = max_pipe;
+
+	pipe = PIPE_A;
+
+	for (count = 0; count < valid_outputs; count++) {
+		igt_assert_f(igt_pipe_connector_valid(pipe,

mst_output[count]),
+"Output-pipe combination invalid\n");

tests/kms_content_protection.c +2 -0
+
+		prepare_modeset_on_mst_output(mst_output[count],

pipe);

tests/kms_content_protection.c +11 -0
+		pipe++;
+	}
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	for (count = 0; count < valid_outputs; count++) {
+		igt_output_set_prop_value(mst_output[count],
+IGT_CONNECTOR_CONTENT_PROTECTION, CP_DESIRED);
+
+		if (output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE])
+			igt_output_set_prop_value(mst_output[count],

IGT_CONNECTOR_HDCP_CONTENT_TYPE, content_type);

tests/kms_content_protection.c +6 -0
+	}
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	for (count = 0; count < valid_outputs; count++) {
+		ret = wait_for_prop_value(mst_output[count],

CP_ENABLED, KERNEL_AUTH_TIME_ALLOWED_MSEC);

tests/kms_content_protection.c +1 -0
+		igt_assert_f(ret, "Content Protection not enabled on %s\n",

mst_output[count]->name);

tests/kms_content_protection.c +7 -0
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(mst_output, valid_outputs, 0);
+
+	/*
+	 * Verify if CP is still enabled on other outputs by disabling CP on

the first output.

tests/kms_content_protection.c +2 -0
+	 */
+	igt_debug("CP Prop being UNDESIRED on %s\n", mst_output[0]-
Quoted 1 line

name);

tests/kms_content_protection.c +6 -0
+	test_cp_disable(mst_output[0], COMMIT_ATOMIC);
+
+	/* CP is expected to be still enabled on other outputs*/
+	for (i = 1; i < valid_outputs; i++) {
+		/* Wait for the timeout to verify CP is not disabled */
+		ret = wait_for_prop_value(mst_output[i], CP_UNDESIRED,

KERNEL_DISABLE_TIME_ALLOWED_MSEC);

tests/kms_content_protection.c +1 -0
+		igt_assert_f(!ret, "Content Protection not enabled on %s\n",

mst_output[i]->name);

tests/kms_content_protection.c +5 -0
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(mst_output, valid_outputs, 1); }
+
  static void test_content_protection_cleanup(void)
  {
  	igt_display_t *display = &data.display; @@ -514,6 +698,31 @@

static void test_content_protection_cleanup(void)
igt_info("CP Prop being UNDESIRED on %s\n", output-

Quoted 1 line

name);

test_cp_disable(output, COMMIT_ATOMIC);
}

tests/kms_content_protection.c +20 -0
+
+	igt_remove_fb(data.drm_fd, &data.red);
+	igt_remove_fb(data.drm_fd, &data.green); }
+
+static void create_fbs(void)
+{
+	igt_output_t *output;
+	int width, height;
+	drmModeModeInfo *mode;
+
+	for_each_connected_output(&data.display, output) {
+		mode = igt_output_get_mode(output);
+		igt_assert(mode);
+
+		width = max(width, mode->hdisplay);
+		height = max(height, mode->vdisplay);
+	}
+
+	igt_create_color_fb(data.drm_fd, width, height,
+			    DRM_FORMAT_XRGB8888,

LOCAL_DRM_FORMAT_MOD_NONE,

tests/kms_content_protection.c +3 -0
+			    1.f, 0.f, 0.f, &data.red);
+	igt_create_color_fb(data.drm_fd, width, height,
+			    DRM_FORMAT_XRGB8888,

LOCAL_DRM_FORMAT_MOD_NONE,

tests/kms_content_protection.c +22 -0
+			    0.f, 1.f, 0.f, &data.green);
  }
 
  igt_main
@@ -522,6 +731,8 @@ igt_main
  		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
 
  		igt_display_require(&data.display, data.drm_fd);
+
+		create_fbs();
  	}
 
  	igt_subtest("legacy") {
@@ -592,6 +803,28 @@ igt_main
  		test_content_protection(COMMIT_ATOMIC,
 HDCP_CONTENT_TYPE_0);
  	}
 
+	igt_describe("Test Content protection over DP MST");
+	igt_subtest("dp-mst-type-0") {
+		test_content_protection_mst(HDCP_CONTENT_TYPE_0);
+	}
+
+	igt_describe("Test Content protection over DP MST with LIC");
+	igt_subtest("dp-mst-lic-type-0") {
+		data.cp_tests = CP_LIC;
+		test_content_protection_mst(HDCP_CONTENT_TYPE_0);
+	}
+
+	igt_describe("Test Content protection over DP MST");
+	igt_subtest("dp-mst-type-1") {
+		test_content_protection_mst(HDCP_CONTENT_TYPE_1);
+	}
+
+	igt_describe("Test Content protection over DP MST with LIC");
+	igt_subtest("dp-mst-lic-type-1") {
+		data.cp_tests = CP_LIC;
Quoted 8 lines
Quoted 8 lines
tests/kms_content_protection.c +3 -0
+		test_content_protection_mst(HDCP_CONTENT_TYPE_1);
+	}
+
  	igt_fixture {
  		test_content_protection_cleanup();

igt_display_fini(&data.display);
--
2.22.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#4 lore raw

PATCH v6 2/2 CI HAX: Add MST tests to fast feedback testlist

In reply to Karthik B S

Add the MST subtests to the fast feedback test list as shards TGL does not have HDCP panels.

v3: -Fix Typo. (Petri)

---
 tests/intel-ci/fast-feedback.testlist | 6 ++++++
 1 file changed, 6 insertions(+)
tests/intel-ci/fast-feedback.testlist +6 -0
index eaa904fa..6221269c 100644
@@ -159,6 +159,12 @@ igt@vgem_basic@mmap
 igt@vgem_basic@second-client
 igt@vgem_basic@sysfs
 
+# HAX: Temporary addition to the fast-feedback list as shards doesnt have MST setup.
+igt@kms_content_protection@dp-mst-type-0
+igt@kms_content_protection@dp-mst-lic-type-0
+igt@kms_content_protection@dp-mst-type-1
+igt@kms_content_protection@dp-mst-lic-type-1
+
 # All tests that do module unloading and reloading are executed last.
 # They will sometimes reveal issues of earlier tests leaving the
 # driver in a broken state that is not otherwise noticed in that test.
Signature · 6 lines
2.22.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#5 lore raw

[igt-dev] ✓ Fi.CI.BAT: success for Add subtests for HDCP over MST (rev5)

In reply to Karthik B S
== Series Details ==

== Series Details ==

Series: Add subtests for HDCP over MST (rev5)
URL : https://patchwork.freedesktop.org/series/82987/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9728 -> IGTPW_5476
====================================================

Summary
-------

**SUCCESS**

No regressions found.

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

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

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

### IGT changes ###

#### Possible regressions ####

* {igt@kms_content_protection@dp-mst-lic-type-0} (NEW):
- fi-tgl-u2: NOTRUN -> [SKIP][1] +3 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-tgl-u2/igt@[email protected]
- {fi-ehl-1}: NOTRUN -> [SKIP][2] +3 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-ehl-1/igt@[email protected]
- fi-tgl-y: NOTRUN -> [SKIP][3] +3 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-tgl-y/igt@[email protected]

* {igt@kms_content_protection@dp-mst-lic-type-1} (NEW):
- fi-cml-u2: NOTRUN -> [SKIP][4] +3 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-cml-u2/igt@[email protected]
- fi-icl-y: NOTRUN -> [SKIP][5] +3 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-icl-y/igt@[email protected]
- fi-cml-s: NOTRUN -> [SKIP][6] +3 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-cml-s/igt@[email protected]
- {fi-hsw-gt1}: NOTRUN -> [FAIL][7] +3 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-hsw-gt1/igt@[email protected]

* {igt@kms_content_protection@dp-mst-type-0} (NEW):
- {fi-tgl-dsi}: NOTRUN -> [SKIP][8] +3 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-tgl-dsi/igt@[email protected]
- {fi-rkl-11500t}: NOTRUN -> [SKIP][9] +3 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-rkl-11500t/igt@[email protected]
- fi-kbl-guc: NOTRUN -> [FAIL][10] +3 similar issues
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-kbl-guc/igt@[email protected]
- fi-bsw-nick: NOTRUN -> [FAIL][11] +3 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-bsw-nick/igt@[email protected]

* {igt@kms_content_protection@dp-mst-type-1} (NEW):
- fi-icl-u2: NOTRUN -> [SKIP][12] +3 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-icl-u2/igt@[email protected]

New tests
---------

New tests have been introduced between CI_DRM_9728 and IGTPW_5476:

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

* igt@kms_content_protection@dp-mst-lic-type-0:
- Statuses : 3 fail(s) 32 skip(s)
- Exec time: [0.0, 0.00] s

* igt@kms_content_protection@dp-mst-lic-type-1:
- Statuses : 3 fail(s) 32 skip(s)
- Exec time: [0.0, 0.00] s

* igt@kms_content_protection@dp-mst-type-0:
- Statuses : 3 fail(s) 32 skip(s)
- Exec time: [0.0, 0.00] s

* igt@kms_content_protection@dp-mst-type-1:
- Statuses : 3 fail(s) 32 skip(s)
- Exec time: [0.0, 0.00] s

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

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

### IGT changes ###

#### Issues hit ####

* {igt@kms_content_protection@dp-mst-lic-type-0} (NEW):
- fi-snb-2520m: NOTRUN -> [SKIP][13] ([fdo#109271]) +3 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-snb-2520m/igt@[email protected]
- fi-hsw-4770: NOTRUN -> [SKIP][14] ([fdo#109271]) +3 similar issues
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-hsw-4770/igt@[email protected]
- fi-bxt-dsi: NOTRUN -> [SKIP][15] ([fdo#109271]) +3 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-bxt-dsi/igt@[email protected]
- fi-cfl-8700k: NOTRUN -> [SKIP][16] ([fdo#109271]) +3 similar issues
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-cfl-8700k/igt@[email protected]
- fi-skl-6700k2: NOTRUN -> [SKIP][17] ([fdo#109271]) +3 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-skl-6700k2/igt@[email protected]
- fi-elk-e7500: NOTRUN -> [SKIP][18] ([fdo#109271]) +3 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-elk-e7500/igt@[email protected]
- fi-ilk-650: NOTRUN -> [SKIP][19] ([fdo#109271]) +3 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-ilk-650/igt@[email protected]
- fi-bsw-n3050: NOTRUN -> [SKIP][20] ([fdo#109271]) +3 similar issues
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-bsw-n3050/igt@[email protected]
- fi-kbl-x1275: NOTRUN -> [SKIP][21] ([fdo#109271]) +3 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-kbl-x1275/igt@[email protected]

* {igt@kms_content_protection@dp-mst-lic-type-1} (NEW):
- fi-snb-2600: NOTRUN -> [SKIP][22] ([fdo#109271]) +3 similar issues
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-snb-2600/igt@[email protected]
- fi-ivb-3770: NOTRUN -> [SKIP][23] ([fdo#109271]) +3 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-ivb-3770/igt@[email protected]
- fi-skl-guc: NOTRUN -> [SKIP][24] ([fdo#109271]) +3 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-skl-guc/igt@[email protected]

* {igt@kms_content_protection@dp-mst-type-0} (NEW):
- fi-glk-dsi: NOTRUN -> [SKIP][25] ([fdo#109271]) +3 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-glk-dsi/igt@[email protected]
- fi-kbl-r: NOTRUN -> [SKIP][26] ([fdo#109271]) +3 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-kbl-r/igt@[email protected]
- fi-kbl-7500u: NOTRUN -> [SKIP][27] ([fdo#109271]) +3 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-kbl-7500u/igt@[email protected]
- fi-cfl-8109u: NOTRUN -> [SKIP][28] ([fdo#109271]) +3 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-cfl-8109u/igt@[email protected]
- fi-bdw-5557u: NOTRUN -> [SKIP][29] ([fdo#109271]) +3 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-bdw-5557u/igt@[email protected]

* {igt@kms_content_protection@dp-mst-type-1} (NEW):
- fi-skl-6600u: NOTRUN -> [SKIP][30] ([fdo#109271]) +3 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-skl-6600u/igt@[email protected]
- fi-pnv-d510: NOTRUN -> [SKIP][31] ([fdo#109271]) +3 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-pnv-d510/igt@[email protected]
- fi-byt-j1900: NOTRUN -> [SKIP][32] ([fdo#109271]) +3 similar issues
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-byt-j1900/igt@[email protected]
- fi-cfl-guc: NOTRUN -> [SKIP][33] ([fdo#109271]) +3 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-cfl-guc/igt@[email protected]
- fi-kbl-soraka: NOTRUN -> [SKIP][34] ([fdo#109271]) +3 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-kbl-soraka/igt@[email protected]
- fi-bsw-kefka: NOTRUN -> [SKIP][35] ([fdo#109271]) +3 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-bsw-kefka/igt@[email protected]

* igt@prime_vgem@basic-gtt:
- fi-tgl-y: [PASS][36] -> [DMESG-WARN][37] ([i915#402]) +1 similar issue
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/fi-tgl-y/igt@[email protected]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-tgl-y/igt@[email protected]

#### Possible fixes ####

* igt@gem_ringfill@basic-all:
- fi-tgl-y: [DMESG-WARN][38] ([i915#402]) -> [PASS][39] +1 similar issue
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/fi-tgl-y/igt@[email protected]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-tgl-y/igt@[email protected]

* igt@i915_selftest@live@client:
- fi-glk-dsi: [DMESG-FAIL][40] -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/fi-glk-dsi/igt@i915_selftest@[email protected]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/fi-glk-dsi/igt@i915_selftest@[email protected]

{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
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402

Participating hosts (44 -> 38)
------------------------------

Missing (6): fi-jsl-1 fi-ilk-m540 fi-bsw-cyan fi-ctg-p8600 fi-dg1-1 fi-bdw-samus

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

* CI: CI-20190529 -> None
* IGT: IGT_5989 -> IGTPW_5476

CI-20190529: 20190529
CI_DRM_9728: 5e206bdabfde5ddd44a6aa7a0ab02bd9334d62b9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5476: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/index.html
IGT_5989: 57a96840fd5aa7ec48c2f84b30e0420f84ec7386 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Testlist changes ==

+igt@kms_content_protection@dp-mst-lic-type-0
+igt@kms_content_protection@dp-mst-lic-type-1
+igt@kms_content_protection@dp-mst-type-0
+igt@kms_content_protection@dp-mst-type-1

== Logs ==

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

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#6 lore raw

[igt-dev] ✓ Fi.CI.IGT: success for Add subtests for HDCP over MST (rev5)

In reply to Karthik B S
== Series Details ==

== Series Details ==

Series: Add subtests for HDCP over MST (rev5)
URL : https://patchwork.freedesktop.org/series/82987/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9728_full -> IGTPW_5476_full
====================================================

Summary
-------

**SUCCESS**

No regressions found.

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

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

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

### IGT changes ###

#### Possible regressions ####

* {igt@kms_content_protection@dp-mst-lic-type-1} (NEW):
- shard-iclb: NOTRUN -> [SKIP][1] +3 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb5/igt@[email protected]

* {igt@kms_content_protection@dp-mst-type-0} (NEW):
- shard-tglb: NOTRUN -> [SKIP][2] +3 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb5/igt@[email protected]

New tests
---------

New tests have been introduced between CI_DRM_9728_full and IGTPW_5476_full:

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

* igt@kms_content_protection@dp-mst-lic-type-0:
- Statuses : 7 skip(s)
- Exec time: [0.0, 0.00] s

* igt@kms_content_protection@dp-mst-lic-type-1:
- Statuses : 7 skip(s)
- Exec time: [0.0, 0.00] s

* igt@kms_content_protection@dp-mst-type-0:
- Statuses : 7 skip(s)
- Exec time: [0.0] s

* igt@kms_content_protection@dp-mst-type-1:
- Statuses : 7 skip(s)
- Exec time: [0.0] s

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

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

### IGT changes ###

#### Issues hit ####

* igt@gem_ctx_persistence@clone:
- shard-snb: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#1099])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-snb4/igt@[email protected]
- shard-hsw: NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1099])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw2/igt@[email protected]

* igt@gem_ctx_persistence@close-replace-race:
- shard-glk: [PASS][5] -> [TIMEOUT][6] ([i915#2918])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-glk9/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk3/igt@[email protected]

* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-tglb: [PASS][7] -> [FAIL][8] ([i915#2842])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-tglb3/igt@gem_exec_fair@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb8/igt@gem_exec_fair@[email protected]

* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-kbl: NOTRUN -> [FAIL][9] ([i915#2842])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl6/igt@gem_exec_fair@[email protected]

* igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][10] ([i915#2842])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb1/igt@gem_exec_fair@[email protected]

* igt@gem_exec_fair@basic-none@vecs0:
- shard-apl: [PASS][11] -> [FAIL][12] ([i915#2842])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-apl7/igt@gem_exec_fair@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl3/igt@gem_exec_fair@[email protected]

* igt@gem_exec_reloc@basic-parallel:
- shard-kbl: NOTRUN -> [TIMEOUT][13] ([i915#1729])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl4/igt@[email protected]
- shard-apl: NOTRUN -> [TIMEOUT][14] ([i915#1729])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl1/igt@[email protected]

* igt@gem_exec_reloc@basic-wide-active@bcs0:
- shard-apl: NOTRUN -> [FAIL][15] ([i915#2389]) +3 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl8/igt@gem_exec_reloc@[email protected]

* igt@gem_exec_reloc@basic-wide-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][16] ([i915#2389])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb2/igt@gem_exec_reloc@[email protected]

* igt@gem_exec_whisper@basic-queues-forked-all:
- shard-glk: [PASS][17] -> [DMESG-WARN][18] ([i915#118] / [i915#95]) +1 similar issue
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-glk1/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk8/igt@[email protected]

* igt@gem_pwrite@basic-exhaustion:
- shard-apl: NOTRUN -> [WARN][19] ([i915#2658])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl8/igt@[email protected]

* igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled:
- shard-iclb: NOTRUN -> [SKIP][20] ([i915#768])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb6/igt@[email protected]

* igt@gem_userptr_blits@process-exit-mmap@wb:
- shard-apl: NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#1699]) +3 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl3/igt@gem_userptr_blits@[email protected]

* igt@gem_userptr_blits@vma-merge:
- shard-kbl: NOTRUN -> [INCOMPLETE][22] ([i915#2502] / [i915#2667])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl1/igt@[email protected]

* igt@gem_workarounds@suspend-resume-fd:
- shard-apl: NOTRUN -> [DMESG-WARN][23] ([i915#180])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl1/igt@[email protected]

* igt@gen7_exec_parse@oacontrol-tracking:
- shard-tglb: NOTRUN -> [SKIP][24] ([fdo#109289])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb5/igt@[email protected]

* igt@gen9_exec_parse@allowed-all:
- shard-iclb: NOTRUN -> [SKIP][25] ([fdo#112306])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb2/igt@[email protected]

* igt@gen9_exec_parse@basic-rejected-ctx-param:
- shard-tglb: NOTRUN -> [SKIP][26] ([fdo#112306]) +2 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb8/igt@[email protected]

* igt@gen9_exec_parse@shadow-peek:
- shard-tglb: NOTRUN -> [SKIP][27] ([i915#2856])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb5/igt@[email protected]

* igt@i915_pm_dc@dc6-dpms:
- shard-tglb: NOTRUN -> [FAIL][28] ([i915#454])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb8/igt@[email protected]

* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [PASS][29] -> [FAIL][30] ([i915#454])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-iclb4/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb6/igt@[email protected]

* igt@i915_pm_rc6_residency@rc6-idle:
- shard-hsw: [PASS][31] -> [WARN][32] ([i915#1519])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-hsw4/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw4/igt@[email protected]

* igt@i915_query@query-topology-unsupported:
- shard-tglb: NOTRUN -> [SKIP][33] ([fdo#109302])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb1/igt@[email protected]

* igt@kms_async_flips@test-time-stamp:
- shard-tglb: NOTRUN -> [FAIL][34] ([i915#2597])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb6/igt@[email protected]

* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-tglb: NOTRUN -> [SKIP][35] ([fdo#111614])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb5/igt@[email protected]

* igt@kms_big_fb@yf-tiled-addfb:
- shard-tglb: NOTRUN -> [SKIP][36] ([fdo#111615]) +1 similar issue
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb1/igt@[email protected]

* igt@kms_chamelium@dp-edid-change-during-suspend:
- shard-apl: NOTRUN -> [SKIP][37] ([fdo#109271] / [fdo#111827]) +11 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl8/igt@[email protected]

* igt@kms_chamelium@dp-hpd-with-enabled-mode:
- shard-glk: NOTRUN -> [SKIP][38] ([fdo#109271] / [fdo#111827]) +1 similar issue
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk6/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][39] ([fdo#109284] / [fdo#111827])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb1/igt@[email protected]

* igt@kms_color@pipe-b-degamma:
- shard-tglb: NOTRUN -> [FAIL][40] ([i915#1149])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb1/igt@[email protected]

* igt@kms_color_chamelium@pipe-a-ctm-0-75:
- shard-kbl: NOTRUN -> [SKIP][41] ([fdo#109271] / [fdo#111827]) +19 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl4/igt@[email protected]

* igt@kms_color_chamelium@pipe-d-ctm-0-5:
- shard-snb: NOTRUN -> [SKIP][42] ([fdo#109271] / [fdo#111827]) +1 similar issue
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-snb2/igt@[email protected]
- shard-hsw: NOTRUN -> [SKIP][43] ([fdo#109271] / [fdo#111827]) +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw7/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][44] ([fdo#109278] / [fdo#109284] / [fdo#111827])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb3/igt@[email protected]

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

* {igt@kms_content_protection@dp-mst-type-1} (NEW):
- shard-hsw: NOTRUN -> [SKIP][46] ([fdo#109271]) +41 similar issues
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw8/igt@[email protected]

* igt@kms_content_protection@srm:
- shard-kbl: NOTRUN -> [TIMEOUT][47] ([i915#1319])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl7/igt@[email protected]
- shard-apl: NOTRUN -> [TIMEOUT][48] ([i915#1319])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl4/igt@[email protected]

* igt@kms_cursor_crc@pipe-b-cursor-256x256-random:
- shard-kbl: [PASS][49] -> [FAIL][50] ([i915#54])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-kbl7/igt@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl1/igt@[email protected]
- shard-apl: [PASS][51] -> [FAIL][52] ([i915#54])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-apl3/igt@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl1/igt@[email protected]

* igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-kbl: NOTRUN -> [DMESG-WARN][53] ([i915#180])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl4/igt@[email protected]

* igt@kms_cursor_crc@pipe-c-cursor-512x170-onscreen:
- shard-tglb: NOTRUN -> [SKIP][54] ([fdo#109279]) +1 similar issue
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb2/igt@[email protected]

* igt@kms_cursor_edge_walk@pipe-d-256x256-right-edge:
- shard-iclb: NOTRUN -> [SKIP][55] ([fdo#109278]) +4 similar issues
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb8/igt@[email protected]

* igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
- shard-snb: NOTRUN -> [SKIP][56] ([fdo#109271]) +55 similar issues
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-snb2/igt@[email protected]

* igt@kms_cursor_legacy@cursorb-vs-flipa-toggle:
- shard-iclb: NOTRUN -> [SKIP][57] ([fdo#109274] / [fdo#109278]) +2 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb3/igt@[email protected]

* igt@kms_flip@2x-flip-vs-absolute-wf_vblank:
- shard-iclb: NOTRUN -> [SKIP][58] ([fdo#109274])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb4/igt@kms_flip@2x-flip-vs-absolute-wf_vblank.html

* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-tglb: [PASS][59] -> [FAIL][60] ([i915#2598])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-tglb2/igt@kms_flip@[email protected]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb3/igt@kms_flip@[email protected]

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

* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
- shard-apl: NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#2642])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl1/igt@[email protected]
- shard-glk: NOTRUN -> [SKIP][63] ([fdo#109271] / [i915#2642])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk9/igt@[email protected]
- shard-kbl: NOTRUN -> [SKIP][64] ([fdo#109271] / [i915#2642])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl6/igt@[email protected]

* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile:
- shard-kbl: NOTRUN -> [FAIL][65] ([i915#2641])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl7/igt@[email protected]

* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt:
- shard-iclb: NOTRUN -> [SKIP][66] ([fdo#109280]) +6 similar issues
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html

* igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack:
- shard-tglb: NOTRUN -> [SKIP][67] ([fdo#111825]) +28 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb2/igt@[email protected]

* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt:
- shard-glk: NOTRUN -> [SKIP][68] ([fdo#109271]) +24 similar issues
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-pgflip-blt.html

* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
- shard-kbl: NOTRUN -> [SKIP][69] ([fdo#109271]) +178 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl4/igt@[email protected]

* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-tglb: NOTRUN -> [SKIP][70] ([i915#1839]) +1 similar issue
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb2/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][71] ([i915#1839])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb7/igt@[email protected]

* igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d:
- shard-kbl: NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#533])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl6/igt@[email protected]

* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-kbl: [PASS][73] -> [DMESG-WARN][74] ([i915#180]) +3 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-kbl1/igt@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl4/igt@[email protected]

* igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
- shard-apl: NOTRUN -> [FAIL][75] ([fdo#108145] / [i915#265]) +1 similar issue
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl1/igt@[email protected]

* igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb:
- shard-kbl: NOTRUN -> [FAIL][76] ([i915#265])
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl7/igt@[email protected]

* igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
- shard-kbl: NOTRUN -> [FAIL][77] ([fdo#108145] / [i915#265]) +3 similar issues
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl7/igt@[email protected]

* igt@kms_plane_multiple@atomic-pipe-d-tiling-yf:
- shard-tglb: NOTRUN -> [SKIP][78] ([fdo#112054])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb8/igt@[email protected]

* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-1:
- shard-tglb: NOTRUN -> [SKIP][79] ([i915#2920]) +2 similar issues
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb8/igt@[email protected]
- shard-apl: NOTRUN -> [SKIP][80] ([fdo#109271] / [i915#658]) +2 similar issues
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl4/igt@[email protected]

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

* igt@kms_psr2_sf@plane-move-sf-dmg-area-1:
- shard-glk: NOTRUN -> [SKIP][82] ([fdo#109271] / [i915#658])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk7/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][83] ([i915#658])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb5/igt@[email protected]

* igt@kms_psr@psr2_dpms:
- shard-hsw: NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#1072])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw1/igt@kms_psr@psr2_dpms.html

* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][85] -> [SKIP][86] ([fdo#109441]) +1 similar issue
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb8/igt@kms_psr@psr2_primary_mmap_cpu.html

* igt@kms_sysfs_edid_timing:
- shard-kbl: NOTRUN -> [FAIL][87] ([IGT#2])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl2/igt@kms_sysfs_edid_timing.html

* igt@kms_vblank@pipe-d-wait-forked-busy:
- shard-hsw: NOTRUN -> [SKIP][88] ([fdo#109271] / [i915#533]) +4 similar issues
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw4/igt@[email protected]

* igt@kms_vblank@pipe-d-wait-forked-hang:
- shard-apl: NOTRUN -> [SKIP][89] ([fdo#109271]) +149 similar issues
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl7/igt@[email protected]

* igt@kms_writeback@writeback-check-output:
- shard-tglb: NOTRUN -> [SKIP][90] ([i915#2437])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb8/igt@[email protected]

* igt@kms_writeback@writeback-invalid-parameters:
- shard-apl: NOTRUN -> [SKIP][91] ([fdo#109271] / [i915#2437])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl8/igt@[email protected]

* igt@kms_writeback@writeback-pixel-formats:
- shard-kbl: NOTRUN -> [SKIP][92] ([fdo#109271] / [i915#2437])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl1/igt@[email protected]

* igt@nouveau_crc@pipe-c-source-outp-inactive:
- shard-tglb: NOTRUN -> [SKIP][93] ([i915#2530])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb5/igt@[email protected]

* igt@perf@blocking:
- shard-hsw: [PASS][94] -> [SKIP][95] ([fdo#109271])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-hsw1/igt@[email protected]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw1/igt@[email protected]
- shard-glk: [PASS][96] -> [SKIP][97] ([fdo#109271] / [i915#1354])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-glk4/igt@[email protected]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk2/igt@[email protected]
- shard-tglb: [PASS][98] -> [SKIP][99] ([i915#1354])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-tglb8/igt@[email protected]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb3/igt@[email protected]
- shard-apl: [PASS][100] -> [SKIP][101] ([fdo#109271] / [i915#1354])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-apl7/igt@[email protected]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl8/igt@[email protected]
- shard-iclb: [PASS][102] -> [SKIP][103] ([i915#1354])
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-iclb8/igt@[email protected]
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb2/igt@[email protected]

* igt@perf_pmu@event-wait@rcs0:
- shard-tglb: NOTRUN -> [SKIP][104] ([fdo#112283])
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb2/igt@perf_pmu@[email protected]

* igt@prime_nv_test@i915_import_pread_pwrite:
- shard-tglb: NOTRUN -> [SKIP][105] ([fdo#109291]) +1 similar issue
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb5/igt@prime_nv_test@i915_import_pread_pwrite.html
- shard-iclb: NOTRUN -> [SKIP][106] ([fdo#109291])
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb1/igt@prime_nv_test@i915_import_pread_pwrite.html

#### Possible fixes ####

* igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglb: [FAIL][107] ([i915#2842]) -> [PASS][108] +1 similar issue
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-tglb1/igt@gem_exec_fair@[email protected]
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb5/igt@gem_exec_fair@[email protected]

* igt@gem_exec_fair@basic-none@vcs1:
- shard-kbl: [FAIL][109] ([i915#2842]) -> [PASS][110] +1 similar issue
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-kbl2/igt@gem_exec_fair@[email protected]
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl2/igt@gem_exec_fair@[email protected]

* igt@gem_exec_fair@basic-pace@rcs0:
- shard-iclb: [FAIL][111] ([i915#2842]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-iclb6/igt@gem_exec_fair@[email protected]
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb2/igt@gem_exec_fair@[email protected]
- shard-glk: [FAIL][113] ([i915#2842]) -> [PASS][114]
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-glk7/igt@gem_exec_fair@[email protected]
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk1/igt@gem_exec_fair@[email protected]

* igt@gem_workarounds@suspend-resume-fd:
- shard-kbl: [DMESG-WARN][115] ([i915#180]) -> [PASS][116] +2 similar issues
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-kbl4/igt@[email protected]
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl7/igt@[email protected]

* igt@i915_pm_rpm@system-suspend-modeset:
- shard-kbl: [INCOMPLETE][117] ([i915#151] / [i915#155]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-kbl4/igt@[email protected]
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl7/igt@[email protected]

* igt@kms_color@pipe-b-legacy-gamma-reset:
- shard-apl: [FAIL][119] ([i915#2964]) -> [PASS][120]
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-apl7/igt@[email protected]
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl4/igt@[email protected]
- shard-kbl: [FAIL][121] ([i915#2964]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-kbl7/igt@[email protected]
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-kbl7/igt@[email protected]

* igt@kms_cursor_legacy@cursor-vs-flip-toggle:
- shard-hsw: [FAIL][123] ([i915#2370]) -> [PASS][124]
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-hsw1/igt@[email protected]
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-hsw2/igt@[email protected]

* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [FAIL][125] ([i915#79]) -> [PASS][126] +1 similar issue
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-glk7/igt@kms_flip@[email protected]
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk9/igt@kms_flip@[email protected]

* igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
- shard-apl: [DMESG-WARN][127] ([i915#180]) -> [PASS][128] +1 similar issue
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-apl1/igt@kms_flip@[email protected]
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl7/igt@kms_flip@[email protected]

* {igt@sysfs_clients@recycle}:
- shard-snb: [FAIL][129] ([i915#3028]) -> [PASS][130]
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-snb4/igt@[email protected]
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-snb6/igt@[email protected]
- shard-iclb: [FAIL][131] ([i915#3028]) -> [PASS][132]
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-iclb8/igt@[email protected]
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb7/igt@[email protected]
- shard-apl: [FAIL][133] ([i915#3028]) -> [PASS][134]
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-apl4/igt@[email protected]
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl1/igt@[email protected]
- shard-tglb: [FAIL][135] ([i915#3028]) -> [PASS][136]
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-tglb7/igt@[email protected]
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb2/igt@[email protected]

* {igt@sysfs_clients@recycle-many}:
- shard-apl: [FAIL][137] -> [PASS][138]
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-apl3/igt@[email protected]
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-apl7/igt@[email protected]
- shard-iclb: [FAIL][139] -> [PASS][140]
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-iclb4/igt@[email protected]
[140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-iclb4/igt@[email protected]
- shard-glk: [FAIL][141] -> [PASS][142]
[141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-glk1/igt@[email protected]
[142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-glk8/igt@[email protected]
- shard-tglb: [FAIL][143] -> [PASS][144]
[143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9728/shard-tglb7/igt@[email protected]
[144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5476/shard-tglb1/igt@[email protected]

* igt@sysfs_hear

== Logs ==

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

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev