[igt-dev] [PATCH i-g-t v6 5/8] kms_content_protection: test content type change
Shankar, Uma
uma.shankar at intel.com
Mon May 6 11:25:09 UTC 2019
>-----Original Message-----
>From: igt-dev [mailto:igt-dev-bounces at lists.freedesktop.org] On Behalf Of
>Ramalingam C
>Sent: Thursday, May 2, 2019 6:46 PM
>To: igt-dev at lists.freedesktop.org; Vetter, Daniel <daniel.vetter at intel.com>; Hiler,
>Arkadiusz <arkadiusz.hiler at intel.com>
>Subject: [igt-dev] [PATCH i-g-t v6 5/8] kms_content_protection: test content type
>change
>
>Testing the content type change when the content protection already enabled.
>
>v2:
> Rebased.
>
>Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
>Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>---
> tests/kms_content_protection.c | 41 +++++++++++++++++++++++++---------
> 1 file changed, 31 insertions(+), 10 deletions(-)
>
>diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c index
>6e9848cbd332..148aba92888c 100644
>--- a/tests/kms_content_protection.c
>+++ b/tests/kms_content_protection.c
>@@ -42,6 +42,7 @@ struct data {
> #define CP_DPMS (1 << 0)
> #define CP_LIC (1 << 1)
> #define CP_MEI_RELOAD (1 << 2)
>+#define CP_TYPE_CHANGE (1 << 3)
>
> #define CP_UNDESIRED 0
> #define CP_DESIRED 1
>@@ -170,7 +171,7 @@ static void modeset_with_fb(const enum pipe pipe,
>igt_output_t *output, }
>
> static bool test_cp_enable(igt_output_t *output, enum igt_commit_style s,
>- int content_type)
>+ int content_type, bool type_change)
> {
> igt_display_t *display = &data.display;
> igt_plane_t *primary;
>@@ -178,8 +179,11 @@ static bool test_cp_enable(igt_output_t *output, enum
>igt_commit_style s,
>
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
>
>- igt_output_set_prop_value(output,
>- IGT_CONNECTOR_CONTENT_PROTECTION,
>CP_DESIRED);
>+ if (!type_change)
>+ igt_output_set_prop_value(output,
>+
>IGT_CONNECTOR_CONTENT_PROTECTION,
>+ CP_DESIRED);
>+
> if (output->props[IGT_CONNECTOR_HDCP_CONTENT_TYPE])
> igt_output_set_prop_value(output,
> IGT_CONNECTOR_HDCP_CONTENT_TYPE,
>@@ -221,13 +225,17 @@ static void test_cp_disable(igt_output_t *output, enum
>igt_commit_style s)
>
> static void test_cp_enable_with_retry(igt_output_t *output,
> enum igt_commit_style s, int retry,
>- int content_type, bool expect_failure)
>+ int content_type, bool expect_failure,
>+ bool type_change)
> {
>+ int retry_orig = retry;
> bool ret;
>
> do {
>- test_cp_disable(output, s);
>- ret = test_cp_enable(output, s, content_type);
>+ if (!type_change || retry_orig != retry)
>+ test_cp_disable(output, s);
>+
>+ ret = test_cp_enable(output, s, content_type, type_change);
>
> if (!ret && --retry)
> igt_debug("Retry (%d/2) ...\n", 3 - retry); @@ -287,7 +295,13
>@@ static void test_content_protection_on_output(igt_output_t *output,
> continue;
>
> modeset_with_fb(pipe, output, s);
>- test_cp_enable_with_retry(output, s, 3, content_type, false);
>+ test_cp_enable_with_retry(output, s, 3, content_type, false,
>+ false);
>+ if (data.cp_tests & CP_TYPE_CHANGE &&
>+ content_type == HDCP_CONTENT_TYPE_1)
I don’t think we need to check for content_type here as its always set as TYPE_1 when we set the
flag in subtest or do you expect this to change ?
>+ test_cp_enable_with_retry(output, s, 3,
>+ HDCP_CONTENT_TYPE_0, false,
>+ true);
>
> if (data.cp_tests & CP_MEI_RELOAD) {
> igt_assert_f(!igt_kmod_unload("mei_hdcp", 0), @@ -295,14
>+309,14 @@ static void test_content_protection_on_output(igt_output_t *output,
>
> /* Expected to fail */
> test_cp_enable_with_retry(output, s, 3,
>- content_type, true);
>+ content_type, true, false);
>
> igt_assert_f(!igt_kmod_load("mei_hdcp", NULL),
> "mei_hdcp load failed");
>
> /* Expected to pass */
> test_cp_enable_with_retry(output, s, 3,
>- content_type, false);
>+ content_type, false, false);
> }
>
> if (data.cp_tests & CP_LIC)
>@@ -321,7 +335,8 @@ static void test_content_protection_on_output(igt_output_t
>*output,
>
>KERNEL_AUTH_TIME_ALLOWED_MSEC);
> if (!ret)
> test_cp_enable_with_retry(output, s, 2,
>- content_type, false);
>+ content_type, false,
>+ false);
> }
>
> test_cp_disable(output, s);
>@@ -463,6 +478,12 @@ igt_main
> test_content_protection(COMMIT_ATOMIC,
>HDCP_CONTENT_TYPE_1);
> }
>
>+ 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_fixture
> igt_display_fini(&data.display);
> }
>--
>2.19.1
>
>_______________________________________________
>igt-dev mailing list
>igt-dev at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/igt-dev
More information about the igt-dev
mailing list