From: Jeevan B <jeevan.b@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: swati2.sharma@intel.com, Jeevan B <jeevan.b@intel.com>
Subject: [PATCH i-g-t 1/2] lib/igt_kms: Add 6k resolution support for a single CRTC
Date: Tue, 12 Nov 2024 22:04:34 +0530 [thread overview]
Message-ID: <20241112163435.1351560-2-jeevan.b@intel.com> (raw)
In-Reply-To: <20241112163435.1351560-1-jeevan.b@intel.com>
increase big_joiner limitation to 6k from 5k for display version
greater than 30.
Bspec: 68858
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
lib/igt_kms.c | 22 ++++++++++++++--------
lib/igt_kms.h | 5 +++--
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 5d8096a17..ca7f90ca8 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6330,6 +6330,7 @@ int igt_get_max_dotclock(int fd)
/**
* igt_bigjoiner_possible:
+ * @fd: drm file descriptor
* @mode: libdrm mode
* @max_dotclock: Max pixel clock frequency
*
@@ -6338,10 +6339,13 @@ int igt_get_max_dotclock(int fd)
*
* Returns: True if mode requires Bigjoiner, else False.
*/
-bool igt_bigjoiner_possible(drmModeModeInfo *mode, int max_dotclock)
+bool igt_bigjoiner_possible(int fd, drmModeModeInfo *mode, int max_dotclock)
{
- return (mode->hdisplay > MAX_HDISPLAY_PER_PIPE ||
- mode->clock > max_dotclock);
+ int max_hdisplay, dev_id;
+ dev_id = intel_get_drm_devid(fd);
+ max_hdisplay = (intel_display_ver(dev_id) >= 30) ? HDISPLAY_6K_PER_PIPE :
+ HDISPLAY_5K_PER_PIPE;
+ return (mode->hdisplay > max_hdisplay || mode->clock > max_dotclock);
}
/**
@@ -6362,10 +6366,10 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
bool found = false;
igt_sort_connector_modes(connector, sort_drm_modes_by_res_dsc);
- found = igt_bigjoiner_possible(&connector->modes[0], max_dotclock);
+ found = igt_bigjoiner_possible(drm_fd, &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);
+ found = igt_bigjoiner_possible(drm_fd, &connector->modes[0], max_dotclock);
}
if (found)
*mode = connector->modes[0];
@@ -6384,7 +6388,7 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
*/
bool igt_ultrajoiner_possible(drmModeModeInfo *mode, int max_dotclock)
{
- return (mode->hdisplay > 2 * MAX_HDISPLAY_PER_PIPE ||
+ return (mode->hdisplay > 2 * HDISPLAY_5K_PER_PIPE ||
mode->clock > 2 * max_dotclock);
}
@@ -6549,7 +6553,8 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
* - current & previous crtcs are consecutive
*/
for (i = 0; i < pipes_in_use; i++) {
- if (pipes[i].force_joiner || igt_bigjoiner_possible(pipes[i].mode, max_dotclock)) {
+ if (pipes[i].force_joiner || igt_bigjoiner_possible(display->drm_fd, 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),
@@ -6576,7 +6581,8 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
}
}
- if ((i > 0) && (pipes[i - 1].force_joiner || igt_bigjoiner_possible(pipes[i - 1].mode, max_dotclock))) {
+ if ((i > 0) && (pipes[i - 1].force_joiner || igt_bigjoiner_possible(display->drm_fd,
+ 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),
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index bd154d1c1..a1d2b8632 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -146,7 +146,8 @@ const char *kmstest_scaling_filter_str(int filter);
const char *kmstest_dsc_output_format_str(int output_format);
void kmstest_dump_mode(drmModeModeInfo *mode);
-#define MAX_HDISPLAY_PER_PIPE 5120
+#define HDISPLAY_6K_PER_PIPE 6144
+#define HDISPLAY_5K_PER_PIPE 5120
int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id);
void kmstest_set_vt_graphics_mode(void);
@@ -1238,7 +1239,7 @@ void igt_sort_connector_modes(drmModeConnector *connector,
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 igt_bigjoiner_possible(int fd, drmModeModeInfo *mode, int max_dotclock);
bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
int max_dotclock, drmModeModeInfo *mode);
bool igt_ultrajoiner_possible(drmModeModeInfo *mode, int max_dotclock);
--
2.25.1
next prev parent reply other threads:[~2024-11-12 16:20 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-12 16:34 [PATCH i-g-t 0/2] lib/igt_kms: Add 6k resolution support for a single CRTC Jeevan B
2024-11-12 16:34 ` Jeevan B [this message]
2024-11-14 20:17 ` [PATCH i-g-t 1/2] " Sharma, Swati2
2024-11-21 10:15 ` B, Jeevan
2024-11-12 16:34 ` [PATCH i-g-t 2/2] Fix bigjoiner compatibility checks for connector modes Jeevan B
2024-11-14 20:30 ` Sharma, Swati2
2024-11-12 17:29 ` ✓ CI.xeBAT: success for lib/igt_kms: Add 6k resolution support for a single CRTC (rev2) Patchwork
2024-11-12 17:35 ` ✓ Fi.CI.BAT: " Patchwork
2024-11-12 19:23 ` ✗ CI.xeFULL: failure " Patchwork
2024-11-12 23:15 ` ✗ Fi.CI.IGT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2024-11-21 10:45 [PATCH i-g-t 0/2] lib/igt_kms: Add 6k resolution support for a single CRTC Jeevan B
2024-11-21 10:45 ` [PATCH i-g-t 1/2] " Jeevan B
2024-11-21 17:19 ` Sharma, Swati2
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241112163435.1351560-2-jeevan.b@intel.com \
--to=jeevan.b@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=swati2.sharma@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.