All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test.
@ 2015-12-07 10:06 Rodrigo Vivi
  2015-12-07 10:06 ` [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active Rodrigo Vivi
  2015-12-08 10:44 ` [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test Daniel Vetter
  0 siblings, 2 replies; 6+ messages in thread
From: Rodrigo Vivi @ 2015-12-07 10:06 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Rodrigo Vivi

This simple test checks if PSR is enabled when it should.
Minimal and fastest check possible.

To make it faster for BAT we first check if it is enabled and return
Success. We just do the dpms_on in case psr is not enabled. So it was
probably because display went off maybe in idle. Even for this case
the test case is fast enough: ~ 1s.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 tests/kms_psr_sink_crc.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index 8cd11a7..28ba5c2 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -227,6 +227,26 @@ static bool psr_possible(data_t *data)
 	return true;
 }
 
+static bool psr_enabled(data_t *data)
+{
+	int ret;
+	FILE *file;
+	char str[4];
+
+	file = igt_debugfs_fopen("i915_edp_psr_status", "r");
+	igt_require(file);
+
+	ret = fscanf(file, "Sink_Support: %s\n", str);
+	igt_assert_neq(ret, 0);
+	ret = fscanf(file, "Source_OK: %s\n", str);
+	igt_assert_neq(ret, 0);
+	ret = fscanf(file, "Enabled: %s\n", str);
+	igt_assert_neq(ret, 0);
+
+	fclose(file);
+	return strcmp(str, "yes") == 0;
+}
+
 static bool psr_active(data_t *data)
 {
 	int ret;
@@ -569,6 +589,22 @@ int main(int argc, char *argv[])
 		display_init(&data);
 	}
 
+	igt_subtest("psr_enabled_basic") {
+		if (psr_enabled(&data))
+			igt_success();
+		else {
+			/*
+			 * The only excuse to have PSR disabled at this point
+			 * is if dpms is off for some reason. So let's try to
+			 * force dpms on and check if that was the case.
+			 */
+			kmstest_set_connector_dpms(data.drm_fd,
+						   data.output->config.connector,
+						   DRM_MODE_DPMS_ON);
+			igt_assert(psr_enabled(&data));
+		}
+	}
+
 	for (op = PAGE_FLIP; op <= RENDER; op++) {
 		igt_subtest_f("primary_%s", op_str(op)) {
 			data.test_plane = PRIMARY;
-- 
2.4.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active.
  2015-12-07 10:06 [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test Rodrigo Vivi
@ 2015-12-07 10:06 ` Rodrigo Vivi
  2015-12-08 10:45   ` Daniel Vetter
  2015-12-08 10:44 ` [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test Daniel Vetter
  1 sibling, 1 reply; 6+ messages in thread
From: Rodrigo Vivi @ 2015-12-07 10:06 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter, Rodrigo Vivi

It takes from 2 to 5 seconds to run.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 tests/kms_psr_sink_crc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index 28ba5c2..4baf131 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -605,6 +605,11 @@ int main(int argc, char *argv[])
 		}
 	}
 
+	igt_subtest("psr_active_basic") {
+		setup_test_plane(&data);
+		igt_assert(wait_psr_entry(&data));
+	}
+
 	for (op = PAGE_FLIP; op <= RENDER; op++) {
 		igt_subtest_f("primary_%s", op_str(op)) {
 			data.test_plane = PRIMARY;
-- 
2.4.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test.
  2015-12-07 10:06 [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test Rodrigo Vivi
  2015-12-07 10:06 ` [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active Rodrigo Vivi
@ 2015-12-08 10:44 ` Daniel Vetter
  1 sibling, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2015-12-08 10:44 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: Daniel Vetter, intel-gfx

On Mon, Dec 07, 2015 at 02:06:49AM -0800, Rodrigo Vivi wrote:
> This simple test checks if PSR is enabled when it should.
> Minimal and fastest check possible.
> 
> To make it faster for BAT we first check if it is enabled and return
> Success. We just do the dpms_on in case psr is not enabled. So it was
> probably because display went off maybe in idle. Even for this case
> the test case is fast enough: ~ 1s.

Please don't do that. If you need a mode enabled, enable it. We have some
other not-so-awesome testcase which try to inherit modeset state from
fbcon and then sometimes fall over.

If that causes too much delay due to unecessary modesets, then we need to
extract a bit of logic into libraries to make sure everyone uses the same
setup for basic tests, and that we don't force a modeset by accident
in-between (either the test or fbcon).
-Daniel

> 
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  tests/kms_psr_sink_crc.c | 36 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
> index 8cd11a7..28ba5c2 100644
> --- a/tests/kms_psr_sink_crc.c
> +++ b/tests/kms_psr_sink_crc.c
> @@ -227,6 +227,26 @@ static bool psr_possible(data_t *data)
>  	return true;
>  }
>  
> +static bool psr_enabled(data_t *data)
> +{
> +	int ret;
> +	FILE *file;
> +	char str[4];
> +
> +	file = igt_debugfs_fopen("i915_edp_psr_status", "r");
> +	igt_require(file);
> +
> +	ret = fscanf(file, "Sink_Support: %s\n", str);
> +	igt_assert_neq(ret, 0);
> +	ret = fscanf(file, "Source_OK: %s\n", str);
> +	igt_assert_neq(ret, 0);
> +	ret = fscanf(file, "Enabled: %s\n", str);
> +	igt_assert_neq(ret, 0);
> +
> +	fclose(file);
> +	return strcmp(str, "yes") == 0;
> +}
> +
>  static bool psr_active(data_t *data)
>  {
>  	int ret;
> @@ -569,6 +589,22 @@ int main(int argc, char *argv[])
>  		display_init(&data);
>  	}
>  
> +	igt_subtest("psr_enabled_basic") {
> +		if (psr_enabled(&data))
> +			igt_success();
> +		else {
> +			/*
> +			 * The only excuse to have PSR disabled at this point
> +			 * is if dpms is off for some reason. So let's try to
> +			 * force dpms on and check if that was the case.
> +			 */
> +			kmstest_set_connector_dpms(data.drm_fd,
> +						   data.output->config.connector,
> +						   DRM_MODE_DPMS_ON);
> +			igt_assert(psr_enabled(&data));
> +		}
> +	}
> +
>  	for (op = PAGE_FLIP; op <= RENDER; op++) {
>  		igt_subtest_f("primary_%s", op_str(op)) {
>  			data.test_plane = PRIMARY;
> -- 
> 2.4.3
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active.
  2015-12-07 10:06 ` [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active Rodrigo Vivi
@ 2015-12-08 10:45   ` Daniel Vetter
  2015-12-08 15:32     ` Rodrigo Vivi
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Vetter @ 2015-12-08 10:45 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: Daniel Vetter, intel-gfx

On Mon, Dec 07, 2015 at 02:06:50AM -0800, Rodrigo Vivi wrote:
> It takes from 2 to 5 seconds to run.
> 
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  tests/kms_psr_sink_crc.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
> index 28ba5c2..4baf131 100644
> --- a/tests/kms_psr_sink_crc.c
> +++ b/tests/kms_psr_sink_crc.c
> @@ -605,6 +605,11 @@ int main(int argc, char *argv[])
>  		}
>  	}
>  
> +	igt_subtest("psr_active_basic") {
> +		setup_test_plane(&data);
> +		igt_assert(wait_psr_entry(&data));
> +	}

I think I'm dense, but why do we need 2 BAT tests for psr? This one here
seems totally fine.
-Daniel

> +
>  	for (op = PAGE_FLIP; op <= RENDER; op++) {
>  		igt_subtest_f("primary_%s", op_str(op)) {
>  			data.test_plane = PRIMARY;
> -- 
> 2.4.3
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active.
  2015-12-08 10:45   ` Daniel Vetter
@ 2015-12-08 15:32     ` Rodrigo Vivi
  2015-12-10  9:39       ` Daniel Vetter
  0 siblings, 1 reply; 6+ messages in thread
From: Rodrigo Vivi @ 2015-12-08 15:32 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Daniel Vetter, intel-gfx, Rodrigo Vivi

On Tue, Dec 8, 2015 at 2:45 AM, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Mon, Dec 07, 2015 at 02:06:50AM -0800, Rodrigo Vivi wrote:
>> It takes from 2 to 5 seconds to run.
>>
>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>> ---
>>  tests/kms_psr_sink_crc.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
>> index 28ba5c2..4baf131 100644
>> --- a/tests/kms_psr_sink_crc.c
>> +++ b/tests/kms_psr_sink_crc.c
>> @@ -605,6 +605,11 @@ int main(int argc, char *argv[])
>>               }
>>       }
>>
>> +     igt_subtest("psr_active_basic") {
>> +             setup_test_plane(&data);
>> +             igt_assert(wait_psr_entry(&data));
>> +     }
>
> I think I'm dense, but why do we need 2 BAT tests for psr? This one here
> seems totally fine.

No your are not. I just sent 2 solutions because I didn't know which
one you would prefer and I forgot if 2 to 5 secs was acceptable as
BAT.
So, ignore the other test. I will resubmit only this one...
And I believe that I forgot the other patch that reduces to 5 the
maximum wait time for psr entry on this test case..

> -Daniel
>
>> +
>>       for (op = PAGE_FLIP; op <= RENDER; op++) {
>>               igt_subtest_f("primary_%s", op_str(op)) {
>>                       data.test_plane = PRIMARY;
>> --
>> 2.4.3
>>
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active.
  2015-12-08 15:32     ` Rodrigo Vivi
@ 2015-12-10  9:39       ` Daniel Vetter
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2015-12-10  9:39 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: Daniel Vetter, intel-gfx, Rodrigo Vivi

On Tue, Dec 08, 2015 at 07:32:35AM -0800, Rodrigo Vivi wrote:
> On Tue, Dec 8, 2015 at 2:45 AM, Daniel Vetter <daniel@ffwll.ch> wrote:
> > On Mon, Dec 07, 2015 at 02:06:50AM -0800, Rodrigo Vivi wrote:
> >> It takes from 2 to 5 seconds to run.
> >>
> >> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> >> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >> ---
> >>  tests/kms_psr_sink_crc.c | 5 +++++
> >>  1 file changed, 5 insertions(+)
> >>
> >> diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
> >> index 28ba5c2..4baf131 100644
> >> --- a/tests/kms_psr_sink_crc.c
> >> +++ b/tests/kms_psr_sink_crc.c
> >> @@ -605,6 +605,11 @@ int main(int argc, char *argv[])
> >>               }
> >>       }
> >>
> >> +     igt_subtest("psr_active_basic") {
> >> +             setup_test_plane(&data);
> >> +             igt_assert(wait_psr_entry(&data));
> >> +     }
> >
> > I think I'm dense, but why do we need 2 BAT tests for psr? This one here
> > seems totally fine.
> 
> No your are not. I just sent 2 solutions because I didn't know which
> one you would prefer and I forgot if 2 to 5 secs was acceptable as
> BAT.
> So, ignore the other test. I will resubmit only this one...
> And I believe that I forgot the other patch that reduces to 5 the
> maximum wait time for psr entry on this test case..

I think for such a major feature like PSR a few seconds in BAT is totally
ok.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-12-10  9:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-07 10:06 [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test Rodrigo Vivi
2015-12-07 10:06 ` [PATCH i-g-t 2/2] kms_psr_sink_crc: Add basic check for PSR active Rodrigo Vivi
2015-12-08 10:45   ` Daniel Vetter
2015-12-08 15:32     ` Rodrigo Vivi
2015-12-10  9:39       ` Daniel Vetter
2015-12-08 10:44 ` [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test Daniel Vetter

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.