[igt-dev] [PATCH i-g-t] tests/kms_display_modes: Add check on ENOSPC for DP MST config
Modem, Bhanuprakash
bhanuprakash.modem at intel.com
Wed Feb 15 11:18:17 UTC 2023
Hi Thasleem,
On Mon-08-08-2022 03:06 pm, Mohammed Thasleem wrote:
> Added check on ENOSPC 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.
Please elaborate the commit message.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> ---
> tests/kms_display_modes.c | 21 +++++++++++++++++++--
> 1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c
> index e4191811..cbcdc0cc 100644
> --- a/tests/kms_display_modes.c
> +++ b/tests/kms_display_modes.c
> @@ -44,6 +44,7 @@ static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
> igt_pipe_crc_t *pipe_crc[2] = { 0 };
> igt_crc_t ref_crc[2], crc[2];
> int count = 0, width, height;
> + int ret;
> cairo_t *cr;
>
> for_each_connected_output(display, output) {
> @@ -54,6 +55,7 @@ static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
> break;
> }
>
> +restart:
Better to use s/restart/retry/
> igt_output_set_pipe(extended_output[0], pipe1);
> igt_output_set_pipe(extended_output[1], pipe2);
Please fix [1] the creation of new crc on retry.
[1]:
https://cgit.freedesktop.org/drm/igt-gpu-tools/tree/tests/kms_display_modes.c#n63
>
> @@ -79,7 +81,23 @@ static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
> 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);
>
> - igt_display_commit2(display, COMMIT_ATOMIC);
> + ret = igt_display_try_commit2(display, COMMIT_ATOMIC);
> + if (ret != 0 && errno == ENOSPC) {
> +
Please drop this new line.
> + bool found = igt_override_all_active_output_modes_to_fit_bw(display);
> +
Please drop this new line.
> + igt_require_f(found, "No valid mode combo found.\n");
> +
> + for_each_connected_output(display, output)
> + igt_output_set_pipe(output, PIPE_NONE);
> +
> + igt_remove_fb(data->drm_fd, &fbs[0]);
> + igt_remove_fb(data->drm_fd, &fbs[1]);
> +
> + goto restart;
> + }
> +
> + igt_assert(!ret);
>
> igt_pipe_crc_collect_crc(pipe_crc[0], &ref_crc[0]);
> igt_pipe_crc_collect_crc(pipe_crc[1], &ref_crc[1]);
> @@ -101,7 +119,6 @@ static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
> igt_plane_set_fb(plane[1], &fb);
> igt_fb_set_position(&fb, plane[1], mode[0]->hdisplay, 0);
> igt_fb_set_size(&fb, plane[1], mode[1]->hdisplay, mode[1]->vdisplay);
> -
Unrelated change, please drop it.
- Bhanu
> igt_display_commit2(display, COMMIT_ATOMIC);
>
> igt_pipe_crc_collect_crc(pipe_crc[0], &crc[0]);
More information about the igt-dev
mailing list