* [igt-dev] [PATCH i-g-t v3 0/2] tests/kms_content_protection: Test Refactoring
@ 2022-09-13 9:04 Karthik B S
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup Karthik B S
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Karthik B S @ 2022-09-13 9:04 UTC (permalink / raw)
To: igt-dev
Series includes patches to:
-Cleanup the test
-Convert the test to dynamic
Signed-off-by: Karthik B S <karthik.b.s@intel.com>
Karthik B S (2):
tests/kms_content_protection: Test Cleanup
tests/kms_content_protectin: Convert test to dynamic
tests/kms_content_protection.c | 393 ++++++++++++++++++---------------
1 file changed, 215 insertions(+), 178 deletions(-)
--
2.22.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup
2022-09-13 9:04 [igt-dev] [PATCH i-g-t v3 0/2] tests/kms_content_protection: Test Refactoring Karthik B S
@ 2022-09-13 9:04 ` Karthik B S
2022-09-21 11:23 ` Modem, Bhanuprakash
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_content_protectin: Convert test to dynamic Karthik B S
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Karthik B S @ 2022-09-13 9:04 UTC (permalink / raw)
To: igt-dev
This patch includes:
1.Add a modeset before checking output is HDCP capable.
Test currently skips on multidisplay MST because we're checking
if output is HDCP capable before doing a modeset on the output.
2.Call igt_display_reset before starting the subtest.
3.test_fini function added to prepare test for converting to dynamic.
4.Remove redundant mode override.
5.Try other pipe/output combo for MST if failure is seen on one.
Signed-off-by: Karthik B S <karthik.b.s@intel.com>
---
tests/kms_content_protection.c | 179 +++++++++++++++++----------------
1 file changed, 92 insertions(+), 87 deletions(-)
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index 3041f1cd..eb59f3fe 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -170,18 +170,15 @@ static void modeset_with_fb(const enum pipe pipe, igt_output_t *output,
enum igt_commit_style s)
{
igt_display_t *display = &data.display;
- drmModeModeInfo mode;
+ drmModeModeInfo *mode;
igt_plane_t *primary;
- igt_assert(kmstest_get_connector_default_mode(
- display->drm_fd, output->config.connector, &mode));
-
- igt_output_override_mode(output, &mode);
+ mode = igt_output_get_mode(output);
igt_output_set_pipe(output, pipe);
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, &data.red);
- igt_fb_set_size(&data.red, primary, mode.hdisplay, mode.vdisplay);
+ igt_fb_set_size(&data.red, primary, mode->hdisplay, mode->vdisplay);
igt_display_commit2(display, s);
@@ -317,90 +314,61 @@ static bool write_srm_as_fw(const __u8 *srm, int len)
}
static void test_content_protection_on_output(igt_output_t *output,
+ enum pipe pipe,
enum igt_commit_style s,
int content_type)
{
igt_display_t *display = &data.display;
- igt_plane_t *primary;
- enum pipe pipe;
bool ret;
- for_each_pipe(display, pipe) {
- if (!igt_pipe_connector_valid(pipe, output))
- continue;
-
- /*
- * If previous subtest of connector failed, pipe
- * attached to that connector is not released.
- * Because of that we have to choose the non
- * attached pipe for this subtest.
- */
- if (!igt_pipe_is_free(display, pipe))
- continue;
-
- modeset_with_fb(pipe, output, s);
- test_cp_enable_with_retry(output, s, 3, content_type, false,
- false);
-
- if (data.cp_tests & CP_TYPE_CHANGE) {
- /* Type 1 -> Type 0 */
- test_cp_enable_with_retry(output, s, 3,
- HDCP_CONTENT_TYPE_0, false,
- true);
- /* Type 0 -> Type 1 */
- test_cp_enable_with_retry(output, s, 3,
- content_type, false,
- true);
- }
-
- if (data.cp_tests & CP_MEI_RELOAD) {
- igt_assert_f(!igt_kmod_unload("mei_hdcp", 0),
- "mei_hdcp unload failed");
+ test_cp_enable_with_retry(output, s, 3, content_type, false,
+ false);
+
+ if (data.cp_tests & CP_TYPE_CHANGE) {
+ /* Type 1 -> Type 0 */
+ test_cp_enable_with_retry(output, s, 3,
+ HDCP_CONTENT_TYPE_0, false,
+ true);
+ /* Type 0 -> Type 1 */
+ test_cp_enable_with_retry(output, s, 3,
+ content_type, false,
+ true);
+ }
- /* Expected to fail */
- test_cp_enable_with_retry(output, s, 3,
- content_type, true, false);
+ if (data.cp_tests & CP_MEI_RELOAD) {
+ igt_assert_f(!igt_kmod_unload("mei_hdcp", 0),
+ "mei_hdcp unload failed");
- igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
- "mei_hdcp load failed");
+ /* Expected to fail */
+ test_cp_enable_with_retry(output, s, 3,
+ content_type, true, false);
- /* Expected to pass */
- test_cp_enable_with_retry(output, s, 3,
- content_type, false, false);
- }
+ igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
+ "mei_hdcp load failed");
- if (data.cp_tests & CP_LIC)
- test_cp_lic(output);
+ /* Expected to pass */
+ test_cp_enable_with_retry(output, s, 3,
+ content_type, false, false);
+ }
- if (data.cp_tests & CP_DPMS) {
- igt_pipe_set_prop_value(display, pipe,
- IGT_CRTC_ACTIVE, 0);
- igt_display_commit2(display, s);
+ if (data.cp_tests & CP_LIC)
+ test_cp_lic(output);
- igt_pipe_set_prop_value(display, pipe,
- IGT_CRTC_ACTIVE, 1);
- igt_display_commit2(display, s);
+ if (data.cp_tests & CP_DPMS) {
+ igt_pipe_set_prop_value(display, pipe,
+ IGT_CRTC_ACTIVE, 0);
+ igt_display_commit2(display, s);
- ret = wait_for_prop_value(output, CP_ENABLED,
- KERNEL_AUTH_TIME_ALLOWED_MSEC);
- if (!ret)
- test_cp_enable_with_retry(output, s, 2,
- content_type, false,
- false);
- }
+ igt_pipe_set_prop_value(display, pipe,
+ IGT_CRTC_ACTIVE, 1);
+ igt_display_commit2(display, s);
- test_cp_disable(output, s);
- primary = igt_output_get_plane_type(output,
- DRM_PLANE_TYPE_PRIMARY);
- igt_plane_set_fb(primary, NULL);
- igt_output_set_pipe(output, PIPE_NONE);
-
- /*
- * Testing a output with a pipe is enough for HDCP
- * testing. No ROI in testing the connector with other
- * pipes. So Break the loop on pipe.
- */
- break;
+ ret = wait_for_prop_value(output, CP_ENABLED,
+ KERNEL_AUTH_TIME_ALLOWED_MSEC);
+ if (!ret)
+ test_cp_enable_with_retry(output, s, 2,
+ content_type, false,
+ false);
}
}
@@ -458,7 +426,8 @@ static bool sink_hdcp2_capable(igt_output_t *output)
return strstr(buf, "HDCP2.2");
}
-static void prepare_modeset_on_mst_output(igt_output_t *output)
+static void
+prepare_modeset_on_mst_output(igt_output_t *output)
{
drmModeModeInfo *mode;
igt_plane_t *primary;
@@ -477,7 +446,8 @@ static void prepare_modeset_on_mst_output(igt_output_t *output)
igt_plane_set_size(primary, width, height);
}
-static bool output_hdcp_capable(igt_output_t *output, int content_type)
+static bool
+output_hdcp_capable(igt_output_t *output, int content_type)
{
if (!output->props[IGT_CONNECTOR_CONTENT_PROTECTION])
return false;
@@ -499,6 +469,19 @@ static bool output_hdcp_capable(igt_output_t *output, int content_type)
return true;
}
+static void
+test_fini(igt_output_t *output, enum igt_commit_style s)
+{
+ igt_plane_t *primary;
+
+ test_cp_disable(output, s);
+ primary = igt_output_get_plane_type(output,
+ DRM_PLANE_TYPE_PRIMARY);
+ igt_plane_set_fb(primary, NULL);
+ igt_output_set_pipe(output, PIPE_NONE);
+ igt_display_commit2(&data.display, s);
+}
+
static void
test_content_protection(enum igt_commit_style s, int content_type)
{
@@ -511,10 +494,27 @@ test_content_protection(enum igt_commit_style s, int content_type)
"mei_hdcp module is not loaded\n");
for_each_connected_output(display, output) {
- if (!output_hdcp_capable(output, content_type))
- continue;
+ for_each_pipe(display, pipe) {
+ if (!igt_pipe_connector_valid(pipe, output))
+ continue;
+
+ igt_display_reset(display);
+ modeset_with_fb(pipe, output, s);
+
+ if (!output_hdcp_capable(output, content_type))
+ continue;
+
+ test_content_protection_on_output(output, pipe, s, content_type);
+ test_fini(output, s);
+
+ /*
+ * Testing a output with a pipe is enough for HDCP
+ * testing. No ROI in testing the connector with other
+ * pipes. So Break the loop on pipe.
+ */
+ break;
+ }
- test_content_protection_on_output(output, s, content_type);
valid_tests++;
}
@@ -596,6 +596,7 @@ test_content_protection_mst(int content_type)
igt_output_t *output;
int valid_outputs = 0, dp_mst_outputs = 0, ret, count, max_pipe = 0, i;
enum pipe pipe;
+ bool pipe_found;
igt_output_t *mst_output[IGT_MAX_PIPES], *hdcp_mst_output[IGT_MAX_PIPES];
for_each_pipe(display, pipe)
@@ -607,16 +608,20 @@ test_content_protection_mst(int content_type)
if (!output_is_dp_mst(output, dp_mst_outputs))
continue;
- igt_assert_f(igt_pipe_connector_valid(pipe, output), "Output-pipe combination invalid\n");
+ pipe_found = false;
+ for_each_pipe(display, pipe) {
+ if (igt_pipe_is_free(display, pipe) &&
+ igt_pipe_connector_valid(pipe, output)) {
+ pipe_found = true;
+ break;
+ }
+ }
+
+ igt_assert_f(pipe_found, "No valid pipe found for %s\n", output->name);
igt_output_set_pipe(output, pipe);
prepare_modeset_on_mst_output(output);
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");
--
2.22.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_content_protectin: Convert test to dynamic
2022-09-13 9:04 [igt-dev] [PATCH i-g-t v3 0/2] tests/kms_content_protection: Test Refactoring Karthik B S
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup Karthik B S
@ 2022-09-13 9:04 ` Karthik B S
2022-09-21 11:54 ` Modem, Bhanuprakash
2022-09-13 14:10 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_content_protection: Test Refactoring Patchwork
2022-09-14 1:29 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 1 reply; 8+ messages in thread
From: Karthik B S @ 2022-09-13 9:04 UTC (permalink / raw)
To: igt-dev
Covert the existing subtests to dynamic subtests at pipe/output level.
Signed-off-by: Karthik B S <karthik.b.s@intel.com>
---
tests/kms_content_protection.c | 220 +++++++++++++++++++--------------
1 file changed, 126 insertions(+), 94 deletions(-)
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index eb59f3fe..aadc10af 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -487,12 +487,17 @@ 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;
+ enum pipe pipe;
if (data.cp_tests & CP_MEI_RELOAD)
igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
"mei_hdcp module is not loaded\n");
+ if (data.cp_tests & CP_UEVENT) {
+ data.uevent_monitor = igt_watch_uevents();
+ igt_flush_uevents(data.uevent_monitor);
+ }
+
for_each_connected_output(display, output) {
for_each_pipe(display, pipe) {
if (!igt_pipe_connector_valid(pipe, output))
@@ -504,9 +509,10 @@ test_content_protection(enum igt_commit_style s, int content_type)
if (!output_hdcp_capable(output, content_type))
continue;
- test_content_protection_on_output(output, pipe, s, content_type);
- test_fini(output, s);
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
+ test_content_protection_on_output(output, pipe, s, content_type);
+ test_fini(output, s);
/*
* Testing a output with a pipe is enough for HDCP
* testing. No ROI in testing the connector with other
@@ -514,11 +520,10 @@ test_content_protection(enum igt_commit_style s, int content_type)
*/
break;
}
-
- valid_tests++;
}
- igt_require_f(valid_tests, "No connector found with HDCP capability\n");
+ if (data.cp_tests & CP_UEVENT)
+ igt_cleanup_uevents(data.uevent_monitor);
}
static int parse_path_blob(char *blob_data)
@@ -728,6 +733,94 @@ static void create_fbs(void)
0.f, 1.f, 0.f, &data.green);
}
+static const struct {
+ const char *desc;
+ const char *name;
+ unsigned int cp_tests;
+ bool content_type;
+} subtests[] = {
+ { .desc = "Test content protection with atomic modesetting",
+ .name = "atomic",
+ .cp_tests = 0,
+ .content_type = HDCP_CONTENT_TYPE_0
+ },
+ { .desc = "Test content protection with DPMS ON/OFF during atomic modesetting.",
+ .name = "atomic-dpms",
+ .cp_tests = CP_DPMS,
+ .content_type = HDCP_CONTENT_TYPE_0
+ },
+ { .desc = "Test for the integrity of link.",
+ .name = "LIC",
+ .cp_tests = CP_LIC,
+ .content_type = HDCP_CONTENT_TYPE_0,
+ },
+ { .desc = "Test content protection with content type 1 "
+ "that can be handled only through HDCP2.2.",
+ .name = "type1",
+ .cp_tests = 0,
+ .content_type = HDCP_CONTENT_TYPE_1,
+ },
+ { .desc = "Test the teardown and rebuild of the interface between "
+ "I915 and mei hdcp.",
+ .name = "mei_interface",
+ .cp_tests = CP_MEI_RELOAD,
+ .content_type = HDCP_CONTENT_TYPE_1,
+ },
+ { .desc = "Test the content type change when the content protection already enabled",
+ .name = "content_type_change",
+ .cp_tests = CP_TYPE_CHANGE,
+ .content_type = HDCP_CONTENT_TYPE_1,
+ },
+ { .desc = "Test to detect the HDCP status change when we are reading the uevent "
+ "sent with the corresponding connector id and property id.",
+ .name = "uevent",
+ .cp_tests = CP_UEVENT,
+ .content_type = HDCP_CONTENT_TYPE_0,
+ },
+ /*
+ * Testing the revocation check through SRM needs a HDCP sink with
+ * programmable Ksvs or we need a uAPI from kernel to read the
+ * connected HDCP sink's Ksv. With that we would be able to add that
+ * Ksv into a SRM and send in for revocation check. Since we dont have
+ * either of these options, we test SRM writing from userspace and
+ * validation of the same at kernel. Something is better than nothing.
+ */
+ { .desc = "This test writes the facsimile SRM into the /lib/firmware/ "
+ "and check the kernel parsing of it by invoking the hdcp authentication.",
+ .name = "srm",
+ .cp_tests = 0,
+ .content_type = HDCP_CONTENT_TYPE_0,
+ },
+};
+
+static const struct {
+ const char *desc;
+ const char *name;
+ unsigned int cp_tests;
+ bool content_type;
+} mst_subtests[] = {
+ { .desc = "Test Content protection(Type 0) over DP MST.",
+ .name = "dp-mst-type-0",
+ .cp_tests = 0,
+ .content_type = HDCP_CONTENT_TYPE_0
+ },
+ { .desc = "Test Content protection(Type 0) over DP MST with LIC.",
+ .name = "dp-mst-lic-type-0",
+ .cp_tests = CP_LIC,
+ .content_type = HDCP_CONTENT_TYPE_0
+ },
+ { .desc = "Test Content protection(Type 1) over DP MST.",
+ .name = "dp-mst-type-1",
+ .cp_tests = 0,
+ .content_type = HDCP_CONTENT_TYPE_1,
+ },
+ { .desc = "Test Content protection(Type 1) over DP MST with LIC.",
+ .name = "dp-mst-lic-type-1",
+ .cp_tests = CP_LIC,
+ .content_type = HDCP_CONTENT_TYPE_1,
+ },
+};
+
igt_main
{
igt_fixture {
@@ -738,107 +831,46 @@ igt_main
}
igt_describe("Test content protection with legacy style commit.");
- igt_subtest("legacy") {
+ igt_subtest_with_dynamic("legacy") {
data.cp_tests = 0;
test_content_protection(COMMIT_LEGACY, HDCP_CONTENT_TYPE_0);
}
- igt_describe("Test content protection with atomic modesetting");
- igt_subtest("atomic") {
- igt_require(data.display.is_atomic);
- data.cp_tests = 0;
- test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
- }
+ igt_subtest_group {
+ igt_fixture
+ igt_require(data.display.is_atomic);
- igt_describe("Test content protection with DPMS ON/OFF during atomic modesetting.");
- igt_subtest("atomic-dpms") {
- igt_require(data.display.is_atomic);
- data.cp_tests = CP_DPMS;
- test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
- }
+ for (int i = 0; i < ARRAY_SIZE(subtests); i++) {
+ igt_describe_f("%s", subtests[i].desc);
- igt_describe("Test for the integrity of link.");
- igt_subtest("LIC") {
- igt_require(data.display.is_atomic);
- data.cp_tests = CP_LIC;
- test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
- }
+ igt_subtest_with_dynamic(subtests[i].name) {
+ data.cp_tests = subtests[i].cp_tests;
- igt_describe("Test content protection with content type 1 that "
- "can be handled only through HDCP2.2.");
- igt_subtest("type1") {
- igt_require(data.display.is_atomic);
- test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
- }
+ if (!strcmp(subtests[i].name, "srm")) {
+ bool ret;
- igt_describe("Test the teardown and rebuild of the interface between "
- "I915 and mei hdcp.");
- igt_subtest("mei_interface") {
- igt_require(data.display.is_atomic);
- data.cp_tests = CP_MEI_RELOAD;
- test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
- }
+ ret = write_srm_as_fw((const __u8 *)facsimile_srm,
+ sizeof(facsimile_srm));
+ igt_assert_f(ret, "SRM update failed");
+ }
- igt_describe("Test the content type change when the content protection already "
- "enabled.");
- igt_subtest("content_type_change") {
- igt_require(data.display.is_atomic);
- data.cp_tests = CP_TYPE_CHANGE;
- test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
- }
-
- igt_describe("Test to detect the HDCP status change when we are reading the uevent "
- "sent with the corresponding connector id and property id.");
- igt_subtest("uevent") {
- igt_require(data.display.is_atomic);
- data.cp_tests = CP_UEVENT;
- data.uevent_monitor = igt_watch_uevents();
- igt_flush_uevents(data.uevent_monitor);
- test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
- igt_cleanup_uevents(data.uevent_monitor);
- }
-
- /*
- * Testing the revocation check through SRM needs a HDCP sink with
- * programmable Ksvs or we need a uAPI from kernel to read the
- * connected HDCP sink's Ksv. With that we would be able to add that
- * Ksv into a SRM and send in for revocation check. Since we dont have
- * either of these options, we test SRM writing from userspace and
- * validation of the same at kernel. Something is better than nothing.
- */
- igt_describe("This test writes the facsimile SRM into the /lib/firmware/ "
- "and check the kernel parsing of it by invoking the hdcp authentication.");
- igt_subtest("srm") {
- bool ret;
-
- igt_require(data.display.is_atomic);
- data.cp_tests = 0;
- ret = write_srm_as_fw((const __u8 *)facsimile_srm,
- sizeof(facsimile_srm));
- igt_assert_f(ret, "SRM update failed");
- 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);
+ test_content_protection(COMMIT_ATOMIC, subtests[i].content_type);
+ }
+ }
}
- 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_subtest_group {
+ igt_fixture
+ igt_require(data.display.is_atomic);
- igt_describe("Test Content protection over DP MST");
- igt_subtest("dp-mst-type-1") {
- test_content_protection_mst(HDCP_CONTENT_TYPE_1);
- }
+ for (int i = 0; i < ARRAY_SIZE(mst_subtests); i++) {
+ igt_describe_f("%s", mst_subtests[i].desc);
- 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_subtest(mst_subtests[i].name) {
+ data.cp_tests = mst_subtests[i].cp_tests;
+ test_content_protection_mst(mst_subtests[i].content_type);
+ }
+ }
}
igt_fixture {
--
2.22.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_content_protection: Test Refactoring
2022-09-13 9:04 [igt-dev] [PATCH i-g-t v3 0/2] tests/kms_content_protection: Test Refactoring Karthik B S
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup Karthik B S
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_content_protectin: Convert test to dynamic Karthik B S
@ 2022-09-13 14:10 ` Patchwork
2022-09-14 1:29 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2022-09-13 14:10 UTC (permalink / raw)
To: Karthik B S; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 5011 bytes --]
== Series Details ==
Series: tests/kms_content_protection: Test Refactoring
URL : https://patchwork.freedesktop.org/series/108484/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12128 -> IGTPW_7776
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/index.html
Participating hosts (42 -> 40)
------------------------------
Additional (1): bat-dg2-11
Missing (3): fi-ctg-p8600 fi-hsw-4770 fi-bdw-samus
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_7776:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@gem_exec_suspend@basic-s0@lmem0:
- {bat-dg2-11}: NOTRUN -> [DMESG-WARN][1] +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/bat-dg2-11/igt@gem_exec_suspend@basic-s0@lmem0.html
Known issues
------------
Here are the changes found in IGTPW_7776 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-ivb-3770: NOTRUN -> [SKIP][2] ([fdo#109271] / [fdo#111827])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/fi-ivb-3770/igt@kms_chamelium@common-hpd-after-suspend.html
#### Possible fixes ####
* igt@i915_selftest@live@hangcheck:
- fi-ivb-3770: [INCOMPLETE][3] ([i915#3303] / [i915#5370]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/fi-ivb-3770/igt@i915_selftest@live@hangcheck.html
* igt@i915_selftest@live@slpc:
- {bat-rpls-1}: [DMESG-FAIL][5] ([i915#6367]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/bat-rpls-1/igt@i915_selftest@live@slpc.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/bat-rpls-1/igt@i915_selftest@live@slpc.html
#### Warnings ####
* igt@i915_selftest@live@hangcheck:
- bat-dg1-5: [DMESG-FAIL][7] ([i915#4957]) -> [DMESG-FAIL][8] ([i915#4494] / [i915#4957])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3595]: https://gitlab.freedesktop.org/drm/intel/issues/3595
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
[i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
[i915#5370]: https://gitlab.freedesktop.org/drm/intel/issues/5370
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6653 -> IGTPW_7776
CI-20190529: 20190529
CI_DRM_12128: 9508a7418e4beed93db88d42235449bc097eaf97 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7776: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/index.html
IGT_6653: 4f927248ebbf11f03f4c1ea2254f011e7575322f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/index.html
[-- Attachment #2: Type: text/html, Size: 4426 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_content_protection: Test Refactoring
2022-09-13 9:04 [igt-dev] [PATCH i-g-t v3 0/2] tests/kms_content_protection: Test Refactoring Karthik B S
` (2 preceding siblings ...)
2022-09-13 14:10 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_content_protection: Test Refactoring Patchwork
@ 2022-09-14 1:29 ` Patchwork
3 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2022-09-14 1:29 UTC (permalink / raw)
To: Karthik B S; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 39129 bytes --]
== Series Details ==
Series: tests/kms_content_protection: Test Refactoring
URL : https://patchwork.freedesktop.org/series/108484/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12128_full -> IGTPW_7776_full
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with IGTPW_7776_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_7776_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_7776/index.html
Participating hosts (11 -> 8)
------------------------------
Missing (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_7776_full:
### IGT changes ###
#### Possible regressions ####
* {igt@kms_content_protection@lic@pipe-a-dp-1} (NEW):
- shard-apl: NOTRUN -> [INCOMPLETE][1] +4 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl4/igt@kms_content_protection@lic@pipe-a-dp-1.html
* {igt@kms_content_protection@uevent@pipe-a-dp-1} (NEW):
- shard-apl: NOTRUN -> [FAIL][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl2/igt@kms_content_protection@uevent@pipe-a-dp-1.html
#### Warnings ####
* igt@kms_content_protection@atomic-dpms:
- shard-tglb: [SKIP][3] ([i915#1063]) -> [SKIP][4] +8 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglb5/igt@kms_content_protection@atomic-dpms.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb6/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@uevent:
- shard-iclb: [SKIP][5] ([fdo#109300] / [fdo#111066]) -> [SKIP][6] +8 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb1/igt@kms_content_protection@uevent.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb8/igt@kms_content_protection@uevent.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@kms_content_protection@atomic:
- {shard-tglu}: NOTRUN -> [SKIP][7] +3 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglu-1/igt@kms_content_protection@atomic.html
* igt@kms_content_protection@atomic-dpms:
- {shard-tglu}: [SKIP][8] ([i915#1063]) -> [SKIP][9] +3 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglu-2/igt@kms_content_protection@atomic-dpms.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglu-1/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@type1:
- {shard-rkl}: NOTRUN -> [SKIP][10] +1 similar issue
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-rkl-6/igt@kms_content_protection@type1.html
New tests
---------
New tests have been introduced between CI_DRM_12128_full and IGTPW_7776_full:
### New IGT tests (6) ###
* igt@kms_content_protection@atomic-dpms@pipe-a-dp-1:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s
* igt@kms_content_protection@atomic@pipe-a-dp-1:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s
* igt@kms_content_protection@legacy@pipe-a-dp-1:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s
* igt@kms_content_protection@lic@pipe-a-dp-1:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s
* igt@kms_content_protection@srm@pipe-a-dp-1:
- Statuses : 1 incomplete(s)
- Exec time: [0.0] s
* igt@kms_content_protection@uevent@pipe-a-dp-1:
- Statuses : 1 fail(s)
- Exec time: [34.52] s
Known issues
------------
Here are the changes found in IGTPW_7776_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ccs@ctrl-surf-copy:
- shard-tglb: NOTRUN -> [SKIP][11] ([i915#3555] / [i915#5325])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb3/igt@gem_ccs@ctrl-surf-copy.html
- shard-iclb: NOTRUN -> [SKIP][12] ([i915#5327])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb6/igt@gem_ccs@ctrl-surf-copy.html
* igt@gem_ctx_persistence@engines-hostile-preempt:
- shard-snb: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#1099])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-snb5/igt@gem_ctx_persistence@engines-hostile-preempt.html
* igt@gem_eio@kms:
- shard-tglb: [PASS][14] -> [FAIL][15] ([i915#5784])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglb7/igt@gem_eio@kms.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb3/igt@gem_eio@kms.html
* igt@gem_exec_balancer@parallel-out-fence:
- shard-iclb: [PASS][16] -> [SKIP][17] ([i915#4525]) +1 similar issue
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb2/igt@gem_exec_balancer@parallel-out-fence.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb8/igt@gem_exec_balancer@parallel-out-fence.html
* igt@gem_exec_fair@basic-deadline:
- shard-apl: NOTRUN -> [FAIL][18] ([i915#2846])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl6/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][19] ([i915#2842])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@gem_exec_fair@basic-none@vcs1.html
* igt@gem_exec_fair@basic-pace@vcs0:
- shard-glk: [PASS][20] -> [FAIL][21] ([i915#2842]) +2 similar issues
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-glk7/igt@gem_exec_fair@basic-pace@vcs0.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk2/igt@gem_exec_fair@basic-pace@vcs0.html
* igt@gem_huc_copy@huc-copy:
- shard-tglb: [PASS][22] -> [SKIP][23] ([i915#2190])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglb3/igt@gem_huc_copy@huc-copy.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-verify-random:
- shard-tglb: NOTRUN -> [SKIP][24] ([i915#4613]) +1 similar issue
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@gem_lmem_swapping@heavy-verify-random.html
- shard-glk: NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#4613]) +2 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk5/igt@gem_lmem_swapping@heavy-verify-random.html
- shard-iclb: NOTRUN -> [SKIP][26] ([i915#4613]) +1 similar issue
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb5/igt@gem_lmem_swapping@heavy-verify-random.html
* igt@gem_lmem_swapping@parallel-random-verify-ccs:
- shard-apl: NOTRUN -> [SKIP][27] ([fdo#109271] / [i915#4613]) +2 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl6/igt@gem_lmem_swapping@parallel-random-verify-ccs.html
* igt@gen9_exec_parse@cmd-crossing-page:
- shard-tglb: NOTRUN -> [SKIP][28] ([i915#2527] / [i915#2856])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@gen9_exec_parse@cmd-crossing-page.html
- shard-iclb: NOTRUN -> [SKIP][29] ([i915#2856])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb5/igt@gen9_exec_parse@cmd-crossing-page.html
* igt@i915_pm_dc@dc6-dpms:
- shard-iclb: [PASS][30] -> [FAIL][31] ([i915#454])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb6/igt@i915_pm_dc@dc6-dpms.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_pm_dc@dc9-dpms:
- shard-iclb: [PASS][32] -> [SKIP][33] ([i915#4281])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb6/igt@i915_pm_dc@dc9-dpms.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_big_fb@y-tiled-8bpp-rotate-90:
- shard-iclb: NOTRUN -> [SKIP][34] ([fdo#110725] / [fdo#111614])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb7/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
- shard-tglb: NOTRUN -> [SKIP][35] ([fdo#111614])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-0:
- shard-iclb: NOTRUN -> [SKIP][36] ([fdo#110723])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
- shard-tglb: NOTRUN -> [SKIP][37] ([fdo#111615])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb5/igt@kms_big_fb@yf-tiled-8bpp-rotate-0.html
* igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_mc_ccs:
- shard-iclb: NOTRUN -> [SKIP][38] ([fdo#109278]) +2 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb5/igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_mc_ccs.html
- shard-tglb: NOTRUN -> [SKIP][39] ([i915#3689] / [i915#6095])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_ccs:
- shard-tglb: NOTRUN -> [SKIP][40] ([i915#3689])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_ccs.html
* igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][41] ([fdo#109271] / [i915#3886]) +3 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl6/igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc:
- shard-tglb: NOTRUN -> [SKIP][42] ([i915#6095])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb2/igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_chamelium@dp-hpd-for-each-pipe:
- shard-glk: NOTRUN -> [SKIP][43] ([fdo#109271] / [fdo#111827]) +4 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk8/igt@kms_chamelium@dp-hpd-for-each-pipe.html
- shard-iclb: NOTRUN -> [SKIP][44] ([fdo#109284] / [fdo#111827]) +1 similar issue
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_chamelium@dp-hpd-for-each-pipe.html
* igt@kms_chamelium@vga-hpd-after-suspend:
- shard-apl: NOTRUN -> [SKIP][45] ([fdo#109271] / [fdo#111827]) +7 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl6/igt@kms_chamelium@vga-hpd-after-suspend.html
- shard-snb: NOTRUN -> [SKIP][46] ([fdo#109271] / [fdo#111827]) +1 similar issue
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-snb7/igt@kms_chamelium@vga-hpd-after-suspend.html
- shard-tglb: NOTRUN -> [SKIP][47] ([fdo#109284] / [fdo#111827]) +1 similar issue
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb6/igt@kms_chamelium@vga-hpd-after-suspend.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-glk: [PASS][48] -> [FAIL][49] ([i915#2346])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_flip@2x-flip-vs-modeset:
- shard-tglb: NOTRUN -> [SKIP][50] ([fdo#109274] / [fdo#111825] / [i915#3637])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb1/igt@kms_flip@2x-flip-vs-modeset.html
- shard-iclb: NOTRUN -> [SKIP][51] ([fdo#109274])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb1/igt@kms_flip@2x-flip-vs-modeset.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][52] ([i915#2672]) +4 similar issues
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][53] ([i915#2672] / [i915#3555])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu:
- shard-iclb: [PASS][54] -> [FAIL][55] ([i915#1888] / [i915#2546])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu.html
- shard-glk: [PASS][56] -> [FAIL][57] ([i915#1888] / [i915#2546])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-glk5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-cpu.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt:
- shard-iclb: NOTRUN -> [SKIP][58] ([fdo#109280]) +3 similar issues
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-gtt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-tglb: NOTRUN -> [SKIP][59] ([fdo#109280] / [fdo#111825]) +3 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move:
- shard-tglb: NOTRUN -> [SKIP][60] ([i915#6497]) +2 similar issues
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt:
- shard-glk: NOTRUN -> [SKIP][61] ([fdo#109271]) +52 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html
* igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c:
- shard-iclb: NOTRUN -> [SKIP][62] ([fdo#109289])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb7/igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c.html
- shard-tglb: NOTRUN -> [SKIP][63] ([fdo#109289])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb1/igt@kms_pipe_b_c_ivb@pipe-b-double-modeset-then-modeset-pipe-c.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
- shard-apl: NOTRUN -> [FAIL][64] ([i915#265])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl4/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
- shard-glk: NOTRUN -> [FAIL][65] ([i915#265])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk6/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
- shard-glk: NOTRUN -> [FAIL][66] ([fdo#108145] / [i915#265])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk7/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
* igt@kms_plane_alpha_blend@pipe-d-alpha-transparent-fb:
- shard-apl: NOTRUN -> [SKIP][67] ([fdo#109271]) +100 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl3/igt@kms_plane_alpha_blend@pipe-d-alpha-transparent-fb.html
* igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1:
- shard-iclb: [PASS][68] -> [SKIP][69] ([i915#5176]) +2 similar issues
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb4/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1.html
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1.html
* igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1:
- shard-iclb: [PASS][70] -> [SKIP][71] ([i915#5235]) +2 similar issues
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb4/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b-edp-1.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
- shard-apl: NOTRUN -> [SKIP][72] ([fdo#109271] / [i915#658])
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl2/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
* igt@kms_psr@psr2_primary_page_flip:
- shard-iclb: [PASS][73] -> [SKIP][74] ([fdo#109441])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb4/igt@kms_psr@psr2_primary_page_flip.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-iclb: [PASS][75] -> [SKIP][76] ([i915#5519])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb8/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb4/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
- shard-tglb: NOTRUN -> [SKIP][77] ([fdo#111615] / [i915#5289])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
* igt@kms_vblank@pipe-c-query-busy-hang:
- shard-snb: NOTRUN -> [SKIP][78] ([fdo#109271]) +32 similar issues
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-snb5/igt@kms_vblank@pipe-c-query-busy-hang.html
* igt@perf_pmu@event-wait@rcs0:
- shard-iclb: NOTRUN -> [SKIP][79] ([fdo#112283])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb1/igt@perf_pmu@event-wait@rcs0.html
- shard-tglb: NOTRUN -> [SKIP][80] ([fdo#112283])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb1/igt@perf_pmu@event-wait@rcs0.html
* igt@prime_nv_pcopy@test3_3:
- shard-iclb: NOTRUN -> [SKIP][81] ([fdo#109291])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb7/igt@prime_nv_pcopy@test3_3.html
- shard-tglb: NOTRUN -> [SKIP][82] ([fdo#109291])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb3/igt@prime_nv_pcopy@test3_3.html
* igt@sysfs_clients@busy:
- shard-tglb: NOTRUN -> [SKIP][83] ([i915#2994])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@sysfs_clients@busy.html
- shard-glk: NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#2994])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk5/igt@sysfs_clients@busy.html
- shard-iclb: NOTRUN -> [SKIP][85] ([i915#2994])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb8/igt@sysfs_clients@busy.html
* igt@sysfs_clients@create:
- shard-apl: NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#2994]) +2 similar issues
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl6/igt@sysfs_clients@create.html
#### Possible fixes ####
* igt@gem_eio@unwedge-stress:
- shard-tglb: [FAIL][87] ([i915#5784]) -> [PASS][88]
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglb1/igt@gem_eio@unwedge-stress.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@parallel-bb-first:
- shard-iclb: [SKIP][89] ([i915#4525]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb7/igt@gem_exec_balancer@parallel-bb-first.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb1/igt@gem_exec_balancer@parallel-bb-first.html
* igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglb: [FAIL][91] ([i915#2842]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglb6/igt@gem_exec_fair@basic-flow@rcs0.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb6/igt@gem_exec_fair@basic-flow@rcs0.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-glk: [FAIL][93] ([i915#2842]) -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-glk2/igt@gem_exec_fair@basic-none-share@rcs0.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk7/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-apl: [FAIL][95] ([i915#2842]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-apl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [FAIL][97] ([i915#2842]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb5/igt@gem_exec_fair@basic-throttle@rcs0.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb4/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gem_partial_pwrite_pread@writes-after-reads-display:
- {shard-rkl}: [SKIP][99] ([i915#3282]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
* igt@gem_userptr_blits@huge-split:
- shard-tglb: [FAIL][101] ([i915#3376]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglb7/igt@gem_userptr_blits@huge-split.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb3/igt@gem_userptr_blits@huge-split.html
* igt@gen9_exec_parse@bb-chained:
- {shard-rkl}: [SKIP][103] ([i915#2527]) -> [PASS][104]
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-rkl-6/igt@gen9_exec_parse@bb-chained.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-rkl-5/igt@gen9_exec_parse@bb-chained.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [FAIL][105] ([i915#454]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb7/igt@i915_pm_dc@dc6-psr.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb4/igt@i915_pm_dc@dc6-psr.html
* igt@i915_selftest@live@gt_pm:
- {shard-tglu}: [DMESG-FAIL][107] ([i915#3987]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglu-4/igt@i915_selftest@live@gt_pm.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglu-2/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@hangcheck:
- shard-tglb: [DMESG-WARN][109] ([i915#5591]) -> [PASS][110]
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-tglb3/igt@i915_selftest@live@hangcheck.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-tglb7/igt@i915_selftest@live@hangcheck.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-180:
- shard-glk: [FAIL][111] ([i915#1888] / [i915#5138]) -> [PASS][112]
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-glk2/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk8/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
- shard-glk: [FAIL][113] -> [PASS][114]
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
* igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
- shard-apl: [DMESG-WARN][115] ([i915#180]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-apl1/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-apl3/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-iclb: [SKIP][117] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][118]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb8/igt@kms_psr2_su@frontbuffer-xrgb8888.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@psr2_dpms:
- shard-iclb: [SKIP][119] ([fdo#109441]) -> [PASS][120] +1 similar issue
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb4/igt@kms_psr@psr2_dpms.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_psr@psr2_dpms.html
#### Warnings ####
* igt@i915_pm_dc@dc3co-vpb-simulation:
- shard-iclb: [SKIP][121] ([i915#658]) -> [SKIP][122] ([i915#588])
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb1/igt@i915_pm_dc@dc3co-vpb-simulation.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
* igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
- shard-iclb: [SKIP][123] ([fdo#111068] / [i915#658]) -> [SKIP][124] ([i915#2920])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb3/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
- shard-iclb: [SKIP][125] ([i915#2920]) -> [SKIP][126] ([i915#658]) +1 similar issue
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12128/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/shard-iclb6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
{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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
[fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
[fdo#111066]: https://bugs.freedesktop.org/show_bug.cgi?id=111066
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
[i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
[i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
[i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
[i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
[i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
[i915#2532]: https://gitlab.freedesktop.org/drm/intel/issues/2532
[i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2876]: https://gitlab.freedesktop.org/drm/intel/issues/2876
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
[i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3376]: https://gitlab.freedesktop.org/drm/intel/issues/3376
[i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
[i915#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987
[i915#4016]: https://gitlab.freedesktop.org/drm/intel/issues/4016
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
[i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
[i915#4998]: https://gitlab.freedesktop.org/drm/intel/issues/4998
[i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
[i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591
[i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6251]: https://gitlab.freedesktop.org/drm/intel/issues/6251
[i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
[i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#6599]: https://gitlab.freedesktop.org/drm/intel/issues/6599
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6653 -> IGTPW_7776
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12128: 9508a7418e4beed93db88d42235449bc097eaf97 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7776: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/index.html
IGT_6653: 4f927248ebbf11f03f4c1ea2254f011e7575322f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7776/index.html
[-- Attachment #2: Type: text/html, Size: 39321 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup Karthik B S
@ 2022-09-21 11:23 ` Modem, Bhanuprakash
2022-09-22 6:46 ` Karthik B S
0 siblings, 1 reply; 8+ messages in thread
From: Modem, Bhanuprakash @ 2022-09-21 11:23 UTC (permalink / raw)
To: Karthik B S, igt-dev
On Tue-13-09-2022 02:34 pm, Karthik B S wrote:
> This patch includes:
> 1.Add a modeset before checking output is HDCP capable.
> Test currently skips on multidisplay MST because we're checking
> if output is HDCP capable before doing a modeset on the output.
> 2.Call igt_display_reset before starting the subtest.
> 3.test_fini function added to prepare test for converting to dynamic.
> 4.Remove redundant mode override.
> 5.Try other pipe/output combo for MST if failure is seen on one.
>
> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
> ---
> tests/kms_content_protection.c | 179 +++++++++++++++++----------------
> 1 file changed, 92 insertions(+), 87 deletions(-)
>
> diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
> index 3041f1cd..eb59f3fe 100644
> --- a/tests/kms_content_protection.c
> +++ b/tests/kms_content_protection.c
Do we need test_cp_disable() inside the test_content_protection_cleanup()?
If Yes, then you need to update the commit style arg based on the system.
Else please drop it.
- Bhanu
> @@ -170,18 +170,15 @@ static void modeset_with_fb(const enum pipe pipe, igt_output_t *output,
> enum igt_commit_style s)
> {
> igt_display_t *display = &data.display;
> - drmModeModeInfo mode;
> + drmModeModeInfo *mode;
> igt_plane_t *primary;
>
> - igt_assert(kmstest_get_connector_default_mode(
> - display->drm_fd, output->config.connector, &mode));
> -
> - igt_output_override_mode(output, &mode);
> + mode = igt_output_get_mode(output);
> igt_output_set_pipe(output, pipe);
>
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> igt_plane_set_fb(primary, &data.red);
> - igt_fb_set_size(&data.red, primary, mode.hdisplay, mode.vdisplay);
> + igt_fb_set_size(&data.red, primary, mode->hdisplay, mode->vdisplay);
>
> igt_display_commit2(display, s);
>
> @@ -317,90 +314,61 @@ static bool write_srm_as_fw(const __u8 *srm, int len)
> }
>
> static void test_content_protection_on_output(igt_output_t *output,
> + enum pipe pipe,
> enum igt_commit_style s,
> int content_type)
> {
> igt_display_t *display = &data.display;
> - igt_plane_t *primary;
> - enum pipe pipe;
> bool ret;
>
> - for_each_pipe(display, pipe) {
> - if (!igt_pipe_connector_valid(pipe, output))
> - continue;
> -
> - /*
> - * If previous subtest of connector failed, pipe
> - * attached to that connector is not released.
> - * Because of that we have to choose the non
> - * attached pipe for this subtest.
> - */
> - if (!igt_pipe_is_free(display, pipe))
> - continue;
> -
> - modeset_with_fb(pipe, output, s);
> - test_cp_enable_with_retry(output, s, 3, content_type, false,
> - false);
> -
> - if (data.cp_tests & CP_TYPE_CHANGE) {
> - /* Type 1 -> Type 0 */
> - test_cp_enable_with_retry(output, s, 3,
> - HDCP_CONTENT_TYPE_0, false,
> - true);
> - /* Type 0 -> Type 1 */
> - test_cp_enable_with_retry(output, s, 3,
> - content_type, false,
> - true);
> - }
> -
> - if (data.cp_tests & CP_MEI_RELOAD) {
> - igt_assert_f(!igt_kmod_unload("mei_hdcp", 0),
> - "mei_hdcp unload failed");
> + test_cp_enable_with_retry(output, s, 3, content_type, false,
> + false);
> +
> + if (data.cp_tests & CP_TYPE_CHANGE) {
> + /* Type 1 -> Type 0 */
> + test_cp_enable_with_retry(output, s, 3,
> + HDCP_CONTENT_TYPE_0, false,
> + true);
> + /* Type 0 -> Type 1 */
> + test_cp_enable_with_retry(output, s, 3,
> + content_type, false,
> + true);
> + }
>
> - /* Expected to fail */
> - test_cp_enable_with_retry(output, s, 3,
> - content_type, true, false);
> + if (data.cp_tests & CP_MEI_RELOAD) {
> + igt_assert_f(!igt_kmod_unload("mei_hdcp", 0),
> + "mei_hdcp unload failed");
>
> - igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
> - "mei_hdcp load failed");
> + /* Expected to fail */
> + test_cp_enable_with_retry(output, s, 3,
> + content_type, true, false);
>
> - /* Expected to pass */
> - test_cp_enable_with_retry(output, s, 3,
> - content_type, false, false);
> - }
> + igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
> + "mei_hdcp load failed");
>
> - if (data.cp_tests & CP_LIC)
> - test_cp_lic(output);
> + /* Expected to pass */
> + test_cp_enable_with_retry(output, s, 3,
> + content_type, false, false);
> + }
>
> - if (data.cp_tests & CP_DPMS) {
> - igt_pipe_set_prop_value(display, pipe,
> - IGT_CRTC_ACTIVE, 0);
> - igt_display_commit2(display, s);
> + if (data.cp_tests & CP_LIC)
> + test_cp_lic(output);
>
> - igt_pipe_set_prop_value(display, pipe,
> - IGT_CRTC_ACTIVE, 1);
> - igt_display_commit2(display, s);
> + if (data.cp_tests & CP_DPMS) {
> + igt_pipe_set_prop_value(display, pipe,
> + IGT_CRTC_ACTIVE, 0);
> + igt_display_commit2(display, s);
>
> - ret = wait_for_prop_value(output, CP_ENABLED,
> - KERNEL_AUTH_TIME_ALLOWED_MSEC);
> - if (!ret)
> - test_cp_enable_with_retry(output, s, 2,
> - content_type, false,
> - false);
> - }
> + igt_pipe_set_prop_value(display, pipe,
> + IGT_CRTC_ACTIVE, 1);
> + igt_display_commit2(display, s);
>
> - test_cp_disable(output, s);
> - primary = igt_output_get_plane_type(output,
> - DRM_PLANE_TYPE_PRIMARY);
> - igt_plane_set_fb(primary, NULL);
> - igt_output_set_pipe(output, PIPE_NONE);
> -
> - /*
> - * Testing a output with a pipe is enough for HDCP
> - * testing. No ROI in testing the connector with other
> - * pipes. So Break the loop on pipe.
> - */
> - break;
> + ret = wait_for_prop_value(output, CP_ENABLED,
> + KERNEL_AUTH_TIME_ALLOWED_MSEC);
> + if (!ret)
> + test_cp_enable_with_retry(output, s, 2,
> + content_type, false,
> + false);
> }
> }
>
> @@ -458,7 +426,8 @@ static bool sink_hdcp2_capable(igt_output_t *output)
> return strstr(buf, "HDCP2.2");
> }
>
> -static void prepare_modeset_on_mst_output(igt_output_t *output)
> +static void
> +prepare_modeset_on_mst_output(igt_output_t *output)
> {
> drmModeModeInfo *mode;
> igt_plane_t *primary;
> @@ -477,7 +446,8 @@ static void prepare_modeset_on_mst_output(igt_output_t *output)
> igt_plane_set_size(primary, width, height);
> }
>
> -static bool output_hdcp_capable(igt_output_t *output, int content_type)
> +static bool
> +output_hdcp_capable(igt_output_t *output, int content_type)
> {
> if (!output->props[IGT_CONNECTOR_CONTENT_PROTECTION])
> return false;
> @@ -499,6 +469,19 @@ static bool output_hdcp_capable(igt_output_t *output, int content_type)
> return true;
> }
>
> +static void
> +test_fini(igt_output_t *output, enum igt_commit_style s)
> +{
> + igt_plane_t *primary;
> +
> + test_cp_disable(output, s);
> + primary = igt_output_get_plane_type(output,
> + DRM_PLANE_TYPE_PRIMARY);
> + igt_plane_set_fb(primary, NULL);
> + igt_output_set_pipe(output, PIPE_NONE);
> + igt_display_commit2(&data.display, s);
> +}
> +
> static void
> test_content_protection(enum igt_commit_style s, int content_type)
> {
> @@ -511,10 +494,27 @@ test_content_protection(enum igt_commit_style s, int content_type)
> "mei_hdcp module is not loaded\n");
>
> for_each_connected_output(display, output) {
> - if (!output_hdcp_capable(output, content_type))
> - continue;
> + for_each_pipe(display, pipe) {
> + if (!igt_pipe_connector_valid(pipe, output))
> + continue;
> +
> + igt_display_reset(display);
> + modeset_with_fb(pipe, output, s);
> +
> + if (!output_hdcp_capable(output, content_type))
> + continue;
> +
> + test_content_protection_on_output(output, pipe, s, content_type);
> + test_fini(output, s);
> +
> + /*
> + * Testing a output with a pipe is enough for HDCP
> + * testing. No ROI in testing the connector with other
> + * pipes. So Break the loop on pipe.
> + */
> + break;
> + }
>
> - test_content_protection_on_output(output, s, content_type);
> valid_tests++;
> }
>
> @@ -596,6 +596,7 @@ test_content_protection_mst(int content_type)
> igt_output_t *output;
> int valid_outputs = 0, dp_mst_outputs = 0, ret, count, max_pipe = 0, i;
> enum pipe pipe;
> + bool pipe_found;
> igt_output_t *mst_output[IGT_MAX_PIPES], *hdcp_mst_output[IGT_MAX_PIPES];
>
> for_each_pipe(display, pipe)
> @@ -607,16 +608,20 @@ test_content_protection_mst(int content_type)
> if (!output_is_dp_mst(output, dp_mst_outputs))
> continue;
>
> - igt_assert_f(igt_pipe_connector_valid(pipe, output), "Output-pipe combination invalid\n");
> + pipe_found = false;
> + for_each_pipe(display, pipe) {
> + if (igt_pipe_is_free(display, pipe) &&
> + igt_pipe_connector_valid(pipe, output)) {
> + pipe_found = true;
> + break;
> + }
> + }
> +
> + igt_assert_f(pipe_found, "No valid pipe found for %s\n", output->name);
>
> igt_output_set_pipe(output, pipe);
> prepare_modeset_on_mst_output(output);
> 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");
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_content_protectin: Convert test to dynamic
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_content_protectin: Convert test to dynamic Karthik B S
@ 2022-09-21 11:54 ` Modem, Bhanuprakash
0 siblings, 0 replies; 8+ messages in thread
From: Modem, Bhanuprakash @ 2022-09-21 11:54 UTC (permalink / raw)
To: Karthik B S, igt-dev
On Tue-13-09-2022 02:34 pm, Karthik B S wrote:
> Covert the existing subtests to dynamic subtests at pipe/output level.
>
> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
> tests/kms_content_protection.c | 220 +++++++++++++++++++--------------
> 1 file changed, 126 insertions(+), 94 deletions(-)
>
> diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
> index eb59f3fe..aadc10af 100644
> --- a/tests/kms_content_protection.c
> +++ b/tests/kms_content_protection.c
> @@ -487,12 +487,17 @@ 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;
> + enum pipe pipe;
>
> if (data.cp_tests & CP_MEI_RELOAD)
> igt_require_f(igt_kmod_is_loaded("mei_hdcp"),
> "mei_hdcp module is not loaded\n");
>
> + if (data.cp_tests & CP_UEVENT) {
> + data.uevent_monitor = igt_watch_uevents();
> + igt_flush_uevents(data.uevent_monitor);
> + }
> +
> for_each_connected_output(display, output) {
> for_each_pipe(display, pipe) {
> if (!igt_pipe_connector_valid(pipe, output))
> @@ -504,9 +509,10 @@ test_content_protection(enum igt_commit_style s, int content_type)
> if (!output_hdcp_capable(output, content_type))
> continue;
>
> - test_content_protection_on_output(output, pipe, s, content_type);
> - test_fini(output, s);
> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
> + test_content_protection_on_output(output, pipe, s, content_type);
>
> + test_fini(output, s);
> /*
> * Testing a output with a pipe is enough for HDCP
> * testing. No ROI in testing the connector with other
> @@ -514,11 +520,10 @@ test_content_protection(enum igt_commit_style s, int content_type)
> */
> break;
> }
> -
> - valid_tests++;
> }
>
> - igt_require_f(valid_tests, "No connector found with HDCP capability\n");
> + if (data.cp_tests & CP_UEVENT)
> + igt_cleanup_uevents(data.uevent_monitor);
> }
>
> static int parse_path_blob(char *blob_data)
> @@ -728,6 +733,94 @@ static void create_fbs(void)
> 0.f, 1.f, 0.f, &data.green);
> }
>
> +static const struct {
> + const char *desc;
> + const char *name;
> + unsigned int cp_tests;
> + bool content_type;
> +} subtests[] = {
> + { .desc = "Test content protection with atomic modesetting",
> + .name = "atomic",
> + .cp_tests = 0,
> + .content_type = HDCP_CONTENT_TYPE_0
> + },
> + { .desc = "Test content protection with DPMS ON/OFF during atomic modesetting.",
> + .name = "atomic-dpms",
> + .cp_tests = CP_DPMS,
> + .content_type = HDCP_CONTENT_TYPE_0
> + },
> + { .desc = "Test for the integrity of link.",
> + .name = "LIC",
> + .cp_tests = CP_LIC,
> + .content_type = HDCP_CONTENT_TYPE_0,
> + },
> + { .desc = "Test content protection with content type 1 "
> + "that can be handled only through HDCP2.2.",
> + .name = "type1",
> + .cp_tests = 0,
> + .content_type = HDCP_CONTENT_TYPE_1,
> + },
> + { .desc = "Test the teardown and rebuild of the interface between "
> + "I915 and mei hdcp.",
> + .name = "mei_interface",
> + .cp_tests = CP_MEI_RELOAD,
> + .content_type = HDCP_CONTENT_TYPE_1,
> + },
> + { .desc = "Test the content type change when the content protection already enabled",
> + .name = "content_type_change",
> + .cp_tests = CP_TYPE_CHANGE,
> + .content_type = HDCP_CONTENT_TYPE_1,
> + },
> + { .desc = "Test to detect the HDCP status change when we are reading the uevent "
> + "sent with the corresponding connector id and property id.",
> + .name = "uevent",
> + .cp_tests = CP_UEVENT,
> + .content_type = HDCP_CONTENT_TYPE_0,
> + },
> + /*
> + * Testing the revocation check through SRM needs a HDCP sink with
> + * programmable Ksvs or we need a uAPI from kernel to read the
> + * connected HDCP sink's Ksv. With that we would be able to add that
> + * Ksv into a SRM and send in for revocation check. Since we dont have
> + * either of these options, we test SRM writing from userspace and
> + * validation of the same at kernel. Something is better than nothing.
> + */
> + { .desc = "This test writes the facsimile SRM into the /lib/firmware/ "
> + "and check the kernel parsing of it by invoking the hdcp authentication.",
> + .name = "srm",
> + .cp_tests = 0,
> + .content_type = HDCP_CONTENT_TYPE_0,
> + },
> +};
> +
> +static const struct {
> + const char *desc;
> + const char *name;
> + unsigned int cp_tests;
> + bool content_type;
> +} mst_subtests[] = {
> + { .desc = "Test Content protection(Type 0) over DP MST.",
> + .name = "dp-mst-type-0",
> + .cp_tests = 0,
> + .content_type = HDCP_CONTENT_TYPE_0
> + },
> + { .desc = "Test Content protection(Type 0) over DP MST with LIC.",
> + .name = "dp-mst-lic-type-0",
> + .cp_tests = CP_LIC,
> + .content_type = HDCP_CONTENT_TYPE_0
> + },
> + { .desc = "Test Content protection(Type 1) over DP MST.",
> + .name = "dp-mst-type-1",
> + .cp_tests = 0,
> + .content_type = HDCP_CONTENT_TYPE_1,
> + },
> + { .desc = "Test Content protection(Type 1) over DP MST with LIC.",
> + .name = "dp-mst-lic-type-1",
> + .cp_tests = CP_LIC,
> + .content_type = HDCP_CONTENT_TYPE_1,
> + },
> +};
> +
> igt_main
> {
> igt_fixture {
> @@ -738,107 +831,46 @@ igt_main
> }
>
> igt_describe("Test content protection with legacy style commit.");
> - igt_subtest("legacy") {
> + igt_subtest_with_dynamic("legacy") {
> data.cp_tests = 0;
> test_content_protection(COMMIT_LEGACY, HDCP_CONTENT_TYPE_0);
> }
>
> - igt_describe("Test content protection with atomic modesetting");
> - igt_subtest("atomic") {
> - igt_require(data.display.is_atomic);
> - data.cp_tests = 0;
> - test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
> - }
> + igt_subtest_group {
> + igt_fixture
> + igt_require(data.display.is_atomic);
>
> - igt_describe("Test content protection with DPMS ON/OFF during atomic modesetting.");
> - igt_subtest("atomic-dpms") {
> - igt_require(data.display.is_atomic);
> - data.cp_tests = CP_DPMS;
> - test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
> - }
> + for (int i = 0; i < ARRAY_SIZE(subtests); i++) {
> + igt_describe_f("%s", subtests[i].desc);
>
> - igt_describe("Test for the integrity of link.");
> - igt_subtest("LIC") {
> - igt_require(data.display.is_atomic);
> - data.cp_tests = CP_LIC;
> - test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
> - }
> + igt_subtest_with_dynamic(subtests[i].name) {
> + data.cp_tests = subtests[i].cp_tests;
>
> - igt_describe("Test content protection with content type 1 that "
> - "can be handled only through HDCP2.2.");
> - igt_subtest("type1") {
> - igt_require(data.display.is_atomic);
> - test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
> - }
> + if (!strcmp(subtests[i].name, "srm")) {
> + bool ret;
>
> - igt_describe("Test the teardown and rebuild of the interface between "
> - "I915 and mei hdcp.");
> - igt_subtest("mei_interface") {
> - igt_require(data.display.is_atomic);
> - data.cp_tests = CP_MEI_RELOAD;
> - test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
> - }
> + ret = write_srm_as_fw((const __u8 *)facsimile_srm,
> + sizeof(facsimile_srm));
> + igt_assert_f(ret, "SRM update failed");
> + }
>
> - igt_describe("Test the content type change when the content protection already "
> - "enabled.");
> - igt_subtest("content_type_change") {
> - igt_require(data.display.is_atomic);
> - data.cp_tests = CP_TYPE_CHANGE;
> - test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
> - }
> -
> - igt_describe("Test to detect the HDCP status change when we are reading the uevent "
> - "sent with the corresponding connector id and property id.");
> - igt_subtest("uevent") {
> - igt_require(data.display.is_atomic);
> - data.cp_tests = CP_UEVENT;
> - data.uevent_monitor = igt_watch_uevents();
> - igt_flush_uevents(data.uevent_monitor);
> - test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
> - igt_cleanup_uevents(data.uevent_monitor);
> - }
> -
> - /*
> - * Testing the revocation check through SRM needs a HDCP sink with
> - * programmable Ksvs or we need a uAPI from kernel to read the
> - * connected HDCP sink's Ksv. With that we would be able to add that
> - * Ksv into a SRM and send in for revocation check. Since we dont have
> - * either of these options, we test SRM writing from userspace and
> - * validation of the same at kernel. Something is better than nothing.
> - */
> - igt_describe("This test writes the facsimile SRM into the /lib/firmware/ "
> - "and check the kernel parsing of it by invoking the hdcp authentication.");
> - igt_subtest("srm") {
> - bool ret;
> -
> - igt_require(data.display.is_atomic);
> - data.cp_tests = 0;
> - ret = write_srm_as_fw((const __u8 *)facsimile_srm,
> - sizeof(facsimile_srm));
> - igt_assert_f(ret, "SRM update failed");
> - 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);
> + test_content_protection(COMMIT_ATOMIC, subtests[i].content_type);
> + }
> + }
> }
>
> - 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_subtest_group {
> + igt_fixture
> + igt_require(data.display.is_atomic);
>
> - igt_describe("Test Content protection over DP MST");
> - igt_subtest("dp-mst-type-1") {
> - test_content_protection_mst(HDCP_CONTENT_TYPE_1);
> - }
> + for (int i = 0; i < ARRAY_SIZE(mst_subtests); i++) {
> + igt_describe_f("%s", mst_subtests[i].desc);
>
> - 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_subtest(mst_subtests[i].name) {
> + data.cp_tests = mst_subtests[i].cp_tests;
> + test_content_protection_mst(mst_subtests[i].content_type);
> + }
> + }
> }
>
> igt_fixture {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup
2022-09-21 11:23 ` Modem, Bhanuprakash
@ 2022-09-22 6:46 ` Karthik B S
0 siblings, 0 replies; 8+ messages in thread
From: Karthik B S @ 2022-09-22 6:46 UTC (permalink / raw)
To: Modem, Bhanuprakash, igt-dev
On 9/21/2022 4:53 PM, Modem, Bhanuprakash wrote:
> On Tue-13-09-2022 02:34 pm, Karthik B S wrote:
>> This patch includes:
>> 1.Add a modeset before checking output is HDCP capable.
>> Test currently skips on multidisplay MST because we're checking
>> if output is HDCP capable before doing a modeset on the output.
>> 2.Call igt_display_reset before starting the subtest.
>> 3.test_fini function added to prepare test for converting to
>> dynamic.
>> 4.Remove redundant mode override.
>> 5.Try other pipe/output combo for MST if failure is seen on one.
>>
>> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
>> ---
>> tests/kms_content_protection.c | 179 +++++++++++++++++----------------
>> 1 file changed, 92 insertions(+), 87 deletions(-)
>>
>> diff --git a/tests/kms_content_protection.c
>> b/tests/kms_content_protection.c
>> index 3041f1cd..eb59f3fe 100644
>> --- a/tests/kms_content_protection.c
>> +++ b/tests/kms_content_protection.c
>
> Do we need test_cp_disable() inside the
> test_content_protection_cleanup()?
>
> If Yes, then you need to update the commit style arg based on the system.
>
> Else please drop it.
Thank you for the review.
test_cp_disable() is required to ensure all displays have CP disabled,
especially on multidisplay and MST setups. Will add the is_atomic check
while passing the commit style arg.
Thanks,
Karthik.B.S
>
> - Bhanu
>
>> @@ -170,18 +170,15 @@ static void modeset_with_fb(const enum pipe
>> pipe, igt_output_t *output,
>> enum igt_commit_style s)
>> {
>> igt_display_t *display = &data.display;
>> - drmModeModeInfo mode;
>> + drmModeModeInfo *mode;
>> igt_plane_t *primary;
>> - igt_assert(kmstest_get_connector_default_mode(
>> - display->drm_fd, output->config.connector, &mode));
>> -
>> - igt_output_override_mode(output, &mode);
>> + mode = igt_output_get_mode(output);
>> igt_output_set_pipe(output, pipe);
>> primary = igt_output_get_plane_type(output,
>> DRM_PLANE_TYPE_PRIMARY);
>> igt_plane_set_fb(primary, &data.red);
>> - igt_fb_set_size(&data.red, primary, mode.hdisplay, mode.vdisplay);
>> + igt_fb_set_size(&data.red, primary, mode->hdisplay,
>> mode->vdisplay);
>> igt_display_commit2(display, s);
>> @@ -317,90 +314,61 @@ static bool write_srm_as_fw(const __u8 *srm,
>> int len)
>> }
>> static void test_content_protection_on_output(igt_output_t *output,
>> + enum pipe pipe,
>> enum igt_commit_style s,
>> int content_type)
>> {
>> igt_display_t *display = &data.display;
>> - igt_plane_t *primary;
>> - enum pipe pipe;
>> bool ret;
>> - for_each_pipe(display, pipe) {
>> - if (!igt_pipe_connector_valid(pipe, output))
>> - continue;
>> -
>> - /*
>> - * If previous subtest of connector failed, pipe
>> - * attached to that connector is not released.
>> - * Because of that we have to choose the non
>> - * attached pipe for this subtest.
>> - */
>> - if (!igt_pipe_is_free(display, pipe))
>> - continue;
>> -
>> - modeset_with_fb(pipe, output, s);
>> - test_cp_enable_with_retry(output, s, 3, content_type, false,
>> - false);
>> -
>> - if (data.cp_tests & CP_TYPE_CHANGE) {
>> - /* Type 1 -> Type 0 */
>> - test_cp_enable_with_retry(output, s, 3,
>> - HDCP_CONTENT_TYPE_0, false,
>> - true);
>> - /* Type 0 -> Type 1 */
>> - test_cp_enable_with_retry(output, s, 3,
>> - content_type, false,
>> - true);
>> - }
>> -
>> - if (data.cp_tests & CP_MEI_RELOAD) {
>> - igt_assert_f(!igt_kmod_unload("mei_hdcp", 0),
>> - "mei_hdcp unload failed");
>> + test_cp_enable_with_retry(output, s, 3, content_type, false,
>> + false);
>> +
>> + if (data.cp_tests & CP_TYPE_CHANGE) {
>> + /* Type 1 -> Type 0 */
>> + test_cp_enable_with_retry(output, s, 3,
>> + HDCP_CONTENT_TYPE_0, false,
>> + true);
>> + /* Type 0 -> Type 1 */
>> + test_cp_enable_with_retry(output, s, 3,
>> + content_type, false,
>> + true);
>> + }
>> - /* Expected to fail */
>> - test_cp_enable_with_retry(output, s, 3,
>> - content_type, true, false);
>> + if (data.cp_tests & CP_MEI_RELOAD) {
>> + igt_assert_f(!igt_kmod_unload("mei_hdcp", 0),
>> + "mei_hdcp unload failed");
>> - igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
>> - "mei_hdcp load failed");
>> + /* Expected to fail */
>> + test_cp_enable_with_retry(output, s, 3,
>> + content_type, true, false);
>> - /* Expected to pass */
>> - test_cp_enable_with_retry(output, s, 3,
>> - content_type, false, false);
>> - }
>> + igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
>> + "mei_hdcp load failed");
>> - if (data.cp_tests & CP_LIC)
>> - test_cp_lic(output);
>> + /* Expected to pass */
>> + test_cp_enable_with_retry(output, s, 3,
>> + content_type, false, false);
>> + }
>> - if (data.cp_tests & CP_DPMS) {
>> - igt_pipe_set_prop_value(display, pipe,
>> - IGT_CRTC_ACTIVE, 0);
>> - igt_display_commit2(display, s);
>> + if (data.cp_tests & CP_LIC)
>> + test_cp_lic(output);
>> - igt_pipe_set_prop_value(display, pipe,
>> - IGT_CRTC_ACTIVE, 1);
>> - igt_display_commit2(display, s);
>> + if (data.cp_tests & CP_DPMS) {
>> + igt_pipe_set_prop_value(display, pipe,
>> + IGT_CRTC_ACTIVE, 0);
>> + igt_display_commit2(display, s);
>> - ret = wait_for_prop_value(output, CP_ENABLED,
>> - KERNEL_AUTH_TIME_ALLOWED_MSEC);
>> - if (!ret)
>> - test_cp_enable_with_retry(output, s, 2,
>> - content_type, false,
>> - false);
>> - }
>> + igt_pipe_set_prop_value(display, pipe,
>> + IGT_CRTC_ACTIVE, 1);
>> + igt_display_commit2(display, s);
>> - test_cp_disable(output, s);
>> - primary = igt_output_get_plane_type(output,
>> - DRM_PLANE_TYPE_PRIMARY);
>> - igt_plane_set_fb(primary, NULL);
>> - igt_output_set_pipe(output, PIPE_NONE);
>> -
>> - /*
>> - * Testing a output with a pipe is enough for HDCP
>> - * testing. No ROI in testing the connector with other
>> - * pipes. So Break the loop on pipe.
>> - */
>> - break;
>> + ret = wait_for_prop_value(output, CP_ENABLED,
>> + KERNEL_AUTH_TIME_ALLOWED_MSEC);
>> + if (!ret)
>> + test_cp_enable_with_retry(output, s, 2,
>> + content_type, false,
>> + false);
>> }
>> }
>> @@ -458,7 +426,8 @@ static bool sink_hdcp2_capable(igt_output_t
>> *output)
>> return strstr(buf, "HDCP2.2");
>> }
>> -static void prepare_modeset_on_mst_output(igt_output_t *output)
>> +static void
>> +prepare_modeset_on_mst_output(igt_output_t *output)
>> {
>> drmModeModeInfo *mode;
>> igt_plane_t *primary;
>> @@ -477,7 +446,8 @@ static void
>> prepare_modeset_on_mst_output(igt_output_t *output)
>> igt_plane_set_size(primary, width, height);
>> }
>> -static bool output_hdcp_capable(igt_output_t *output, int
>> content_type)
>> +static bool
>> +output_hdcp_capable(igt_output_t *output, int content_type)
>> {
>> if (!output->props[IGT_CONNECTOR_CONTENT_PROTECTION])
>> return false;
>> @@ -499,6 +469,19 @@ static bool output_hdcp_capable(igt_output_t
>> *output, int content_type)
>> return true;
>> }
>> +static void
>> +test_fini(igt_output_t *output, enum igt_commit_style s)
>> +{
>> + igt_plane_t *primary;
>> +
>> + test_cp_disable(output, s);
>> + primary = igt_output_get_plane_type(output,
>> + DRM_PLANE_TYPE_PRIMARY);
>> + igt_plane_set_fb(primary, NULL);
>> + igt_output_set_pipe(output, PIPE_NONE);
>> + igt_display_commit2(&data.display, s);
>> +}
>> +
>> static void
>> test_content_protection(enum igt_commit_style s, int content_type)
>> {
>> @@ -511,10 +494,27 @@ test_content_protection(enum igt_commit_style
>> s, int content_type)
>> "mei_hdcp module is not loaded\n");
>> for_each_connected_output(display, output) {
>> - if (!output_hdcp_capable(output, content_type))
>> - continue;
>> + for_each_pipe(display, pipe) {
>> + if (!igt_pipe_connector_valid(pipe, output))
>> + continue;
>> +
>> + igt_display_reset(display);
>> + modeset_with_fb(pipe, output, s);
>> +
>> + if (!output_hdcp_capable(output, content_type))
>> + continue;
>> +
>> + test_content_protection_on_output(output, pipe, s,
>> content_type);
>> + test_fini(output, s);
>> +
>> + /*
>> + * Testing a output with a pipe is enough for HDCP
>> + * testing. No ROI in testing the connector with other
>> + * pipes. So Break the loop on pipe.
>> + */
>> + break;
>> + }
>> - test_content_protection_on_output(output, s, content_type);
>> valid_tests++;
>> }
>> @@ -596,6 +596,7 @@ test_content_protection_mst(int content_type)
>> igt_output_t *output;
>> int valid_outputs = 0, dp_mst_outputs = 0, ret, count, max_pipe
>> = 0, i;
>> enum pipe pipe;
>> + bool pipe_found;
>> igt_output_t *mst_output[IGT_MAX_PIPES],
>> *hdcp_mst_output[IGT_MAX_PIPES];
>> for_each_pipe(display, pipe)
>> @@ -607,16 +608,20 @@ test_content_protection_mst(int content_type)
>> if (!output_is_dp_mst(output, dp_mst_outputs))
>> continue;
>> - igt_assert_f(igt_pipe_connector_valid(pipe, output),
>> "Output-pipe combination invalid\n");
>> + pipe_found = false;
>> + for_each_pipe(display, pipe) {
>> + if (igt_pipe_is_free(display, pipe) &&
>> + igt_pipe_connector_valid(pipe, output)) {
>> + pipe_found = true;
>> + break;
>> + }
>> + }
>> +
>> + igt_assert_f(pipe_found, "No valid pipe found for %s\n",
>> output->name);
>> igt_output_set_pipe(output, pipe);
>> prepare_modeset_on_mst_output(output);
>> 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");
>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-09-22 6:47 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-13 9:04 [igt-dev] [PATCH i-g-t v3 0/2] tests/kms_content_protection: Test Refactoring Karthik B S
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 1/2] tests/kms_content_protection: Test Cleanup Karthik B S
2022-09-21 11:23 ` Modem, Bhanuprakash
2022-09-22 6:46 ` Karthik B S
2022-09-13 9:04 ` [igt-dev] [PATCH i-g-t v3 2/2] tests/kms_content_protectin: Convert test to dynamic Karthik B S
2022-09-21 11:54 ` Modem, Bhanuprakash
2022-09-13 14:10 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_content_protection: Test Refactoring Patchwork
2022-09-14 1:29 ` [igt-dev] ✓ Fi.CI.IGT: " 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.