[PATCH i-g-t 1/3] lib/igt_kms: Add lib changes to check joiner is enabled
Jeevan B
jeevan.b at intel.com
Tue Feb 4 18:27:32 UTC 2025
Added a library change where we if joiner is enabled or not.
v2: Update function name and logic to check joiner
enabled for exact pipe. (Karthik)
Signed-off-by: Jeevan B <jeevan.b 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 90f44b4d3..d4980d2ac 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6406,6 +6406,37 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
return found;
}
+/**
+ * igt_is_joiner_enabled:
+ * @drmfd: A drm file descriptor
+ * @pipe: display pipe
+ *
+ * Returns: True if joiner is enabled, false otherwise.
+ */
+bool igt_is_joiner_enabled(int drmfd, enum pipe pipe)
+{
+ char buf[16384], master_str[64], slave_str[64];
+ int dir, res;
+ int initial_number = 0b11;
+
+
+ dir = igt_debugfs_dir(drmfd);
+ igt_assert(dir >= 0);
+
+ res = igt_debugfs_simple_read(dir, "i915_display_info",
+ buf, sizeof(buf));
+ close(dir);
+ igt_assert(res >= 0);
+ initial_number <<= pipe;
+
+ snprintf(master_str, sizeof(master_str),
+ "Linked to 0x%X pipes as a master", initial_number);
+ snprintf(slave_str, sizeof(slave_str),
+ "Linked to 0x%X pipes as a slave", initial_number);
+
+ return (strstr(buf, master_str) && strstr(buf, slave_str));
+}
+
/**
* igt_ultrajoiner_possible:
* @mode: libdrm mode
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 8810123fb..7df53ec9c 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1245,6 +1245,7 @@ int igt_get_max_dotclock(int fd);
bool igt_bigjoiner_possible(int drm_fd, drmModeModeInfo *mode, int max_dotclock);
bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock, drmModeModeInfo *mode);
+bool igt_is_joiner_enabled(int drmfd, enum pipe pipe);
bool igt_ultrajoiner_possible(drmModeModeInfo *mode, int max_dotclock);
bool ultrajoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock, drmModeModeInfo *mode);
--
2.25.1
More information about the igt-dev
mailing list