[i-g-t,3/3] kms_content_protection: Confirm that LIC is passed

Submitted by Ramalingam C on Feb. 7, 2019, 7:31 p.m.

Details

Message ID 1549567899-31800-3-git-send-email-ramalingam.c@intel.com
State New
Headers show
Series "Series without cover letter" ( rev: 2 1 ) in IGT

Not browsing as part of any series.

Commit Message

Ramalingam C Feb. 7, 2019, 7:31 p.m.
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.

v2:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 tests/kms_content_protection.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Patch hide | download patch | download mbox

diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index e2d5134421aa..234ba08fae0d 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);
+	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,
@@ -238,6 +246,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);
 
 		if (dpms_test) {
 			igt_pipe_set_prop_value(display, pipe, IGT_CRTC_ACTIVE, 0);

Comments

On Fri, Feb 08, 2019 at 01:01:39AM +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.
> 
> v2:
>   Rebased.
> 
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>

Somehow my reply in the previous discussion didn't make it out to the
list.

> ---
>  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 e2d5134421aa..234ba08fae0d 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);
> +	igt_assert_f(!ret, "Content Protection LIC Failed\n");
> +}

With your explanation, makes sense now.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

It would be nice though to follow up with a patch to replace all the magic
numbers with some local #defines, e.g.

#define LOCAL_CONTENT_PROTECTION_DESIRED 1

Similar for others. That way we don't depend upon the header and stuff,
and the code becomes a lot less confusing.
-Daniel

>  
>  static void test_content_protection_on_output(igt_output_t *output,
>  					      enum igt_commit_style s,
> @@ -238,6 +246,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);
>  
>  		if (dpms_test) {
>  			igt_pipe_set_prop_value(display, pipe, IGT_CRTC_ACTIVE, 0);
> -- 
> 2.7.4
>