[i-g-t V6 4/8] lib/igt_kms: Force joiner support in bigjoiner checks
B, Jeevan
jeevan.b at intel.com
Thu Jun 27 06:54:52 UTC 2024
LGTM.
Reviewed-by: Jeevan B <jeevan.b at intel.com>
> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem at intel.com>
> Sent: Tuesday, June 18, 2024 1:53 PM
> To: igt-dev at lists.freedesktop.org; B, Jeevan <jeevan.b at intel.com>
> Cc: Modem, Bhanuprakash <bhanuprakash.modem at intel.com>; Joshi, Kunal1
> <kunal1.joshi at intel.com>
> Subject: [i-g-t V6 4/8] lib/igt_kms: Force joiner support in bigjoiner checks
>
> As we recently introduced the option (through debugfs) to force the bigjoiner,
> needs to extend the support in bigjoiner checks to handle the force joiner.
>
> Cc: Kunal Joshi <kunal1.joshi at intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> ---
> lib/igt_kms.c | 19 +++++++++++--------
> 1 file changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 9fdfadde1..d565e79ce 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6415,6 +6415,7 @@ bool igt_check_bigjoiner_support(igt_display_t
> *display)
> enum pipe idx;
> drmModeModeInfo *mode;
> igt_output_t *output;
> + bool force_joiner;
> } pipes[IGT_MAX_PIPES];
> int max_dotclock;
>
> @@ -6433,6 +6434,7 @@ bool igt_check_bigjoiner_support(igt_display_t
> *display)
> pipes[pipes_in_use].idx = output->pending_pipe;
> pipes[pipes_in_use].mode = igt_output_get_mode(output);
> pipes[pipes_in_use].output = output;
> + pipes[pipes_in_use].force_joiner =
> +igt_check_force_joiner_status(display->drm_fd, output->name);
> pipes_in_use++;
> }
>
> @@ -6444,21 +6446,22 @@ bool igt_check_bigjoiner_support(igt_display_t
> *display)
> max_dotclock = igt_get_max_dotclock(display->drm_fd);
>
> /*
> - * if mode resolution > 5K (or) mode.clock > max dot-clock, then ignore
> + * if force joiner (or) mode resolution > 5K (or) mode.clock > max dot-
> clock,
> + * then ignore
> * - if the consecutive pipe is not available
> * - last crtc in single/multi-connector config
> * - consecutive crtcs in multi-connector config
> *
> * in multi-connector config ignore if
> - * - previous crtc (mode resolution > 5K or mode.clock > max dot-clock)
> and
> + * - previous crtc (force joiner or mode resolution > 5K or
> +mode.clock > max dot-clock) and
> * - current & previous crtcs are consecutive
> */
> for (i = 0; i < pipes_in_use; i++) {
> - if (igt_bigjoiner_possible(pipes[i].mode, max_dotclock)) {
> - igt_info("pipe-%s-%s: (Max dot-clock: %d KHz)",
> + if (pipes[i].force_joiner || igt_bigjoiner_possible(pipes[i].mode,
> max_dotclock)) {
> + igt_info("pipe-%s-%s: (Max dot-clock: %d KHz), force
> joiner: %s\n",
> kmstest_pipe_name(pipes[i].idx),
> igt_output_name(pipes[i].output),
> - max_dotclock);
> + max_dotclock, pipes[i].force_joiner ? "Yes" :
> "No");
> kmstest_dump_mode(pipes[i].mode);
>
> if (pipes[i].idx >= (total_pipes - 1)) { @@ -6481,11
> +6484,11 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
> }
> }
>
> - if ((i > 0) && igt_bigjoiner_possible(pipes[i - 1].mode,
> max_dotclock)) {
> - igt_info("pipe-%s-%s: (Max dot-clock: %d KHz)",
> + if ((i > 0) && (pipes[i - 1].force_joiner ||
> igt_bigjoiner_possible(pipes[i - 1].mode, max_dotclock))) {
> + igt_info("pipe-%s-%s: (Max dot-clock: %d KHz), force
> joiner: %s\n",
> kmstest_pipe_name(pipes[i - 1].idx),
> igt_output_name(pipes[i - 1].output),
> - max_dotclock);
> + max_dotclock, pipes[i - 1].force_joiner ? "Yes" :
> "No");
> kmstest_dump_mode(pipes[i - 1].mode);
>
> if (!display->pipes[pipes[i - 1].idx + 1].enabled) {
> --
> 2.43.2
More information about the igt-dev
mailing list