[PATCH i-g-t 5/5] tests/kms: Use lib helper to check the pipe/output combo validity

B, Jeevan jeevan.b at intel.com
Fri Jun 14 05:45:28 UTC 2024


> -----Original Message-----
> From: igt-dev <igt-dev-bounces at lists.freedesktop.org> On Behalf Of
> Bhanuprakash Modem
> Sent: Monday, April 8, 2024 11:42 AM
> To: igt-dev at lists.freedesktop.org
> Cc: Modem, Bhanuprakash <bhanuprakash.modem at intel.com>
> Subject: [PATCH i-g-t 5/5] tests/kms: Use lib helper to check the pipe/output
> combo validity
> 
> Use IGT lib helper intel_pipe_output_combo_valid() to make sure the selected
> pipe/output/mode combo is valid.
> 
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> ---
>  tests/kms_dither.c | 24 +++++++------
>  tests/kms_hdr.c    | 90 ++++++++++++++++++++++++++--------------------
>  2 files changed, 65 insertions(+), 49 deletions(-)
> 
> diff --git a/tests/kms_dither.c b/tests/kms_dither.c index af7b7f05c..21b1210b4
> 100644
> --- a/tests/kms_dither.c
> +++ b/tests/kms_dither.c
> @@ -76,13 +76,10 @@ typedef struct {
>  /* Prepare test data. */
>  static void prepare_test(data_t *data, igt_output_t *output, enum pipe p)  {
> -	igt_display_t *display = &data->display;
>  	igt_pipe_t *pipe = &data->display.pipes[p];
> 
>  	igt_assert(pipe);
> 
> -	igt_display_reset(display);
> -
>  	data->primary =
>  		igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
> 
> @@ -205,6 +202,8 @@ run_dither_test(data_t *data, int fb_bpc, int fb_format,
> int output_bpc)
>  	igt_output_t *output;
>  	igt_display_t *display = &data->display;
> 
> +	igt_display_reset(display);
> +
>  	for_each_connected_output(display, output) {
>  		enum pipe pipe;
> 
> @@ -215,15 +214,20 @@ run_dither_test(data_t *data, int fb_bpc, int
> fb_format, int output_bpc)
>  			continue;
> 
>  		for_each_pipe(display, pipe) {
> -			if (igt_pipe_connector_valid(pipe, output)) {
> -				igt_dynamic_f("pipe-%s-%s",
> -					      kmstest_pipe_name(pipe), output-
> >name)
> -					test_dithering(data, pipe, output,
> fb_bpc,
> -							fb_format,
> output_bpc);
> +			igt_output_set_pipe(output, pipe);
> 
> -				/* One pipe is enough */
> -				break;
> +			if (!intel_pipe_output_combo_valid(display)) {
> +				igt_output_set_pipe(output, PIPE_NONE);
> +				continue;
>  			}
> +
> +			igt_dynamic_f("pipe-%s-%s",
> +					      kmstest_pipe_name(pipe), output-
> >name)
> +				test_dithering(data, pipe, output, fb_bpc,
> +							   fb_format,
> output_bpc);
> +
> +			/* One pipe is enough */
> +			break;
>  		}
>  	}
>  }

Overall patch looks fine, can we split these to 2 patches to simplify. 

> diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c index 99b78f7ef..475463c21
> 100644
> --- a/tests/kms_hdr.c
> +++ b/tests/kms_hdr.c
> @@ -261,6 +261,8 @@ static void test_bpc_switch(data_t *data, uint32_t flags)
>  	igt_display_t *display = &data->display;
>  	igt_output_t *output;
> 
> +	igt_display_reset(display);
> +
>  	for_each_connected_output(display, output) {
>  		enum pipe pipe;
> 
> @@ -271,26 +273,30 @@ static void test_bpc_switch(data_t *data, uint32_t
> flags)
>  			continue;
> 
>  		for_each_pipe(display, pipe) {
> -			if (igt_pipe_connector_valid(pipe, output)) {
> -				prepare_test(data, output, pipe);
> -
> -				if (is_intel_device(data->fd) &&
> -				    !igt_max_bpc_constraint(display, pipe, output,
> 10)) {
> -					test_fini(data);
> -					break;
> -				}
> -
> -				data->mode = igt_output_get_mode(output);
> -				data->w = data->mode->hdisplay;
> -				data->h = data->mode->vdisplay;
> +			igt_output_set_pipe(output, pipe);
> +			if (intel_pipe_output_combo_valid(display)) {
> +				igt_output_set_pipe(output, PIPE_NONE);
> +				continue;
> +			}
> 
> -				igt_dynamic_f("pipe-%s-%s",
> -					      kmstest_pipe_name(pipe), output-
> >name)
> -					test_bpc_switch_on_output(data, pipe,
> output, flags);
> +			prepare_test(data, output, pipe);
> 
> -				/* One pipe is enough */
> +			if (is_intel_device(data->fd) &&
> +			    !igt_max_bpc_constraint(display, pipe, output, 10)) {
> +				test_fini(data);
>  				break;
>  			}
> +
> +			data->mode = igt_output_get_mode(output);
> +			data->w = data->mode->hdisplay;
> +			data->h = data->mode->vdisplay;
> +
> +			igt_dynamic_f("pipe-%s-%s",
> +				      kmstest_pipe_name(pipe), output->name)
> +				test_bpc_switch_on_output(data, pipe, output,
> flags);
> +
> +			/* One pipe is enough */
> +			break;
>  		}
>  	}
>  }
> @@ -614,6 +620,8 @@ static void test_hdr(data_t *data, uint32_t flags)
>  	igt_display_t *display = &data->display;
>  	igt_output_t *output;
> 
> +	igt_display_reset(display);
> +
>  	for_each_connected_output(display, output) {
>  		enum pipe pipe;
> 
> @@ -635,32 +643,36 @@ static void test_hdr(data_t *data, uint32_t flags)
>  			continue;
> 
>  		for_each_pipe(display, pipe) {
> -			if (igt_pipe_connector_valid(pipe, output)) {
> -				prepare_test(data, output, pipe);
> +			igt_output_set_pipe(output, pipe);
> +			if (!intel_pipe_output_combo_valid(display)) {
> +				igt_output_set_pipe(output, PIPE_NONE);
> +				continue;
> +			}
> 
> -				if (is_intel_device(data->fd) &&
> -				    !igt_max_bpc_constraint(display, pipe, output,
> 10)) {
> -					test_fini(data);
> -					break;
> -				}
> -
> -				data->mode = igt_output_get_mode(output);
> -				data->w = data->mode->hdisplay;
> -				data->h = data->mode->vdisplay;
> -
> -				igt_dynamic_f("pipe-%s-%s",
> -					      kmstest_pipe_name(pipe), output-
> >name) {
> -					if (flags & (TEST_NONE | TEST_DPMS |
> TEST_SUSPEND | TEST_INVALID_HDR))
> -						test_static_toggle(data, pipe,
> output, flags);
> -					if (flags & TEST_SWAP)
> -						test_static_swap(data, pipe,
> output);
> -					if (flags &
> TEST_INVALID_METADATA_SIZES)
> -
> 	test_invalid_metadata_sizes(data, output);
> -				}
> -
> -				/* One pipe is enough */
> +			prepare_test(data, output, pipe);
> +
> +			if (is_intel_device(data->fd) &&
> +			    !igt_max_bpc_constraint(display, pipe, output, 10)) {
> +				test_fini(data);
>  				break;
>  			}
> +
> +			data->mode = igt_output_get_mode(output);
> +			data->w = data->mode->hdisplay;
> +			data->h = data->mode->vdisplay;
> +
> +			igt_dynamic_f("pipe-%s-%s",
> +				      kmstest_pipe_name(pipe), output->name) {
> +				if (flags & (TEST_NONE | TEST_DPMS |
> TEST_SUSPEND | TEST_INVALID_HDR))
> +					test_static_toggle(data, pipe, output,
> flags);
> +				if (flags & TEST_SWAP)
> +					test_static_swap(data, pipe, output);
> +				if (flags & TEST_INVALID_METADATA_SIZES)
> +					test_invalid_metadata_sizes(data,
> output);
> +			}
> +
> +			/* One pipe is enough */
> +			break;
>  		}
>  	}
>  }
> --
> 2.43.2



More information about the igt-dev mailing list