[PATCH i-g-t 1/4] lib/igt_kms: move bigjoiner_mode_found to lib
Nautiyal, Ankit K
ankit.k.nautiyal at intel.com
Mon Mar 25 09:57:10 UTC 2024
On 3/21/2024 11:58 PM, Kunal Joshi wrote:
> move bigjoiner_mode_found to lib
>
> v2: correct documentation (Ankit)
> fix usage of mode (Ankit)
>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> Cc: Karthik B S <karthik.b.s at intel.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> Signed-off-by: Kunal Joshi <kunal1.joshi at intel.com>
> ---
> lib/igt_kms.c | 28 ++++++++++++++++++++++++++++
> lib/igt_kms.h | 2 ++
> tests/intel/kms_big_joiner.c | 14 +-------------
> 3 files changed, 31 insertions(+), 13 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index e18f6fe59..ff08b0eda 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6143,6 +6143,34 @@ bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock)
> mode->clock > max_dotclock);
> }
>
> +/**
> + * bigjoiner_mode_found:
> + * @drm_fd: drm file descriptor
> + * @connector: libdrm connector
> + * @max_dot_clock: max dot clock frequency
> + * @mode: libdrm mode
libdrm mode to be filled
LGTM.
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> + *
> + * Bigjoiner will come in to the picture when the
> + * resolution > 5K or clock > max-dot-clock.
> + *
> + * Returns: True if big joiner found in connector modes
> + */
> +bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> + int max_dotclock, drmModeModeInfo *mode)
> +{
> + bool found = false;
> +
> + igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc);
> + found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock);
> + if (!found) {
> + igt_sort_connector_modes(connector, sort_drm_modes_by_clk_dsc);
> + found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock);
> + }
> + if (found)
> + *mode = connector->modes[0];
> + return found;
> +}
> +
> /**
> * igt_check_bigjoiner_support:
> * @display: a pointer to an #igt_display_t structure
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index b3882808b..0fa7a2ea1 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -1212,6 +1212,8 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
> igt_output_t *output, int bpc);
> int igt_get_max_dotclock(int fd);
> bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock);
> +bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
> + int max_dotclock, drmModeModeInfo *mode);
> bool igt_check_bigjoiner_support(igt_display_t *display);
> bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
> bool intel_pipe_output_combo_valid(igt_display_t *display);
> diff --git a/tests/intel/kms_big_joiner.c b/tests/intel/kms_big_joiner.c
> index aba2adfbe..99b1b898d 100644
> --- a/tests/intel/kms_big_joiner.c
> +++ b/tests/intel/kms_big_joiner.c
> @@ -199,16 +199,6 @@ static void test_dual_display(data_t *data)
> igt_display_commit2(display, COMMIT_ATOMIC);
> }
>
> -static bool bigjoiner_mode_found(drmModeConnector *connector,
> - int (*sort_method)(const void *, const void*),
> - drmModeModeInfo *mode)
> -{
> - igt_sort_connector_modes(connector, sort_method);
> - *mode = connector->modes[0];
> -
> - return igt_bigjoiner_possible(mode, max_dotclock);
> -}
> -
> igt_main
> {
> data_t data;
> @@ -235,9 +225,7 @@ igt_main
> * Bigjoiner will come in to the picture when the
> * resolution > 5K or clock > max-dot-clock.
> */
> - found = (bigjoiner_mode_found(connector, sort_drm_modes_by_res_dsc, &mode) ||
> - bigjoiner_mode_found(connector, sort_drm_modes_by_clk_dsc, &mode)) ?
> - true : false;
> + found = bigjoiner_mode_found(data.drm_fd, connector, max_dotclock, &mode);
>
> if (found) {
> data.output[count].output_id = output->id;
More information about the igt-dev
mailing list