[Intel-gfx] [PATCH i-g-t 1/2] kms_psr_sink_crc: Introduce PSR BAT test.

Daniel Vetter daniel at ffwll.ch
Tue Dec 8 02:44:21 PST 2015


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 at ffwll.ch>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at 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


More information about the Intel-gfx mailing list