[igt-dev] [PATCH i-g-t v2 1/2] tests/kms_display_modes: Fixed mode selection for extended mode tests

Modem, Bhanuprakash bhanuprakash.modem at intel.com
Thu Jun 8 11:26:26 UTC 2023



On Wed-07-06-2023 05:23 pm, Mohammed Thasleem wrote:
> Added check on DP-MST and 4k panels when two moniters connected
> through MST.
> This will find the connector mode combo that fits into the
> bandwidth when more than one monitor is connected.
> 
> Example:
>    When two monitors connected through MST, the second monitor
>    also tries to use the same mode. So two such modes may not
>    fit into the link bandwidth. So, iterate through connected
>    outputs & modes and find a combination of modes those fit
>    into the link BW.
> 
> v2: -Updated commit msg and description. (Bhanu)
>      -Renamed restart with retry. (Bhanu)
>      -Moved igt_pipe_crc_new before retry. (Bhanu)
>      -Removed unrelated changes and new line. (Bhanu)
>      -Minor changes.
> v3: Updated discription and added EINVAL check.
> v4: Removed EINVAL and ENOSPC checks.
>      Added check for DP-MST and 4k panels.
>      Updated discription.
> v5: Defined 4k display modes globally.
> v6: -Removed if loop checks.
>      -Added igt override to avoid dp mst bw failure.
> v7: Rebased on tip.
> 
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> ---
>   tests/kms_display_modes.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c
> index 93d91ef5..5108b4d4 100644
> --- a/tests/kms_display_modes.c
> +++ b/tests/kms_display_modes.c
> @@ -142,6 +142,7 @@ static void run_extendedmode_basic(data_t *data,
>   	igt_pipe_crc_t *pipe_crc[2] = { 0 };
>   	igt_crc_t ref_crc[2], crc[2];
>   	int width, height;
> +	bool found;
>   	cairo_t *cr;
>   
>   	igt_display_reset(display);
> @@ -171,6 +172,10 @@ static void run_extendedmode_basic(data_t *data,
>   	igt_fb_set_size(&fbs[1], plane[1], mode[1]->hdisplay, mode[1]->vdisplay);
>   	igt_plane_set_size(plane[1], mode[1]->hdisplay, mode[1]->vdisplay);
>   
> +	/* In case of DP-MST find suitable mode(s) to fit into the link BW. */
> +	found = igt_override_all_active_output_modes_to_fit_bw(display);
> +	igt_require_f(found, "No valid mode combo found for MST modeset.\n");

This logic should be moved to the caller.

--- a/tests/kms_display_modes.c
+++ b/tests/kms_display_modes.c
@@ -273,6 +273,9 @@ static void run_extendedmode_test(data_t *data) {
           igt_output_set_pipe(output1, pipe1);
           igt_output_set_pipe(output2, pipe2);

+         if (!igt_override_all_active_output_modes_to_fit_bw(display))
+                 continue;
+
           if (!i915_pipe_output_combo_valid(display))
                   continue;

- Bhanu

> +
>   	igt_display_commit2(display, COMMIT_ATOMIC);
>   
>   	igt_pipe_crc_collect_crc(pipe_crc[0], &ref_crc[0]);


More information about the igt-dev mailing list