[PATCH i-g-t] tests: Increase value of I915_MAX_PIPES to 6

Deucher, Alexander Alexander.Deucher at amd.com
Thu Jun 8 21:48:58 UTC 2017


> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of sunpeng.li at amd.com
> Sent: Thursday, June 08, 2017 3:11 PM
> To: intel-gfx at lists.freedesktop.org; amd-gfx at lists.freedesktop.org;
> Wentland, Harry
> Cc: Li, Sun peng
> Subject: [PATCH i-g-t] tests: Increase value of I915_MAX_PIPES to 6
> 
> From: "Leo (Sunpeng) Li" <sunpeng.li at amd.com>
> 
> Increasing max pipe count to 6 to support AMD GPU's.
> 
> Since some tests' behavior depends on this value, small changes are made
> to remove this dependency:
> 
> * kms_ccs: Early abort if wanted_pipe is out-of-bounds.
> * kms_concurrent: Check if pipe is within bounds first.
> * kms_pipe_color: Prevent skipping of subsequent tests by placing
>     generated tests in a 'igt_subtest_group'.
> * kms_plane: Move pipe and plane index checking to subtest group level.
> 
> Signed-off-by: Leo (Sunpeng) Li <sunpeng.li at amd.com>
> ---
>  lib/igt_kms.c          | 10 ++++++++--
>  lib/igt_kms.h          |  3 +++
>  tests/kms_ccs.c        |  2 ++
>  tests/kms_concurrent.c |  2 +-
>  tests/kms_pipe_color.c |  3 ++-
>  tests/kms_plane.c      |  8 +++++---
>  6 files changed, 21 insertions(+), 7 deletions(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index c77716b..1bb62f0 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -319,12 +319,12 @@ const unsigned char* igt_kms_get_alt_edid(void)
>   */
>  const char *kmstest_pipe_name(enum pipe pipe)
>  {
> -	const char *str[] = { "A", "B", "C" };
> +	const char *str[] = { "A", "B", "C", "D", "E", "F"};
> 
>  	if (pipe == PIPE_NONE)
>  		return "None";
> 
> -	if (pipe > 2)
> +	if (pipe > 5)

Use I915_MAX_PIPES here rather than hardcoding 5.  With that fixed the patch is:
Acked-by: Alex Deucher <alexander.deucher at amd.com>

>  		return "invalid";
> 
>  	return str[pipe];
> @@ -344,6 +344,12 @@ int kmstest_pipe_to_index(char pipe)
>  		return 1;
>  	else if (pipe == 'C')
>  		return 2;
> +	else if (pipe == 'D')
> +		return 3;
> +	else if (pipe == 'E')
> +		return 4;
> +	else if (pipe == 'F')
> +		return 5;
>  	else
>  		return -EINVAL;
>  }
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 9567a26..8f7c2bb 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -54,6 +54,9 @@ enum pipe {
>          PIPE_A = 0,
>          PIPE_B,
>          PIPE_C,
> +	PIPE_D,
> +	PIPE_E,
> +	PIPE_F,
>          I915_MAX_PIPES
>  };
>  const char *kmstest_pipe_name(enum pipe pipe);
> diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
> index d829152..0795e3a 100644
> --- a/tests/kms_ccs.c
> +++ b/tests/kms_ccs.c
> @@ -250,6 +250,8 @@ static void test(data_t *data)
>  	int valid_tests = 0;
>  	enum pipe wanted_pipe = data->pipe;
> 
> +	igt_skip_on(wanted_pipe >= display->n_pipes);
> +
>  	for_each_pipe_with_valid_output(display, data->pipe, data-
> >output) {
>  		if (wanted_pipe != PIPE_NONE && data->pipe !=
> wanted_pipe)
>  			continue;
> diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
> index b34540b..db06a37 100644
> --- a/tests/kms_concurrent.c
> +++ b/tests/kms_concurrent.c
> @@ -351,8 +351,8 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
>  	igt_fixture {
>  		int valid_tests = 0;
> 
> -		igt_require(data->display.pipes[pipe].n_planes > 0);
>  		igt_skip_on(pipe >= data->display.n_pipes);
> +		igt_require(data->display.pipes[pipe].n_planes > 0);
> 
>  		for_each_valid_output_on_pipe(&data->display, pipe,
> output)
>  			valid_tests++;
> diff --git a/tests/kms_pipe_color.c b/tests/kms_pipe_color.c
> index fd58ac8..da49eb1 100644
> --- a/tests/kms_pipe_color.c
> +++ b/tests/kms_pipe_color.c
> @@ -1180,7 +1180,8 @@ igt_main
>  	}
> 
>  	for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)
> -		run_tests_for_pipe(&data, pipe);
> +		igt_subtest_group
> +			run_tests_for_pipe(&data, pipe);
> 
>  	igt_subtest_f("invalid-lut-sizes")
>  		invalid_lut_sizes(&data);
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index e1bd467..34418ca 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -354,9 +354,6 @@ test_plane_panning(data_t *data, enum pipe pipe,
> int plane,
>  	igt_output_t *output;
>  	int connected_outs = 0;
> 
> -	igt_skip_on(pipe >= data->display.n_pipes);
> -	igt_skip_on(plane >= data->display.pipes[pipe].n_planes);
> -
>  	for_each_valid_output_on_pipe(&data->display, pipe, output) {
>  		test_plane_panning_with_output(data, pipe, plane, output,
>  						flags);
> @@ -369,6 +366,11 @@ test_plane_panning(data_t *data, enum pipe pipe,
> int plane,
>  static void
>  run_tests_for_pipe_plane(data_t *data, enum pipe pipe)
>  {
> +	igt_fixture {
> +		igt_skip_on(pipe >= data->display.n_pipes);
> +		igt_require(data->display.pipes[pipe].n_planes > 0);
> +	}
> +
>  	igt_subtest_f("plane-position-covered-pipe-%s-planes",
>  		      kmstest_pipe_name(pipe)) {
>  		int n_planes = data->display.pipes[pipe].n_planes;
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list