Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Thasleem, Mohammed" <mohammed.thasleem@intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH v4 2/2] tests/i915/kms_cdclk: Fixed mode selection for MST modeset
Date: Mon,  3 Jul 2023 11:56:55 +0530	[thread overview]
Message-ID: <20230703062655.15433-1-mohammed.thasleem@intel.com> (raw)
In-Reply-To: <20230627203406.2502811-1-mohammed.thasleem@intel.com>

From: Mohammed Thasleem <mohammed.thasleem@intel.com>

When two monitors connected through MST. This will find the
connector mode combo that fits into the bandwidth when more
than one monitor is connected.

Example:
  When two monitors connected through MST, the second monitor
  also tries to use the same mode. So two such modes may not
  fit into the link bandwidth. So, iterate through connected
  outputs & modes and find a combination of modes those fit
  into the link BW.

v2: -Removed if loop checks.
    -Added igt override to avoid dp mst bw failure.
v3: Rebased conflict.
v4: Skip the test if available mode is less than 4k.
v5: Check all connected displays for less than 4k mode.

Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/i915/kms_cdclk.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/tests/i915/kms_cdclk.c b/tests/i915/kms_cdclk.c
index 40eca24f0..eac0af85e 100644
--- a/tests/i915/kms_cdclk.c
+++ b/tests/i915/kms_cdclk.c
@@ -43,6 +43,7 @@ typedef struct {
 	int drm_fd;
 	int debugfs_fd;
 	uint32_t devid;
+	igt_output_t *mst_output[2];
 	igt_display_t display;
 } data_t;
 
@@ -252,11 +253,12 @@ static void test_mode_transition_on_all_outputs(data_t *data)
 {
 	igt_display_t *display = &data->display;
 	int debugfs_fd = data->debugfs_fd;
-	drmModeModeInfo *mode, *mode_hi, *mode_lo;
+	drmModeModeInfo *mode, *mode_hi, *mode_lo, *mst_mode;
 	igt_output_t *output;
 	int valid_outputs = 0;
 	int cdclk_ref, cdclk_new;
 	uint16_t width = 0, height = 0;
+	bool found;
 	struct igt_fb fb;
 	igt_pipe_t *pipe;
 	igt_plane_t *plane;
@@ -332,6 +334,19 @@ static void test_mode_transition_on_all_outputs(data_t *data)
 		j++;
 	}
 
+	/* In case of DP-MST find suitable mode(s) to fit into the link BW. */
+	found = igt_override_all_active_output_modes_to_fit_bw(display);
+	igt_require_f(found, "No valid mode combo found for MST modeset.\n");
+
+	if (found) {
+
+		for_each_connected_output(display, output) {
+			mst_mode = igt_output_get_mode(output);
+			igt_require_f((mst_mode->hdisplay < HDISPLAY_4K &&
+				       mst_mode->vdisplay < VDISPLAY_4K), "Found less than 4k mode\n");
+		}
+	}
+
 	igt_display_commit2(display, COMMIT_ATOMIC);
 	cdclk_new = get_current_cdclk_freq(debugfs_fd);
 	igt_info("CD clock frequency %d -> %d\n", cdclk_ref, cdclk_new);
-- 
2.25.1

  reply	other threads:[~2023-07-03  6:27 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-07 11:53 [igt-dev] [PATCH i-g-t v2 0/2] Fixed mode selection for MST modeset Mohammed Thasleem
2023-06-07 11:53 ` [igt-dev] [PATCH i-g-t v2 1/2] tests/kms_display_modes: Fixed mode selection for extended mode tests Mohammed Thasleem
2023-06-08 11:26   ` Modem, Bhanuprakash
2023-06-25 18:34   ` [igt-dev] [PATCH v3 " Mohammed Thasleem
2023-06-26 11:01     ` Modem, Bhanuprakash
2023-06-27 18:55     ` [igt-dev] [PATCH v4 " Mohammed Thasleem
2023-06-28  7:36       ` Modem, Bhanuprakash
2023-07-03  5:38       ` [igt-dev] [PATCH v5 " Thasleem, Mohammed
2023-06-07 11:53 ` [igt-dev] [PATCH i-g-t v2 2/2] tests/i915/kms_cdclk: Fixed mode selection for MST modeset Mohammed Thasleem
2023-06-08 11:17   ` Modem, Bhanuprakash
2023-06-09  7:21     ` Sharma, Swati2
2023-06-27 20:34   ` [igt-dev] [PATCH v3 " Mohammed Thasleem
2023-07-03  6:26     ` Thasleem, Mohammed [this message]
2023-06-07 13:22 ` [igt-dev] ✗ GitLab.Pipeline: warning for Fixed mode selection for MST modeset (rev4) Patchwork
2023-06-07 13:48 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2023-06-08  2:06 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2023-06-08  6:17 ` [igt-dev] ✓ Fi.CI.BAT: success for Fixed mode selection for MST modeset (rev5) Patchwork
2023-06-08 11:43 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Fixed mode selection for MST modeset (rev6) Patchwork
2023-06-09  4:22 ` [igt-dev] ✗ Fi.CI.IGT: failure for Fixed mode selection for MST modeset (rev5) Patchwork
2023-06-25 19:26 ` [igt-dev] ✓ Fi.CI.BAT: success for Fixed mode selection for MST modeset (rev7) Patchwork
2023-06-25 20:46 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-06-27 20:06 ` [igt-dev] ✓ Fi.CI.BAT: success for Fixed mode selection for MST modeset (rev8) Patchwork
2023-06-27 21:47 ` [igt-dev] ✓ Fi.CI.BAT: success for Fixed mode selection for MST modeset (rev9) Patchwork
2023-06-28 12:50 ` [igt-dev] ✗ Fi.CI.IGT: failure for Fixed mode selection for MST modeset (rev8) Patchwork
2023-06-28 15:48 ` [igt-dev] ✗ Fi.CI.IGT: failure for Fixed mode selection for MST modeset (rev9) Patchwork
2023-07-03  6:44 ` [igt-dev] ✗ Fi.CI.BAT: failure for Fixed mode selection for MST modeset (rev10) Patchwork
2023-07-03  7:08 ` [igt-dev] ✓ Fi.CI.BAT: success for Fixed mode selection for MST modeset (rev11) Patchwork
2023-07-03  8:19 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2023-07-05 13:07 ` [igt-dev] ✗ Fi.CI.BAT: failure for Fixed mode selection for MST modeset (rev12) Patchwork

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=20230703062655.15433-1-mohammed.thasleem@intel.com \
    --to=mohammed.thasleem@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox