Skip to contentSkip to conversation

Add subtests for HDCP over MST

PATCH Superseded Karthik B S 3 participants 7 messages Dec 14, 2020 – Jan 27, 2021

v5 of 8 Superseded Latest is v8 →

lore
Share & tools
lore
#0 lore raw

v5 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 v5 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.

---
 tests/kms_content_protection.c | 277 ++++++++++++++++++++++++++++++---
 1 file changed, 255 insertions(+), 22 deletions(-)
tests/kms_content_protection.c +255 -22
index 303ed418..ffe24f15 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)
+{
+	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[0], CP_DESIRED, LIC_PERIOD_MSEC);
+	igt_assert_f(!ret, "Content Protection LIC Failed on %s\n", mst_outputs[0]->name);
+
+	for (count = 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);
+
+	/*
+	 * 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(mst_output[i]);
+	}
+}
+
 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 v5 1/2] tests/kms_content_protection: Add MST subtests

Quoted 346 lines

-----Original Message-----
From: Karthik B S <[email protected]>
Sent: Monday, December 14, 2020 12:27 PM
To: [email protected]
Cc: Gupta, Anshuman <[email protected]>; C, Ramalingam <[email protected]>; B S, Karthik <[email protected]>
Subject: [PATCH i-g-t v5 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.

---
 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..ffe24f15 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) {
+	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[0], 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 = 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 +17 -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))
+			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);
+
+	/*
+	 * 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 test_content_protection(enum igt_commit_style s, int content_type) · line 679

Quoted 5 lines
tests/kms_content_protection.c +5 -0
+		igt_assert_f(!ret, "Content Protection not enabled on %s\n",
+mst_output[i]->name);
+
+		if (data.cp_tests & CP_LIC)
+			test_cp_lic(mst_output[i]);

IMO we can still save some CI time in LIC test no to wait for each output ?
Thanks,
Anshuman Gupta.

Quoted 78 lines
tests/kms_content_protection.c +3 -0
+	}
+}
+
 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 v5 1/2] tests/kms_content_protection: Add MST subtests

Quoted 338 lines · Anshuman
Quoted 338 lines

-----Original Message-----
From: Karthik B S <[email protected]>
Sent: Monday, December 14, 2020 12:27 PM
To: [email protected]
Cc: Gupta, Anshuman <[email protected]>; C, Ramalingam <[email protected]>; B S, Karthik <[email protected]>
Subject: [PATCH i-g-t v5 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.

---
  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..ffe24f15 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) {
+	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[0], 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 = 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 +17 -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))
+			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);
+
+	/*
+	 * 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);

Quoted 13 lines

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

Quoted 12 lines
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 +5 -0
+		igt_assert_f(!ret, "Content Protection not enabled on %s\n",
+mst_output[i]->name);
+
+		if (data.cp_tests & CP_LIC)
+			test_cp_lic(mst_output[i]);

IMO we can still save some CI time in LIC test no to wait for each output ?

Thank you for the review. I will update this.

Thanks,

Karthik.B.S

Quoted 75 lines

Thanks,
Anshuman Gupta.

Quoted 73 lines
tests/kms_content_protection.c +3 -0
+	}
+}
+
  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 v5 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 (rev4)

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from IGT_5892 -> IGTPW_5284
====================================================

Summary
-------

**SUCCESS**

No regressions found.

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

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

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

### 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_5284/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_5284/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_5284/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_5284/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_5284/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_5284/fi-cml-s/igt@[email protected]

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

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

New tests
---------

New tests have been introduced between IGT_5892 and IGTPW_5284:

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

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

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

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

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

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

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

### IGT changes ###

#### Issues hit ####

* igt@amdgpu/amd_basic@cs-compute:
- fi-elk-e7500: NOTRUN -> [SKIP][11] ([fdo#109271]) +50 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-elk-e7500/igt@amdgpu/[email protected]

* igt@amdgpu/amd_basic@memory-alloc:
- fi-cml-u2: NOTRUN -> [SKIP][12] ([fdo#109315]) +17 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cml-u2/igt@amdgpu/[email protected]

* igt@gem_exec_fence@basic-busy@bcs0:
- fi-cml-u2: NOTRUN -> [SKIP][13] ([i915#1208]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cml-u2/igt@gem_exec_fence@[email protected]

* igt@gem_exec_gttfill@basic:
- fi-tgl-y: [PASS][14] -> [DMESG-WARN][15] ([i915#402]) +2 similar issues
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/fi-tgl-y/igt@[email protected]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-tgl-y/igt@[email protected]

* igt@gem_huc_copy@huc-copy:
- fi-cml-u2: NOTRUN -> [SKIP][16] ([i915#2190])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cml-u2/igt@[email protected]

* igt@kms_chamelium@hdmi-hpd-fast:
- fi-cml-u2: NOTRUN -> [SKIP][17] ([i915#1004]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cml-u2/igt@[email protected]

* igt@kms_chamelium@vga-edid-read:
- fi-cml-u2: NOTRUN -> [SKIP][18] ([fdo#109309]) +1 similar issue
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cml-u2/igt@[email protected]

* {igt@kms_content_protection@dp-mst-lic-type-0} (NEW):
- fi-apl-guc: NOTRUN -> [SKIP][19] ([fdo#109271]) +3 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-apl-guc/igt@[email protected]
- fi-snb-2520m: NOTRUN -> [SKIP][20] ([fdo#109271]) +3 similar issues
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-snb-2520m/igt@[email protected]
- fi-hsw-4770: NOTRUN -> [SKIP][21] ([fdo#109271]) +3 similar issues
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-hsw-4770/igt@[email protected]
- fi-cfl-8700k: NOTRUN -> [SKIP][22] ([fdo#109271]) +3 similar issues
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cfl-8700k/igt@[email protected]
- fi-ilk-650: NOTRUN -> [SKIP][23] ([fdo#109271]) +3 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-ilk-650/igt@[email protected]
- fi-kbl-x1275: NOTRUN -> [SKIP][24] ([fdo#109271]) +3 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-kbl-x1275/igt@[email protected]

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

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

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

* igt@kms_force_connector_basic@force-load-detect:
- fi-cml-u2: NOTRUN -> [SKIP][39] ([fdo#109285])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cml-u2/igt@[email protected]

* igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-cml-u2: NOTRUN -> [SKIP][40] ([fdo#109278] / [i915#533])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-cml-u2/igt@[email protected]

#### Possible fixes ####

* igt@kms_chamelium@dp-crc-fast:
- fi-kbl-7500u: [FAIL][41] ([i915#1161] / [i915#262]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/fi-kbl-7500u/igt@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-kbl-7500u/igt@[email protected]

* igt@prime_self_import@basic-with_one_bo_two_files:
- fi-tgl-y: [DMESG-WARN][43] ([i915#402]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.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#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[i915#1004]: https://gitlab.freedesktop.org/drm/intel/issues/1004
[i915#1161]: https://gitlab.freedesktop.org/drm/intel/issues/1161
[i915#1208]: https://gitlab.freedesktop.org/drm/intel/issues/1208
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533

Participating hosts (40 -> 33)
------------------------------

Additional (2): fi-cml-u2 fi-elk-e7500
Missing (9): fi-bxt-dsi fi-bdw-samus fi-bsw-n3050 fi-byt-j1900 fi-skl-guc fi-hsw-4200u fi-dg1-1 fi-blb-e6850 fi-skl-6700k2

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

* CI: CI-20190529 -> None
* IGT: IGT_5892 -> IGTPW_5284

CI-20190529: 20190529
CI_DRM_9478: 94cf3a4cc350324f21728c70954c46e535405c87 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5284: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/index.html
IGT_5892: 5c4766f5c4ca896a4c7b61645ecca2b80546dc3b @ 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_5284/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 (rev4)

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from IGT_5892_full -> IGTPW_5284_full
====================================================

Summary
-------

**SUCCESS**

No regressions found.

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

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

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

### IGT changes ###

#### Possible regressions ####

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

New tests
---------

New tests have been introduced between IGT_5892_full and IGTPW_5284_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] s

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

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

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

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

### IGT changes ###

#### Issues hit ####

* igt@feature_discovery@psr2:
- shard-iclb: [PASS][3] -> [SKIP][4] ([i915#658])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb2/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb8/igt@[email protected]

* igt@gem_eio@in-flight-suspend:
- shard-tglb: [PASS][5] -> [DMESG-WARN][6] ([i915#1037] / [i915#1436] / [i915#1602] / [i915#1887] / [i915#2411])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-tglb2/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb8/igt@[email protected]
- shard-hsw: [PASS][7] -> [DMESG-WARN][8] ([i915#1037] / [i915#2637])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-hsw4/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-hsw6/igt@[email protected]
- shard-kbl: [PASS][9] -> [INCOMPLETE][10] ([i915#1037] / [i915#155])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-kbl6/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-kbl1/igt@[email protected]
- shard-apl: [PASS][11] -> [DMESG-WARN][12] ([i915#1037] / [i915#2635])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-apl3/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-apl2/igt@[email protected]
- shard-glk: [PASS][13] -> [DMESG-WARN][14] ([i915#1037] / [i915#2635])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk2/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk5/igt@[email protected]
- shard-iclb: [PASS][15] -> [DMESG-WARN][16] ([i915#1037])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb3/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb1/igt@[email protected]

* igt@gem_exec_params@rsvd2-dirt:
- shard-tglb: NOTRUN -> [SKIP][17] ([fdo#109283])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb5/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][18] ([fdo#109283])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb7/igt@[email protected]

* igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-glk: [PASS][19] -> [FAIL][20] ([i915#2389])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk3/igt@gem_exec_reloc@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk6/igt@gem_exec_reloc@[email protected]

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

* igt@gem_exec_whisper@basic-fds-all:
- shard-glk: [PASS][22] -> [DMESG-WARN][23] ([i915#118] / [i915#95]) +1 similar issue
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk4/igt@[email protected]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk6/igt@[email protected]

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

* igt@gem_sync@basic-store-all:
- shard-glk: [PASS][25] -> [DMESG-WARN][26] ([i915#118] / [i915#262] / [i915#95])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk6/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk3/igt@[email protected]

* igt@gen9_exec_parse@valid-registers:
- shard-tglb: NOTRUN -> [SKIP][27] ([fdo#112306])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb6/igt@[email protected]

* igt@i915_pm_rc6_residency@rc6-idle:
- shard-tglb: NOTRUN -> [WARN][28] ([i915#2681] / [i915#2684])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb7/igt@[email protected]
- shard-iclb: NOTRUN -> [WARN][29] ([i915#1804] / [i915#2684])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb3/igt@[email protected]

* igt@i915_pm_rpm@drm-resources-equal:
- shard-kbl: [PASS][30] -> [SKIP][31] ([fdo#109271])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-kbl2/igt@[email protected]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-kbl4/igt@[email protected]
- shard-hsw: [PASS][32] -> [SKIP][33] ([fdo#109271])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-hsw2/igt@[email protected]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-hsw6/igt@[email protected]
- shard-iclb: [PASS][34] -> [SKIP][35] ([i915#579])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb2/igt@[email protected]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb6/igt@[email protected]
- shard-glk: [PASS][36] -> [SKIP][37] ([fdo#109271])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk1/igt@[email protected]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk1/igt@[email protected]
- shard-apl: [PASS][38] -> [SKIP][39] ([fdo#109271])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-apl8/igt@[email protected]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-apl2/igt@[email protected]
- shard-tglb: NOTRUN -> [SKIP][40] ([i915#579])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb5/igt@[email protected]

* igt@kms_big_fb@yf-tiled-addfb:
- shard-tglb: NOTRUN -> [SKIP][41] ([fdo#111615])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb2/igt@[email protected]

* igt@kms_chamelium@dp-crc-multiple:
- shard-apl: NOTRUN -> [SKIP][42] ([fdo#109271] / [fdo#111827])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-apl8/igt@[email protected]
- shard-glk: NOTRUN -> [SKIP][43] ([fdo#109271] / [fdo#111827])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk4/igt@[email protected]
- shard-tglb: NOTRUN -> [SKIP][44] ([fdo#109284] / [fdo#111827]) +3 similar issues
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb3/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][45] ([fdo#109284] / [fdo#111827])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb1/igt@[email protected]

* igt@kms_color@pipe-b-ctm-0-25:
- shard-tglb: NOTRUN -> [FAIL][46] ([i915#1149] / [i915#315])
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb1/igt@[email protected]

* igt@kms_color_chamelium@pipe-a-degamma:
- shard-kbl: NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +5 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-kbl2/igt@[email protected]

* igt@kms_color_chamelium@pipe-c-ctm-blue-to-red:
- shard-hsw: NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-hsw8/igt@[email protected]

* {igt@kms_content_protection@dp-mst-lic-type-0} (NEW):
- shard-snb: NOTRUN -> [SKIP][49] ([fdo#109271]) +3 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-snb7/igt@[email protected]

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

* igt@kms_content_protection@uevent:
- shard-tglb: NOTRUN -> [SKIP][51] ([fdo#111828])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb5/igt@[email protected]

* igt@kms_cursor_crc@pipe-b-cursor-512x512-offscreen:
- shard-iclb: NOTRUN -> [SKIP][52] ([fdo#109278] / [fdo#109279])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb2/igt@[email protected]

* igt@kms_cursor_crc@pipe-b-cursor-512x512-rapid-movement:
- shard-tglb: NOTRUN -> [SKIP][53] ([fdo#109279]) +2 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb7/igt@[email protected]

* igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
- shard-iclb: NOTRUN -> [SKIP][54] ([fdo#109274] / [fdo#109278])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb1/igt@[email protected]

* igt@kms_cursor_legacy@cursor-vs-flip-toggle:
- shard-hsw: [PASS][55] -> [FAIL][56] ([i915#2370])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-hsw6/igt@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-hsw6/igt@[email protected]

* igt@kms_flip@2x-flip-vs-modeset-vs-hang:
- shard-iclb: NOTRUN -> [SKIP][57] ([fdo#109274])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb4/igt@[email protected]

* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-glk: [PASS][58] -> [FAIL][59] ([i915#49])
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html

* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-plflip-blt:
- shard-iclb: NOTRUN -> [SKIP][60] ([fdo#109280]) +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb1/igt@[email protected]

* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt:
- shard-tglb: NOTRUN -> [SKIP][61] ([fdo#111825]) +13 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-plflip-blt.html

* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-kbl: NOTRUN -> [SKIP][62] ([fdo#109271]) +59 similar issues
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-kbl3/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-shrfb-draw-mmap-wc.html

* igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
- shard-kbl: NOTRUN -> [FAIL][63] ([fdo#108145] / [i915#265])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-kbl1/igt@[email protected]

* igt@kms_plane_cursor@pipe-d-overlay-size-64:
- shard-apl: NOTRUN -> [SKIP][64] ([fdo#109271]) +15 similar issues
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-apl4/igt@[email protected]
- shard-glk: NOTRUN -> [SKIP][65] ([fdo#109271]) +12 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk2/igt@[email protected]

* igt@kms_psr@psr2_primary_page_flip:
- shard-iclb: [PASS][66] -> [SKIP][67] ([fdo#109441]) +1 similar issue
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb3/igt@kms_psr@psr2_primary_page_flip.html

* igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend:
- shard-iclb: NOTRUN -> [SKIP][68] ([fdo#109278]) +3 similar issues
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb3/igt@[email protected]

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

* igt@prime_nv_test@nv_write_i915_gtt_mmap_read:
- shard-tglb: NOTRUN -> [SKIP][70] ([fdo#109291]) +1 similar issue
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb5/igt@prime_nv_test@nv_write_i915_gtt_mmap_read.html
- shard-iclb: NOTRUN -> [SKIP][71] ([fdo#109291])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb5/igt@prime_nv_test@nv_write_i915_gtt_mmap_read.html

* igt@runner@aborted:
- shard-hsw: NOTRUN -> [FAIL][72] ([i915#1436] / [i915#2295])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-hsw6/igt@[email protected]

#### Possible fixes ####

* igt@i915_suspend@forcewake:
- shard-kbl: [DMESG-WARN][73] ([i915#180]) -> [PASS][74] +1 similar issue
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-kbl7/igt@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-kbl3/igt@[email protected]

* igt@kms_3d:
- shard-tglb: [DMESG-WARN][75] ([i915#402]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-tglb6/igt@kms_3d.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb3/igt@kms_3d.html

* igt@kms_color@pipe-b-ctm-green-to-red:
- shard-apl: [FAIL][77] ([i915#129]) -> [PASS][78]
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-apl3/igt@[email protected]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-apl8/igt@[email protected]
- shard-kbl: [FAIL][79] ([i915#129]) -> [PASS][80]
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-kbl1/igt@[email protected]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-kbl2/igt@[email protected]

* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-tglb: [FAIL][81] ([i915#2346]) -> [PASS][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-tglb6/igt@[email protected]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-tglb3/igt@[email protected]

* igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
- shard-hsw: [INCOMPLETE][83] ([i915#2055]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-hsw4/igt@kms_flip@[email protected]
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-hsw4/igt@kms_flip@[email protected]

* igt@kms_flip@plain-flip-ts-check-interruptible@a-hdmi-a1:
- shard-glk: [FAIL][85] ([i915#2122]) -> [PASS][86]
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk5/igt@kms_flip@[email protected]
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk1/igt@kms_flip@[email protected]

* igt@kms_psr2_su@page_flip:
- shard-iclb: [SKIP][87] ([fdo#109642] / [fdo#111068]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb1/igt@kms_psr2_su@page_flip.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb2/igt@kms_psr2_su@page_flip.html

* igt@kms_psr@psr2_cursor_plane_move:
- shard-iclb: [SKIP][89] ([fdo#109441]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb7/igt@kms_psr@psr2_cursor_plane_move.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html

* igt@perf@polling-parameterized:
- shard-glk: [FAIL][91] ([i915#1542]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk7/igt@[email protected]
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk1/igt@[email protected]

#### Warnings ####

* igt@i915_pm_dc@dc3co-vpb-simulation:
- shard-iclb: [SKIP][93] ([i915#658]) -> [SKIP][94] ([i915#588])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb4/igt@[email protected]
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb2/igt@[email protected]

* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [WARN][95] ([i915#1804] / [i915#2684]) -> [WARN][96] ([i915#2681] / [i915#2684])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb3/igt@[email protected]
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb1/igt@[email protected]

* igt@runner@aborted:
- shard-iclb: [FAIL][97] ([i915#2295] / [i915#2722] / [i915#2724] / [i915#483]) -> ([FAIL][98], [FAIL][99]) ([i915#1814] / [i915#2295] / [i915#2722] / [i915#2724] / [i915#483])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-iclb7/igt@[email protected]
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb6/igt@[email protected]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-iclb1/igt@[email protected]
- shard-apl: [FAIL][100] ([i915#2295] / [i915#2722]) -> ([FAIL][101], [FAIL][102]) ([i915#1610] / [i915#1814] / [i915#2295] / [i915#2722])
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-apl6/igt@[email protected]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-apl2/igt@[email protected]
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-apl7/igt@[email protected]
- shard-glk: [FAIL][103] ([i915#2295] / [i915#2722] / [k.org#202321]) -> ([FAIL][104], [FAIL][105]) ([i915#1814] / [i915#2295] / [i915#2722] / [k.org#202321])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5892/shard-glk8/igt@[email protected]
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk5/igt@[email protected]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/shard-glk5/igt@[email protected]

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

[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#111828]: https://bugs.freedesktop.org/show_bug.cgi?id=111828
[fdo#112306]: https://bugs.freedesktop.org/show_bug.cgi?id=112306
[i915#1037]: https://gitlab.freedesktop.org/drm/intel/issues/1037
[i915#1149]: https://gitlab.freedesktop.org/drm/intel/issues/1149
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#129]: https://gitlab.freedesktop.org/drm/intel/issues/129
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1610]: https://gitlab.freedesktop.org/drm/intel/issues/1610
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1887]: https://gitlab.freedesktop.org/drm/intel/issues/1887
[i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2295]: https://gitlab.freedesktop.org/drm/intel/issues/2295
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2370]: https://gitlab.freedesktop.org/drm/intel/issues/2370
[i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
[i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262
[i915#2635]: https://gitlab.freedesktop.org/drm/intel/issues/2635
[i915#2637]: https://gitlab.freedesktop.org/drm/intel/issues/2637
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
[i915#2724]: https://gitlab.freedesktop.org/drm/intel/issues/2724
[i915#2733]: https://gitlab.freedesktop.org/drm/intel/issues/2733
[i915#2795]: https://gitlab.freedesktop.org/drm/intel/issues/2795
[i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579
[i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321

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

No changes in participating hosts

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

* CI: CI-20190529 -> None
* IGT: IGT_5892 -> IGTPW_5284

CI-20190529: 20190529
CI_DRM_9478: 94cf3a4cc350324f21728c70954c46e535405c87 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5284: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5284/index.html
IGT_5892: 5c4766f5c4ca896a4c7b61645ecca2b80546dc3b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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