All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v7 0/2] Add subtests for HDCP over MST
@ 2021-02-04  8:06 Karthik B S
  2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests Karthik B S
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Karthik B S @ 2021-02-04  8:06 UTC (permalink / raw)
  To: igt-dev

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(-)

-- 
2.22.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests
  2021-02-04  8:06 [igt-dev] [PATCH i-g-t v7 0/2] Add subtests for HDCP over MST Karthik B S
@ 2021-02-04  8:06 ` Karthik B S
  2021-02-16 11:17   ` Nautiyal, Ankit K
  2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 2/2] CI HAX: Add MST tests to fast feedback testlist Karthik B S
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Karthik B S @ 2021-02-04  8:06 UTC (permalink / raw)
  To: igt-dev

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)

v7: -Check HDCP capability after modeset on MST. (Anshuman)

Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Signed-off-by: Karthik B S <karthik.b.s@intel.com>
---
 tests/kms_content_protection.c | 277 ++++++++++++++++++++++++++++++---
 1 file changed, 255 insertions(+), 22 deletions(-)

diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index 303ed418..4ea79748 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -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], *hdcp_mst_output[IGT_MAX_PIPES];
+
+	for_each_pipe(display, pipe)
+		max_pipe++;
+
+	pipe = PIPE_A;
+
+	for_each_connected_output(display, output) {
+		if (!output_is_dp_mst(output, valid_outputs))
+			continue;
+
+		igt_assert_f(igt_pipe_connector_valid(pipe, output), "Output-pipe combination invalid\n");
+
+		prepare_modeset_on_mst_output(output, pipe);
+		mst_output[dp_mst_outputs++] = output;
+
+		pipe++;
+
+		if (pipe > max_pipe)
+			break;
+	}
+
+	igt_require_f(dp_mst_outputs > 1, "No DP MST set up with >= 2 outputs found in a single topology\n");
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	for (count = 0; count < dp_mst_outputs; count++) {
+		if (!output_hdcp_capable(mst_output[count], content_type))
+			continue;
+
+		hdcp_mst_output[valid_outputs++] = mst_output[count];
+	}
+
+	igt_require_f(valid_outputs > 1, "DP MST outputs do not have the required HDCP support\n");
+
+	for (count = 0; count < valid_outputs; count++) {
+		igt_output_set_prop_value(hdcp_mst_output[count], IGT_CONNECTOR_CONTENT_PROTECTION, CP_DESIRED);
+
+		if (output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE])
+			igt_output_set_prop_value(hdcp_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(hdcp_mst_output[count], CP_ENABLED, KERNEL_AUTH_TIME_ALLOWED_MSEC);
+		igt_assert_f(ret, "Content Protection not enabled on %s\n", hdcp_mst_output[count]->name);
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(hdcp_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", hdcp_mst_output[0]->name);
+	test_cp_disable(hdcp_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(hdcp_mst_output[i], CP_UNDESIRED, KERNEL_DISABLE_TIME_ALLOWED_MSEC);
+		igt_assert_f(!ret, "Content Protection not enabled on %s\n", hdcp_mst_output[i]->name);
+	}
+
+	if (data.cp_tests & CP_LIC)
+		test_cp_lic_on_mst(hdcp_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);
-- 
2.22.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v7 2/2] CI HAX: Add MST tests to fast feedback testlist
  2021-02-04  8:06 [igt-dev] [PATCH i-g-t v7 0/2] Add subtests for HDCP over MST Karthik B S
  2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests Karthik B S
@ 2021-02-04  8:06 ` Karthik B S
  2021-02-04  9:29 ` [igt-dev] ✓ Fi.CI.BAT: success for Add subtests for HDCP over MST (rev6) Patchwork
  2021-02-04 10:33 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Karthik B S @ 2021-02-04  8:06 UTC (permalink / raw)
  To: igt-dev

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

v3: -Fix Typo. (Petri)

Signed-off-by: Karthik B S <karthik.b.s@intel.com>
---
 tests/intel-ci/fast-feedback.testlist | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist
index eaa904fa..6221269c 100644
--- a/tests/intel-ci/fast-feedback.testlist
+++ b/tests/intel-ci/fast-feedback.testlist
@@ -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.
-- 
2.22.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for Add subtests for HDCP over MST (rev6)
  2021-02-04  8:06 [igt-dev] [PATCH i-g-t v7 0/2] Add subtests for HDCP over MST Karthik B S
  2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests Karthik B S
  2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 2/2] CI HAX: Add MST tests to fast feedback testlist Karthik B S
@ 2021-02-04  9:29 ` Patchwork
  2021-02-04 10:33 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-02-04  9:29 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 10912 bytes --]

== Series Details ==

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

== Summary ==

CI Bug Log - changes from CI_DRM_9729 -> IGTPW_5477
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### 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_5477/fi-tgl-u2/igt@kms_content_protection@dp-mst-lic-type-0.html
    - {fi-ehl-1}:         NOTRUN -> [SKIP][2] +3 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-ehl-1/igt@kms_content_protection@dp-mst-lic-type-0.html
    - fi-tgl-y:           NOTRUN -> [SKIP][3] +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-tgl-y/igt@kms_content_protection@dp-mst-lic-type-0.html

  * {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_5477/fi-cml-u2/igt@kms_content_protection@dp-mst-lic-type-1.html
    - fi-icl-y:           NOTRUN -> [SKIP][5] +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-icl-y/igt@kms_content_protection@dp-mst-lic-type-1.html
    - fi-cml-s:           NOTRUN -> [SKIP][6] +3 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-cml-s/igt@kms_content_protection@dp-mst-lic-type-1.html
    - {fi-hsw-gt1}:       NOTRUN -> [FAIL][7] +3 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-hsw-gt1/igt@kms_content_protection@dp-mst-lic-type-1.html

  * {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_5477/fi-tgl-dsi/igt@kms_content_protection@dp-mst-type-0.html
    - {fi-rkl-11500t}:    NOTRUN -> [SKIP][9] +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-rkl-11500t/igt@kms_content_protection@dp-mst-type-0.html
    - fi-kbl-guc:         NOTRUN -> [FAIL][10] +3 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-kbl-guc/igt@kms_content_protection@dp-mst-type-0.html
    - fi-bsw-nick:        NOTRUN -> [FAIL][11] +3 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-bsw-nick/igt@kms_content_protection@dp-mst-type-0.html

  * {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_5477/fi-icl-u2/igt@kms_content_protection@dp-mst-type-1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_9729 and IGTPW_5477:

### 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.01] 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_5477 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_cs_nop@sync-gfx0:
    - fi-bsw-n3050:       NOTRUN -> [SKIP][13] ([fdo#109271]) +21 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-bsw-n3050/igt@amdgpu/amd_cs_nop@sync-gfx0.html

  * igt@i915_getparams_basic@basic-subslice-total:
    - fi-tgl-y:           [PASS][14] -> [DMESG-WARN][15] ([i915#402]) +1 similar issue
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/fi-tgl-y/igt@i915_getparams_basic@basic-subslice-total.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-tgl-y/igt@i915_getparams_basic@basic-subslice-total.html

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

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

  * {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_5477/fi-glk-dsi/igt@kms_content_protection@dp-mst-type-0.html
    - fi-kbl-r:           NOTRUN -> [SKIP][28] ([fdo#109271]) +3 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-kbl-r/igt@kms_content_protection@dp-mst-type-0.html
    - fi-kbl-7500u:       NOTRUN -> [SKIP][29] ([fdo#109271]) +3 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-kbl-7500u/igt@kms_content_protection@dp-mst-type-0.html
    - fi-cfl-8109u:       NOTRUN -> [SKIP][30] ([fdo#109271]) +3 similar issues
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-cfl-8109u/igt@kms_content_protection@dp-mst-type-0.html
    - fi-bdw-5557u:       NOTRUN -> [SKIP][31] ([fdo#109271]) +3 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-bdw-5557u/igt@kms_content_protection@dp-mst-type-0.html

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

  
#### Possible fixes ####

  * igt@i915_selftest@live@execlists:
    - fi-bsw-n3050:       [INCOMPLETE][38] ([i915#2940]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/fi-bsw-n3050/igt@i915_selftest@live@execlists.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-bsw-n3050/igt@i915_selftest@live@execlists.html

  * igt@prime_vgem@basic-userptr:
    - fi-tgl-y:           [DMESG-WARN][40] ([i915#402]) -> [PASS][41] +1 similar issue
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/fi-tgl-y/igt@prime_vgem@basic-userptr.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/fi-tgl-y/igt@prime_vgem@basic-userptr.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
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [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_5477

  CI-20190529: 20190529
  CI_DRM_9729: f5c0d295953da801ec6f504a0b3de020e43b55b4 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_5477: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/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_5477/index.html

[-- Attachment #1.2: Type: text/html, Size: 13900 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for Add subtests for HDCP over MST (rev6)
  2021-02-04  8:06 [igt-dev] [PATCH i-g-t v7 0/2] Add subtests for HDCP over MST Karthik B S
                   ` (2 preceding siblings ...)
  2021-02-04  9:29 ` [igt-dev] ✓ Fi.CI.BAT: success for Add subtests for HDCP over MST (rev6) Patchwork
@ 2021-02-04 10:33 ` Patchwork
  3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2021-02-04 10:33 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 30255 bytes --]

== Series Details ==

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

== Summary ==

CI Bug Log - changes from CI_DRM_9729_full -> IGTPW_5477_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_5477_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_5477_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_whisper@basic-contexts-priority-all:
    - shard-tglb:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-tglb1/igt@gem_exec_whisper@basic-contexts-priority-all.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb7/igt@gem_exec_whisper@basic-contexts-priority-all.html

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

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

  * igt@perf@stress-open-close:
    - shard-glk:          [PASS][5] -> [DMESG-FAIL][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-glk1/igt@perf@stress-open-close.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk7/igt@perf@stress-open-close.html

  
New tests
---------

  New tests have been introduced between CI_DRM_9729_full and IGTPW_5477_full:

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

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

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - Statuses : 6 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_5477_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_persistence@clone:
    - shard-snb:          NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#1099])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-snb5/igt@gem_ctx_persistence@clone.html

  * igt@gem_ctx_persistence@legacy-engines-cleanup:
    - shard-hsw:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#1099]) +1 similar issue
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw2/igt@gem_ctx_persistence@legacy-engines-cleanup.html

  * igt@gem_eio@in-flight-suspend:
    - shard-apl:          NOTRUN -> [DMESG-WARN][9] ([i915#1037] / [i915#180])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl1/igt@gem_eio@in-flight-suspend.html

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

  * igt@gem_exec_fair@basic-none-vip@rcs0:
    - shard-glk:          [PASS][11] -> [FAIL][12] ([i915#2842]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-glk4/igt@gem_exec_fair@basic-none-vip@rcs0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk1/igt@gem_exec_fair@basic-none-vip@rcs0.html

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

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

  * igt@gem_softpin@noreloc-s3:
    - shard-kbl:          [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl4/igt@gem_softpin@noreloc-s3.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl4/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-glk:          NOTRUN -> [INCOMPLETE][17] ([i915#2502] / [i915#2667])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk3/igt@gem_userptr_blits@vma-merge.html

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

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-iclb:         NOTRUN -> [SKIP][19] ([fdo#109289])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb6/igt@gen7_exec_parse@oacontrol-tracking.html
    - shard-tglb:         NOTRUN -> [SKIP][20] ([fdo#109289])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb5/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@basic-rejected:
    - shard-tglb:         NOTRUN -> [SKIP][21] ([fdo#112306])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb5/igt@gen9_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglb:         NOTRUN -> [SKIP][22] ([i915#2856])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb3/igt@gen9_exec_parse@shadow-peek.html
    - shard-iclb:         NOTRUN -> [SKIP][23] ([i915#2856])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb3/igt@gen9_exec_parse@shadow-peek.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-tglb:         NOTRUN -> [FAIL][24] ([i915#454])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb1/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][25] -> [FAIL][26] ([i915#454])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb6/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress:
    - shard-tglb:         NOTRUN -> [SKIP][27] ([fdo#111644] / [i915#1397] / [i915#2411])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb1/igt@i915_pm_rpm@modeset-non-lpsp-stress.html
    - shard-iclb:         NOTRUN -> [SKIP][28] ([fdo#110892])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb8/igt@i915_pm_rpm@modeset-non-lpsp-stress.html

  * igt@i915_query@query-topology-unsupported:
    - shard-iclb:         NOTRUN -> [SKIP][29] ([fdo#109302])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb6/igt@i915_query@query-topology-unsupported.html
    - shard-tglb:         NOTRUN -> [SKIP][30] ([fdo#109302])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb5/igt@i915_query@query-topology-unsupported.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglb:         NOTRUN -> [SKIP][31] ([i915#404])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb1/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html
    - shard-iclb:         NOTRUN -> [SKIP][32] ([i915#404])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb4/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

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

  * igt@kms_chamelium@dp-hpd-with-enabled-mode:
    - shard-glk:          NOTRUN -> [SKIP][34] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk6/igt@kms_chamelium@dp-hpd-with-enabled-mode.html
    - shard-iclb:         NOTRUN -> [SKIP][35] ([fdo#109284] / [fdo#111827]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb4/igt@kms_chamelium@dp-hpd-with-enabled-mode.html

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

  * igt@kms_color_chamelium@pipe-b-ctm-green-to-red:
    - shard-hsw:          NOTRUN -> [SKIP][37] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw2/igt@kms_color_chamelium@pipe-b-ctm-green-to-red.html

  * igt@kms_color_chamelium@pipe-b-gamma:
    - shard-apl:          NOTRUN -> [SKIP][38] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl7/igt@kms_color_chamelium@pipe-b-gamma.html

  * igt@kms_color_chamelium@pipe-d-ctm-0-5:
    - shard-snb:          NOTRUN -> [SKIP][39] ([fdo#109271] / [fdo#111827]) +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-snb7/igt@kms_color_chamelium@pipe-d-ctm-0-5.html
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb8/igt@kms_color_chamelium@pipe-d-ctm-0-5.html
    - shard-iclb:         NOTRUN -> [SKIP][41] ([fdo#109278] / [fdo#109284] / [fdo#111827])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb2/igt@kms_color_chamelium@pipe-d-ctm-0-5.html

  * igt@kms_color_chamelium@pipe-d-ctm-max:
    - shard-kbl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [fdo#111827]) +9 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl4/igt@kms_color_chamelium@pipe-d-ctm-max.html

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

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-apl:          [PASS][44] -> [DMESG-WARN][45] ([i915#180]) +1 similar issue
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x42-random:
    - shard-apl:          [PASS][46] -> [FAIL][47] ([i915#54])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl4/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl7/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html
    - shard-glk:          [PASS][48] -> [FAIL][49] ([i915#54])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-glk1/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk3/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html
    - shard-kbl:          NOTRUN -> [FAIL][50] ([i915#54])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-128x42-random.html

  * igt@kms_cursor_crc@pipe-d-cursor-64x64-rapid-movement:
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#109278]) +7 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb8/igt@kms_cursor_crc@pipe-d-cursor-64x64-rapid-movement.html

  * igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic:
    - shard-snb:          NOTRUN -> [SKIP][52] ([fdo#109271]) +46 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-snb7/igt@kms_cursor_legacy@2x-cursor-vs-flip-atomic.html

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

  * igt@kms_cursor_legacy@pipe-d-torture-bo:
    - shard-kbl:          NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#533])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl2/igt@kms_cursor_legacy@pipe-d-torture-bo.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-tglb:         [PASS][55] -> [INCOMPLETE][56] ([i915#1602] / [i915#2411] / [i915#456])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-tglb8/igt@kms_fbcon_fbt@fbc-suspend.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb6/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][57] ([fdo#109274]) +3 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb8/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-tglb:         [PASS][58] -> [FAIL][59] ([i915#2598])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-tglb2/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb1/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-apl:          [PASS][60] -> [DMESG-WARN][61] ([i915#180] / [i915#1982])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl4/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1:
    - shard-hsw:          [PASS][62] -> [INCOMPLETE][63] ([i915#2055] / [i915#2295])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-hsw2/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw4/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
    - shard-apl:          NOTRUN -> [SKIP][64] ([fdo#109271] / [i915#2642])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
    - shard-glk:          NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#2642])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
    - shard-kbl:          NOTRUN -> [SKIP][66] ([fdo#109271] / [i915#2642])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile:
    - shard-kbl:          NOTRUN -> [FAIL][67] ([i915#2641])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl1/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt:
    - shard-tglb:         NOTRUN -> [SKIP][68] ([fdo#111825]) +17 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt.html

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

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

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite:
    - shard-apl:          NOTRUN -> [SKIP][71] ([fdo#109271]) +81 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
    - shard-kbl:          NOTRUN -> [SKIP][72] ([fdo#109271]) +79 similar issues
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl1/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][73] ([fdo#109271] / [i915#533])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl8/igt@kms_pipe_crc_basic@read-crc-pipe-d.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb:
    - shard-glk:          NOTRUN -> [FAIL][74] ([i915#265])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk4/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
    - shard-kbl:          NOTRUN -> [FAIL][75] ([fdo#108145] / [i915#265]) +1 similar issue
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl4/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html
    - shard-apl:          NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl2/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html

  * igt@kms_plane_multiple@atomic-pipe-d-tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][77] ([fdo#112054])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb7/igt@kms_plane_multiple@atomic-pipe-d-tiling-yf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2:
    - shard-kbl:          NOTRUN -> [SKIP][78] ([fdo#109271] / [i915#658]) +1 similar issue
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3:
    - shard-tglb:         NOTRUN -> [SKIP][79] ([i915#2920]) +1 similar issue
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
    - shard-apl:          NOTRUN -> [SKIP][80] ([fdo#109271] / [i915#658]) +1 similar issue
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl4/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-1:
    - shard-glk:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk6/igt@kms_psr2_sf@plane-move-sf-dmg-area-1.html
    - shard-iclb:         NOTRUN -> [SKIP][82] ([i915#658]) +1 similar issue
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb4/igt@kms_psr2_sf@plane-move-sf-dmg-area-1.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [PASS][83] -> [SKIP][84] ([fdo#109642] / [fdo#111068] / [i915#658])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb6/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@primary_page_flip:
    - shard-hsw:          NOTRUN -> [SKIP][85] ([fdo#109271] / [i915#1072]) +1 similar issue
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw4/igt@kms_psr@primary_page_flip.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [PASS][86] -> [SKIP][87] ([fdo#109441])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb5/igt@kms_psr@psr2_cursor_mmap_cpu.html

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

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

  * igt@kms_vblank@pipe-d-wait-forked-busy:
    - shard-hsw:          NOTRUN -> [SKIP][90] ([fdo#109271] / [i915#533]) +6 similar issues
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw6/igt@kms_vblank@pipe-d-wait-forked-busy.html

  * igt@kms_writeback@writeback-check-output:
    - shard-iclb:         NOTRUN -> [SKIP][91] ([i915#2437])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb4/igt@kms_writeback@writeback-check-output.html
    - shard-tglb:         NOTRUN -> [SKIP][92] ([i915#2437])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb6/igt@kms_writeback@writeback-check-output.html

  * igt@nouveau_crc@pipe-c-source-outp-inactive:
    - shard-iclb:         NOTRUN -> [SKIP][93] ([i915#2530])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb6/igt@nouveau_crc@pipe-c-source-outp-inactive.html

  * igt@perf@short-reads:
    - shard-hsw:          [PASS][94] -> [FAIL][95] ([i915#51])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-hsw8/igt@perf@short-reads.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw1/igt@perf@short-reads.html

  * igt@perf_pmu@event-wait@rcs0:
    - shard-iclb:         NOTRUN -> [SKIP][96] ([fdo#112283])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb2/igt@perf_pmu@event-wait@rcs0.html
    - shard-tglb:         NOTRUN -> [SKIP][97] ([fdo#112283])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb2/igt@perf_pmu@event-wait@rcs0.html

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

  * igt@prime_nv_test@i915_import_pread_pwrite:
    - shard-tglb:         NOTRUN -> [SKIP][99] ([fdo#109291]) +1 similar issue
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb3/igt@prime_nv_test@i915_import_pread_pwrite.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - shard-glk:          [INCOMPLETE][100] -> [PASS][101]
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-glk3/igt@gem_ctx_isolation@preservation-s3@rcs0.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-glk2/igt@gem_ctx_isolation@preservation-s3@rcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-kbl:          [FAIL][102] ([i915#2842]) -> [PASS][103] +2 similar issues
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl7/igt@gem_exec_fair@basic-pace@vecs0.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [FAIL][104] ([i915#2849]) -> [PASS][105]
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb5/igt@gem_exec_fair@basic-throttle@rcs0.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb2/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
    - shard-apl:          [DMESG-WARN][106] ([i915#1610]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl2/igt@gem_exec_schedule@u-fairslice@rcs0.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl2/igt@gem_exec_schedule@u-fairslice@rcs0.html

  * igt@i915_suspend@forcewake:
    - shard-kbl:          [DMESG-WARN][108] ([i915#180]) -> [PASS][109] +1 similar issue
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl4/igt@i915_suspend@forcewake.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl2/igt@i915_suspend@forcewake.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
    - shard-hsw:          [FAIL][110] ([i915#2370]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-hsw1/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw2/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [SKIP][112] ([fdo#109441]) -> [PASS][113] +1 similar issue
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb7/igt@kms_psr@psr2_no_drrs.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb2/igt@kms_psr@psr2_no_drrs.html

  * {igt@sysfs_clients@recycle}:
    - shard-hsw:          [FAIL][114] ([i915#3028]) -> [PASS][115] +1 similar issue
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-hsw7/igt@sysfs_clients@recycle.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-hsw7/igt@sysfs_clients@recycle.html
    - shard-tglb:         [FAIL][116] ([i915#3028]) -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-tglb3/igt@sysfs_clients@recycle.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-tglb2/igt@sysfs_clients@recycle.html

  * {igt@sysfs_clients@recycle-many}:
    - shard-kbl:          [FAIL][118] ([i915#3028]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl4/igt@sysfs_clients@recycle-many.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl7/igt@sysfs_clients@recycle-many.html

  
#### Warnings ####

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-iclb:         [WARN][120] ([i915#2681] / [i915#2684]) -> [WARN][121] ([i915#2684])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb8/igt@i915_pm_rc6_residency@rc6-fence.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb2/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [DMESG-WARN][122] ([i915#1226]) -> [SKIP][123] ([fdo#109349])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb8/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
    - shard-iclb:         [SKIP][124] ([i915#2920]) -> [SKIP][125] ([i915#658])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4:
    - shard-iclb:         [SKIP][126] ([i915#658]) -> [SKIP][127] ([i915#2920]) +1 similar issue
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-iclb8/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-4.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][128], [FAIL][129], [FAIL][130], [FAIL][131], [FAIL][132]) ([i915#2295] / [i915#3002]) -> ([FAIL][133], [FAIL][134], [FAIL][135], [FAIL][136], [FAIL][137]) ([i915#1814] / [i915#2295] / [i915#3002])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl4/igt@runner@aborted.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl4/igt@runner@aborted.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl4/igt@runner@aborted.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl4/igt@runner@aborted.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-kbl2/igt@runner@aborted.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl1/igt@runner@aborted.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl1/igt@runner@aborted.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl4/igt@runner@aborted.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl4/igt@runner@aborted.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-kbl4/igt@runner@aborted.html
    - shard-apl:          ([FAIL][138], [FAIL][139], [FAIL][140], [FAIL][141]) ([i915#1610] / [i915#2295] / [i915#2426] / [i915#3002]) -> ([FAIL][142], [FAIL][143], [FAIL][144], [FAIL][145], [FAIL][146], [FAIL][147], [FAIL][148]) ([fdo#109271] / [i915#1610] / [i915#1814] / [i915#2295] / [i915#3002])
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl8/igt@runner@aborted.html
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl3/igt@runner@aborted.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl2/igt@runner@aborted.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9729/shard-apl2/igt@runner@aborted.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl1/igt@runner@aborted.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl4/igt@runner@aborted.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl7/igt@runner@aborted.html
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5477/shard-apl1/igt@runner@aborted.html
   [146]: https://intel

== Logs ==

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

[-- Attachment #1.2: Type: text/html, Size: 34264 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests
  2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests Karthik B S
@ 2021-02-16 11:17   ` Nautiyal, Ankit K
  2021-02-17  4:00     ` Karthik B S
  0 siblings, 1 reply; 7+ messages in thread
From: Nautiyal, Ankit K @ 2021-02-16 11:17 UTC (permalink / raw)
  To: Karthik B S, igt-dev

Hi Karthik,

Over all I agree with the patch and the approach. I have a couple of 
suggestion/corrections inline:

On 2/4/2021 1:36 PM, Karthik B S wrote:
> 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)
>
> v7: -Check HDCP capability after modeset on MST. (Anshuman)
>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/kms_content_protection.c | 277 ++++++++++++++++++++++++++++++---
>   1 file changed, 255 insertions(+), 22 deletions(-)
>
> diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
> index 303ed418..4ea79748 100644
> --- a/tests/kms_content_protection.c
> +++ b/tests/kms_content_protection.c
> @@ -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.
> +	 */

Highest possible mode on all the MST might not be successful. The 
current policy seems fair to use 2K mode.

In a particular MST setup this might fail as well and in that case the 
test will fail with ENOSPACE.

Perhaps we can use igt_display_try_commit() and skip the test if the 
modeset itself fails.

Even if we want to test with  higher modes we need to use try commit and 
find the suitable modes that will work.

> +	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], *hdcp_mst_output[IGT_MAX_PIPES];
> +
> +	for_each_pipe(display, pipe)
> +		max_pipe++;
> +
> +	pipe = PIPE_A;
> +
> +	for_each_connected_output(display, output) {
> +		if (!output_is_dp_mst(output, valid_outputs))

This seems to be typo, I think dp_mst_outputs should be instead of 
valid_outputs.


> +			continue;
> +
> +		igt_assert_f(igt_pipe_connector_valid(pipe, output), "Output-pipe combination invalid\n");
> +
> +		prepare_modeset_on_mst_output(output, pipe);
> +		mst_output[dp_mst_outputs++] = output;
> +
> +		pipe++;
> +
> +		if (pipe > max_pipe)
> +			break;
> +	}
> +
> +	igt_require_f(dp_mst_outputs > 1, "No DP MST set up with >= 2 outputs found in a single topology\n");
> +
> +	igt_display_commit2(display, COMMIT_ATOMIC);

As mentioned above, we can use try commit here and skip in caseof 
modeset failure.

Regards,

Ankit

> +
> +	for (count = 0; count < dp_mst_outputs; count++) {
> +		if (!output_hdcp_capable(mst_output[count], content_type))
> +			continue;
> +
> +		hdcp_mst_output[valid_outputs++] = mst_output[count];
> +	}
> +
> +	igt_require_f(valid_outputs > 1, "DP MST outputs do not have the required HDCP support\n");
> +
> +	for (count = 0; count < valid_outputs; count++) {
> +		igt_output_set_prop_value(hdcp_mst_output[count], IGT_CONNECTOR_CONTENT_PROTECTION, CP_DESIRED);
> +
> +		if (output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE])
> +			igt_output_set_prop_value(hdcp_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(hdcp_mst_output[count], CP_ENABLED, KERNEL_AUTH_TIME_ALLOWED_MSEC);
> +		igt_assert_f(ret, "Content Protection not enabled on %s\n", hdcp_mst_output[count]->name);
> +	}
> +
> +	if (data.cp_tests & CP_LIC)
> +		test_cp_lic_on_mst(hdcp_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", hdcp_mst_output[0]->name);
> +	test_cp_disable(hdcp_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(hdcp_mst_output[i], CP_UNDESIRED, KERNEL_DISABLE_TIME_ALLOWED_MSEC);
> +		igt_assert_f(!ret, "Content Protection not enabled on %s\n", hdcp_mst_output[i]->name);
> +	}
> +
> +	if (data.cp_tests & CP_LIC)
> +		test_cp_lic_on_mst(hdcp_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);
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests
  2021-02-16 11:17   ` Nautiyal, Ankit K
@ 2021-02-17  4:00     ` Karthik B S
  0 siblings, 0 replies; 7+ messages in thread
From: Karthik B S @ 2021-02-17  4:00 UTC (permalink / raw)
  To: Nautiyal, Ankit K, igt-dev

On 2/16/2021 4:47 PM, Nautiyal, Ankit K wrote:
> Hi Karthik,
>
> Over all I agree with the patch and the approach. I have a couple of 
> suggestion/corrections inline:

Hi Ankit,

Thank you for the review.

>
> On 2/4/2021 1:36 PM, Karthik B S wrote:
>> 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)
>>
>> v7: -Check HDCP capability after modeset on MST. (Anshuman)
>>
>> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
>> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
>> ---
>>   tests/kms_content_protection.c | 277 ++++++++++++++++++++++++++++++---
>>   1 file changed, 255 insertions(+), 22 deletions(-)
>>
>> diff --git a/tests/kms_content_protection.c 
>> b/tests/kms_content_protection.c
>> index 303ed418..4ea79748 100644
>> --- a/tests/kms_content_protection.c
>> +++ b/tests/kms_content_protection.c
>> @@ -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.
>> +     */
>
> Highest possible mode on all the MST might not be successful. The 
> current policy seems fair to use 2K mode.
>
> In a particular MST setup this might fail as well and in that case the 
> test will fail with ENOSPACE.
>
> Perhaps we can use igt_display_try_commit() and skip the test if the 
> modeset itself fails.
>
> Even if we want to test with  higher modes we need to use try commit 
> and find the suitable modes that will work.

Sure. Agreed that if the modeset fails we will simply create noise by 
failing the HDCP test when we still haven't even tried enabling HDCP.

I will use a try commit and skip the test if the modeset fails.

>
>> +    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], 
>> *hdcp_mst_output[IGT_MAX_PIPES];
>> +
>> +    for_each_pipe(display, pipe)
>> +        max_pipe++;
>> +
>> +    pipe = PIPE_A;
>> +
>> +    for_each_connected_output(display, output) {
>> +        if (!output_is_dp_mst(output, valid_outputs))
>
> This seems to be typo, I think dp_mst_outputs should be instead of 
> valid_outputs.

Yes. I missed this while making the changes in the previous version.

I will fix this.

>
>
>> +            continue;
>> +
>> +        igt_assert_f(igt_pipe_connector_valid(pipe, output), 
>> "Output-pipe combination invalid\n");
>> +
>> +        prepare_modeset_on_mst_output(output, pipe);
>> +        mst_output[dp_mst_outputs++] = output;
>> +
>> +        pipe++;
>> +
>> +        if (pipe > max_pipe)
>> +            break;
>> +    }
>> +
>> +    igt_require_f(dp_mst_outputs > 1, "No DP MST set up with >= 2 
>> outputs found in a single topology\n");
>> +
>> +    igt_display_commit2(display, COMMIT_ATOMIC);
>
> As mentioned above, we can use try commit here and skip in caseof 
> modeset failure.

Yes, I will update this to skip in case of modeset failure.

Thanks,

Karthik.B.S

>
> Regards,
>
> Ankit
>
>> +
>> +    for (count = 0; count < dp_mst_outputs; count++) {
>> +        if (!output_hdcp_capable(mst_output[count], content_type))
>> +            continue;
>> +
>> +        hdcp_mst_output[valid_outputs++] = mst_output[count];
>> +    }
>> +
>> +    igt_require_f(valid_outputs > 1, "DP MST outputs do not have the 
>> required HDCP support\n");
>> +
>> +    for (count = 0; count < valid_outputs; count++) {
>> +        igt_output_set_prop_value(hdcp_mst_output[count], 
>> IGT_CONNECTOR_CONTENT_PROTECTION, CP_DESIRED);
>> +
>> +        if (output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE])
>> +            igt_output_set_prop_value(hdcp_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(hdcp_mst_output[count], 
>> CP_ENABLED, KERNEL_AUTH_TIME_ALLOWED_MSEC);
>> +        igt_assert_f(ret, "Content Protection not enabled on %s\n", 
>> hdcp_mst_output[count]->name);
>> +    }
>> +
>> +    if (data.cp_tests & CP_LIC)
>> +        test_cp_lic_on_mst(hdcp_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", 
>> hdcp_mst_output[0]->name);
>> +    test_cp_disable(hdcp_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(hdcp_mst_output[i], CP_UNDESIRED, 
>> KERNEL_DISABLE_TIME_ALLOWED_MSEC);
>> +        igt_assert_f(!ret, "Content Protection not enabled on %s\n", 
>> hdcp_mst_output[i]->name);
>> +    }
>> +
>> +    if (data.cp_tests & CP_LIC)
>> +        test_cp_lic_on_mst(hdcp_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);


_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2021-02-17  4:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-04  8:06 [igt-dev] [PATCH i-g-t v7 0/2] Add subtests for HDCP over MST Karthik B S
2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 1/2] tests/kms_content_protection: Add MST subtests Karthik B S
2021-02-16 11:17   ` Nautiyal, Ankit K
2021-02-17  4:00     ` Karthik B S
2021-02-04  8:06 ` [igt-dev] [PATCH i-g-t v7 2/2] CI HAX: Add MST tests to fast feedback testlist Karthik B S
2021-02-04  9:29 ` [igt-dev] ✓ Fi.CI.BAT: success for Add subtests for HDCP over MST (rev6) Patchwork
2021-02-04 10:33 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

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