All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Juha-Pekka Heikkilä" <juhapekka.heikkila@gmail.com>
To: "Michał Grzelak" <michal.grzelak@linux.intel.com>,
	igt-dev@lists.freedesktop.org
Cc: "Karthik B S" <karthik.b.s@intel.com>,
	"Swati Sharma" <swati2.sharma@intel.com>,
	"Jani Nikula" <jani.nikula@intel.com>,
	"Michał Grzelak" <michal.grzelak@intel.com>
Subject: Re: [PATCH i-g-t v8 7/9] tests/intel/kms_ccs: set mask for available hardware pipes
Date: Wed, 4 Nov 2026 19:20:48 +0200	[thread overview]
Message-ID: <e5e71cbd-4fab-40b8-b028-3e54872fd6bd@gmail.com> (raw)
In-Reply-To: <20261013161013.1364753-8-michal.grzelak@linux.intel.com>

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 13/10/2026 19.10, Michał Grzelak wrote:
> 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. Skip whole test when there is no available
> pipe.
> 
> 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/intel/kms_ccs.c | 31 +++++++++++++++++++++++++++++++
>   1 file changed, 31 insertions(+)
> 
> diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
> index 8526f1ccfd..734dafd110 100644
> --- a/tests/intel/kms_ccs.c
> +++ b/tests/intel/kms_ccs.c
> @@ -189,6 +189,7 @@ typedef struct {
>   	bool user_seed;
>   	enum igt_commit_style commit;
>   	int fb_list_length;
> +	bool available_pipes[IGT_MAX_PIPES];
>   	bool do_hibernate;
>   	bool all_outputs;
>   	struct {
> @@ -1088,6 +1089,30 @@ static int test_ccs(data_t *data)
>   	return valid_tests;
>   }
>   
> +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 bool skip_plane(data_t *data, igt_plane_t *plane)
>   {
>   	int index = plane->index;
> @@ -1176,6 +1201,9 @@ static void test_output(data_t *data, const int testnum)
>   					if (!intel_pipe_output_combo_valid(&data->display))
>   						continue;
>   
> +					if (!data->available_pipes[crtc->hardware_pipe])
> +						continue;
> +
>   					igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), data->output->name) {
>   						int valid_tests = 0;
>   
> @@ -1269,6 +1297,9 @@ int igt_main_args("csrn:", NULL, help_str, opt_handler, &data)
>   		data.fb_list_length = 0;
>   	}
>   
> +	igt_fixture()
> +		igt_require_f(set_available_hw_pipes(&data), "no pipe available\n");
> +
>   	for (int c = 0; c < ARRAY_SIZE(tests); c++)
>   		test_output(&data, c);
>   


  reply	other threads:[~2026-11-04 17:23 UTC|newest]

Thread overview: 18+ 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 ` [PATCH i-g-t v8 2/9] tests/kms_async_flips: set mask for available hardware pipes Michał Grzelak
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-11-04 17:20   ` Juha-Pekka Heikkilä
2026-10-13 16:10 ` [PATCH i-g-t v8 6/9] tests/intel/kms_ccs: limit #outputs tested during suspend Michał Grzelak
2026-11-04 17:20   ` Juha-Pekka Heikkilä
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-11-04 17:20   ` Juha-Pekka Heikkilä [this message]
2026-10-13 16:10 ` [PATCH i-g-t v8 8/9] tests/intel/kms_ccs: limit #pipes tested during suspend Michał Grzelak
2026-11-04 17:21   ` Juha-Pekka Heikkilä
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=e5e71cbd-4fab-40b8-b028-3e54872fd6bd@gmail.com \
    --to=juhapekka.heikkila@gmail.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=karthik.b.s@intel.com \
    --cc=michal.grzelak@intel.com \
    --cc=michal.grzelak@linux.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 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.