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

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

Details

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

Not browsing as part of any series.

Commit Message

Ramalingam C Feb. 7, 2019, 4:23 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.

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 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);
+	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,

Comments

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
>
On 2/7/2019 10:36 PM, Daniel Vetter wrote:
> 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.
This wont as we are monitoring for DESIRED state till 4Sec.
This will help us to quit as soon as link is broken instead of waiting 
for 4Sec completely.
>
> 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.
But LIC is part of HDCP enablement. Should be part of HDCP_enable than a 
separate subtest.
I prefer not to make it as separate subtest.

--Ram
> -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
>>