Re: [igt-dev] [PATCH i-g-t 3/3] kms_content_protection: Confirm that LIC is passed

Daniel Vetter
2019-02-07T17:06:22Z

On Thu, Feb 07, 2019 at 09:53:22PM +0530, Ramalingam C wrote:
> Once the HDCP is enabled, kernel will run the link integrity check(LIC)
> atleast once in 2Secs based on the HDCP versions.
>
> So to confirm the link integrity check is passed, we oberve that HDCP
> state remains ENABLED for next 4Secs.
>
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> ---
> tests/kms_content_protection.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
> index 895e9e8d8b11..7a6450539f5d 100644
> --- a/tests/kms_content_protection.c
> +++ b/tests/kms_content_protection.c
> @@ -214,6 +214,14 @@ static bool igt_pipe_is_free(igt_display_t *display, enum pipe pipe)
> return true;
> }
>
> +static void test_cp_lic(igt_output_t *output)
> +{
> + bool ret;
> +
> + /* Wait for 4Secs (min 2 cycles of Link Integrity Check) */
> + ret = wait_for_prop_value(output, 1, 4 * 1000);

Hm, shouldn't we do an unconditionaly sleep for 4s, and _then_ recheck
that content protection is still on? Otherwise I think this will succeed
immediately.

Also wondering whether we should make this a new subtest, using the flag
idea I described for patch 2. There's ofc some overlap, but that's hard to
avoid with black box testing like we do in igt.
-Daniel

> + igt_assert_f(!ret, "Content Protection LIC Failed\n");
> +}
>
> static void test_content_protection_on_output(igt_output_t *output,
> enum igt_commit_style s)
> @@ -237,6 +245,7 @@ static void test_content_protection_on_output(igt_output_t *output,
>
> modeset_with_fb(pipe, output, s);
> test_cp_enable_with_retry(output, s, 3);
> + test_cp_lic(output);
> test_cp_disable(output, s);
>
> primary = igt_output_get_plane_type(output,
> --
> 2.7.4
>

--
Daniel Vetter
Software Engineer, Intel Corporation