[PATCH i-g-t 1/4] lib/igt_kms: Add is_joiner_mode function
Jeevan B
jeevan.b at intel.com
Wed Dec 4 06:09:21 UTC 2024
Introduce a utility to check if bigjoiner or ultrajoiner
mode is required based on requirement.
Signed-off-by: Jeevan B <jeevan.b at intel.com>
Signed-off-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
Reviewed-by: Swati Sharma <swati2.sharma at intel.com>
---
lib/igt_kms.c | 31 +++++++++++++++++++++++++++++++
lib/igt_kms.h | 1 +
2 files changed, 32 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 76f32e1e0..6fb5822ee 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6441,6 +6441,37 @@ bool ultrajoiner_mode_found(int drm_fd, drmModeConnector *connector,
return found;
}
+/**
+ * is_joiner_mode:
+ * @drm_fd: drm file descriptor
+ * @output: pointer to the output structure
+ *
+ * Checks if the current configuration requires Big Joiner or Ultra Joiner mode
+ * based on the maximum dot clock and connector settings.
+ *
+ * Returns: True if joiner mode is required, otherwise False.
+ */
+bool is_joiner_mode(int drm_fd, igt_output_t *output)
+{
+ bool is_joiner = false;
+ bool is_ultra_joiner = false;
+ int max_dotclock;
+ drmModeModeInfo mode;
+
+ max_dotclock = igt_get_max_dotclock(drm_fd);
+ is_joiner = bigjoiner_mode_found(drm_fd,
+ output->config.connector,
+ max_dotclock, &mode);
+ is_ultra_joiner = ultrajoiner_mode_found(drm_fd,
+ output->config.connector,
+ max_dotclock, &mode);
+
+ if (is_joiner || is_ultra_joiner)
+ return true;
+
+ return false;
+}
+
/**
* igt_has_force_joiner_debugfs
* @drmfd: A drm file descriptor
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 301f370df..c2fbbb5b0 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1248,6 +1248,7 @@ bool igt_ultrajoiner_possible(drmModeModeInfo *mode, int max_dotclock);
bool ultrajoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock, drmModeModeInfo *mode);
bool igt_has_force_joiner_debugfs(int drmfd, char *conn_name);
+bool is_joiner_mode(int drm_fd, igt_output_t *output);
bool igt_check_force_joiner_status(int drmfd, char *connector_name);
bool igt_check_bigjoiner_support(igt_display_t *display);
bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
--
2.25.1
More information about the igt-dev
mailing list