[PATCH i-g-t 1/3] lib/igt_kms: Add lib changes to check joiner is enabled
Karthik B S
karthik.b.s at intel.com
Fri Feb 7 05:51:58 UTC 2025
Hi,
On 2/4/2025 11:57 PM, Jeevan B wrote:
> Added a library change where we if joiner is enabled or not.
Please fix the commit message.
>
> 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)
igt_is_joiner_enabled -> igt_is_joiner_enabled_for_pipe
> +{
> + char buf[16384], master_str[64], slave_str[64];
> + int dir, res;
> + int initial_number = 0b11;
I think this variable can be named better, may be pipe_mask or something
similar to this?
Thanks,
Karthik.B.S
> +
> +
> + 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);
More information about the igt-dev
mailing list