Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Michał Grzelak" <michal.grzelak@linux.intel.com>
To: igt-dev@lists.freedesktop.org
Cc: "Karthik B S" <karthik.b.s@intel.com>,
	"Swati Sharma" <swati2.sharma@intel.com>,
	"Juha-Pekka Heikkilä" <juhapekka.heikkila@gmail.com>,
	"Jani Nikula" <jani.nikula@intel.com>,
	"Michał Grzelak" <michal.grzelak@intel.com>,
	"Michał Grzelak" <michal.grzelak@linux.intel.com>
Subject: [PATCH i-g-t v8 2/9] tests/kms_async_flips: set mask for available hardware pipes
Date: Tue, 13 Oct 2026 18:10:06 +0200	[thread overview]
Message-ID: <20261013161013.1364753-3-michal.grzelak@linux.intel.com> (raw)
In-Reply-To: <20261013161013.1364753-1-michal.grzelak@linux.intel.com>

Mapping from hardware pipe into CRTC is needed when testing suspend
since we need to run test on at least first and last pipe. Currently
there is a direct mapping between CRTC and hardware pipe but this will
break after introduction of pipe reordering.

Compute array of all available hardware pipes. While doing it also
compute first and last pipe. Recompute the array on each test since
testing first and last pipe will only be needed in suspend-resume
scenario.

Skip testing CRTCs that map to unavailable pipes. Currently this is a
no-op but this will change after limiting suspend tests to first and
last pipe.

v7->v8
- add patch

Signed-off-by: Michał Grzelak <michal.grzelak@linux.intel.com>
---
 tests/kms_async_flips.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 8884efd8ba..a548c73cd9 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -140,6 +140,7 @@ typedef struct {
 	bool flip_pending;
 	igt_crtc_t *crtc;
 	bool alternate_sync_async;
+	bool available_pipes[IGT_MAX_PIPES];
 	bool suspend_resume;
 	bool hang;
 	bool dpms;
@@ -288,10 +289,36 @@ static void require_overlay_flip_support(data_t *data)
 		      "Async flip for overlay planes not supported\n");
 }
 
+static bool set_available_hw_pipes(data_t *data)
+{
+	enum hardware_pipe first_pipe = IGT_MAX_PIPES;
+	enum hardware_pipe last_pipe = PIPE_NONE;
+	enum hardware_pipe hw_pipe;
+	igt_crtc_t *crtc;
+
+	for_each_crtc(&data->display, crtc) {
+		hw_pipe = crtc->hardware_pipe;
+		data->available_pipes[hw_pipe] = true;
+
+		if (last_pipe < hw_pipe)
+			last_pipe = hw_pipe;
+
+		if (first_pipe > hw_pipe)
+			first_pipe = hw_pipe;
+	}
+
+	if (first_pipe == IGT_MAX_PIPES || last_pipe == PIPE_NONE)
+	        return false;
+
+	return true;
+}
+
 static void test_init(data_t *data)
 {
 	drmModeModeInfo *mode;
 
+	set_available_hw_pipes(data);
+
 	igt_display_reset(&data->display);
 	igt_display_commit(&data->display);
 
@@ -892,6 +919,9 @@ static void run_test(data_t *data, void (*test)(data_t *))
 
 			test_init(data);
 
+			if (!data->available_pipes[crtc->hardware_pipe])
+				continue;
+
 			if (data->linear_modifier)
 				data->modifier = DRM_FORMAT_MOD_LINEAR;
 			else
-- 
2.45.2


  parent reply	other threads:[~2026-10-13 16:15 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-13 16:10 [PATCH i-g-t v8 0/9] tests: limiting suspend tests Michał Grzelak
2026-10-13 16:10 ` [PATCH i-g-t v8 1/9] tests/kms_async_flips: split outer test loop into two Michał Grzelak
2026-10-13 16:10 ` Michał Grzelak [this message]
2026-10-13 16:10 ` [PATCH i-g-t v8 3/9] tests/kms_async_flips: limit #pipes tested during suspend Michał Grzelak
2026-10-13 16:10 ` [PATCH i-g-t v8 4/9] tests/kms_vblank: limit #outputs " Michał Grzelak
2026-10-13 16:10 ` [PATCH i-g-t v8 5/9] tests/intel/kms_ccs: split outer test loop into two Michał Grzelak
2026-10-13 16:10 ` [PATCH i-g-t v8 6/9] tests/intel/kms_ccs: limit #outputs tested during suspend Michał Grzelak
2026-10-13 16:10 ` [PATCH i-g-t v8 7/9] tests/intel/kms_ccs: set mask for available hardware pipes Michał Grzelak
2026-10-13 16:10 ` [PATCH i-g-t v8 8/9] tests/intel/kms_ccs: limit #pipes tested during suspend Michał Grzelak
2026-10-13 16:10 ` [PATCH i-g-t v8 9/9] tests/kms_hdr: run on 3 outputs when testing suspend Michał Grzelak
2026-10-13 19:48 ` ✓ i915.CI.BAT: success for tests: limiting suspend tests (rev7) Patchwork
2026-10-13 23:06 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-14  1:04 ` ✓ i915.CI.Full: " Patchwork
2026-10-14  8:55 ` ✓ Xe.CI.FULL: " 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=20261013161013.1364753-3-michal.grzelak@linux.intel.com \
    --to=michal.grzelak@linux.intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=juhapekka.heikkila@gmail.com \
    --cc=karthik.b.s@intel.com \
    --cc=michal.grzelak@intel.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox