From: Jani Nikula <jani.nikula@intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
igt-dev@lists.freedesktop.org
Subject: Re: [PATCH i-g-t 10/15] lib/kms: Use for_each_crtc_with_single_output(), part 3
Date: Fri, 30 Jan 2026 16:22:26 +0200 [thread overview]
Message-ID: <df7638bae4dd227eb5b16a524bb3e478071dca2a@intel.com> (raw)
In-Reply-To: <20260130105237.14481-11-ville.syrjala@linux.intel.com>
On Fri, 30 Jan 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Convert more of the for_each_pipe_with_single_output() uses
> over to for_each_crtc_with_single_output(). This covers the
> simple use cases that weren't converted by the previous
> attempt (due to coccinelle performance falling off a cliff
> with the more straightforward semantic patch).
*tests/kms in the subject.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
> Done with cocci:
> #include "scripts/iterators.cocci"
>
> @change@
> iterator name for_each_pipe_with_single_output;
> iterator name for_each_crtc_with_single_output;
> typedef igt_crtc_t;
> enum pipe PIPE;
> expression DISPLAY, OUTPUT;
> @@
> - for_each_pipe_with_single_output(DISPLAY, PIPE, OUTPUT)
> + for_each_crtc_with_single_output(DISPLAY, crtc, OUTPUT)
> {
> <+...
> (
> - igt_crtc_for_pipe(..., PIPE)
> + crtc
> |
> - kmstest_pipe_name(PIPE)
> + igt_crtc_name(crtc)
> |
> - PIPE
> + crtc->pipe
> )
> ...+>
> }
>
> @depends on change@
> identifier FUNC;
> @@
> FUNC(...)
> {
> + igt_crtc_t *crtc;
> <+...
> for_each_crtc_with_single_output(...) { ... }
> ...+>
> }
>
> @depends on change@
> identifier FUNC, PIPE;
> expression E;
> @@
> FUNC(...)
> {
> ...
> (
> - enum pipe PIPE;
> |
> - enum pipe PIPE = E;
> )
> ... when != PIPE
> }
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> tests/kms_atomic.c | 147 ++++++++++++++++++++++-------------------
> tests/kms_cursor_crc.c | 86 +++++++++++++-----------
> 2 files changed, 128 insertions(+), 105 deletions(-)
>
> diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
> index c78b6b7d7e8b..fa321cc3c7a1 100644
> --- a/tests/kms_atomic.c
> +++ b/tests/kms_atomic.c
> @@ -1455,7 +1455,7 @@ static const char *help_str =
>
> int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> {
> - enum pipe pipe = PIPE_NONE;
> + igt_crtc_t *crtc;
> igt_output_t *output = NULL;
> data_t data = { 0 };
>
> @@ -1470,20 +1470,21 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> igt_describe("Test for KMS atomic modesetting on overlay plane and ensure coherency between "
> "the legacy and atomic interfaces.");
> igt_subtest_with_dynamic("plane-overlay-legacy") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> igt_plane_t *overlay =
> - igt_crtc_get_plane_type(igt_crtc_for_pipe(&data.display, pipe),
> + igt_crtc_get_plane_type(crtc,
> DRM_PLANE_TYPE_OVERLAY);
> uint32_t format = plane_get_igt_format(overlay);
>
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> if (!overlay || !format)
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> plane_overlay(&data, output, overlay, format);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1493,13 +1494,14 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> igt_describe("Test for KMS atomic modesetting on primary plane and ensure coherency between "
> "the legacy and atomic interfaces.");
> igt_subtest_with_dynamic("plane-primary-legacy") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> plane_primary(&data);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1509,15 +1511,15 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> igt_describe("Verify that the overlay plane can cover the primary one (and "\
> "vice versa) by changing their zpos property.");
> igt_subtest_with_dynamic("plane-primary-overlay-mutable-zpos") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> igt_plane_t *overlay =
> - igt_crtc_get_plane_type(igt_crtc_for_pipe(&data.display, pipe),
> + igt_crtc_get_plane_type(crtc,
> DRM_PLANE_TYPE_OVERLAY);
>
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
>
> - atomic_setup(&data, pipe, output);
> + atomic_setup(&data, crtc->pipe, output);
> if (!overlay)
> continue;
> if (!has_mutable_zpos(data.primary) || !has_mutable_zpos(overlay))
> @@ -1525,10 +1527,11 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> if (!igt_plane_has_format_mod(data.primary, DRM_FORMAT_ARGB8888, 0x0) ||
> !igt_plane_has_format_mod(overlay, DRM_FORMAT_ARGB1555, 0x0))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> plane_primary_overlay_mutable_zpos(&data, output, overlay,
> DRM_FORMAT_ARGB8888, DRM_FORMAT_ARGB1555);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1538,17 +1541,19 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> igt_describe("Verify the reported zpos property of planes by making sure "\
> "only higher zpos planes cover the lower zpos ones.");
> igt_subtest_with_dynamic("plane-immutable-zpos") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - int n_planes = igt_crtc_for_pipe(&data.display, pipe)->n_planes;
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + int n_planes = crtc->n_planes;
>
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> if (n_planes < 2)
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> - plane_immutable_zpos(&data, output, pipe, n_planes);
> - atomic_clear(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> + plane_immutable_zpos(&data, output,
> + crtc->pipe, n_planes);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1558,20 +1563,21 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> igt_describe("Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches "
> "the free-standing state objects and nothing else.");
> igt_subtest_with_dynamic("test-only") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> uint32_t format;
>
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
>
> - atomic_setup(&data, pipe, output);
> + atomic_setup(&data, crtc->pipe, output);
> format = plane_get_igt_format(data.primary);
>
> if (!format)
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_clear(&data, pipe, output);
> - test_only(&data, output, pipe, format);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_clear(&data, crtc->pipe, output);
> + test_only(&data, output, crtc->pipe, format);
> }
> if (!all_pipes)
> break;
> @@ -1581,19 +1587,20 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> igt_describe("Test for KMS atomic modesetting on cursor plane and ensure coherency between "
> "legacy and atomic interfaces.");
> igt_subtest_with_dynamic("plane-cursor-legacy") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> igt_plane_t *cursor =
> - igt_crtc_get_plane_type(igt_crtc_for_pipe(&data.display, pipe),
> + igt_crtc_get_plane_type(crtc,
> DRM_PLANE_TYPE_CURSOR);
>
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> if (!cursor)
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> plane_cursor(&data, output, cursor);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1602,13 +1609,14 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
> igt_describe("Test error handling when invalid plane parameters are passed");
> igt_subtest_with_dynamic("plane-invalid-params") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> plane_invalid_params(&data, output);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1617,13 +1625,14 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
> igt_describe("Test error handling when invalid plane fence parameters are passed");
> igt_subtest_with_dynamic("plane-invalid-params-fence") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> plane_invalid_params_fence(&data, output);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1632,13 +1641,14 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
> igt_describe("Test error handling when invalid crtc parameters are passed");
> igt_subtest_with_dynamic("crtc-invalid-params") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> crtc_invalid_params(&data, output);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1647,13 +1657,14 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
> igt_describe("Test error handling when invalid crtc fence parameters are passed");
> igt_subtest_with_dynamic("crtc-invalid-params-fence") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> crtc_invalid_params_fence(&data, output);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1664,13 +1675,14 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
> "various invalid conditions which the libdrm wrapper won't "
> "allow us to create.");
> igt_subtest_with_dynamic("atomic-invalid-params") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> - atomic_setup(&data, pipe, output);
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> + atomic_setup(&data, crtc->pipe, output);
> atomic_invalid_params(&data, output);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> @@ -1679,17 +1691,18 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
> igt_describe("Simple test cases to use FB_DAMAGE_CLIPS plane property");
> igt_subtest_with_dynamic("atomic-plane-damage") {
> - for_each_pipe_with_single_output(&data.display, pipe, output) {
> - if (!pipe_output_combo_valid(&data.display, pipe, output))
> + for_each_crtc_with_single_output(&data.display, crtc, output) {
> + if (!pipe_output_combo_valid(&data.display, crtc->pipe, output))
> continue;
>
> - atomic_setup(&data, pipe, output);
> + atomic_setup(&data, crtc->pipe, output);
>
> if (!igt_plane_has_prop(data.primary, IGT_PLANE_FB_DAMAGE_CLIPS))
> continue;
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
> + igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc),
> + igt_output_name(output)) {
> atomic_plane_damage(&data);
> - atomic_clear(&data, pipe, output);
> + atomic_clear(&data, crtc->pipe, output);
> }
> if (!all_pipes)
> break;
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
> index 4dcf63025687..10e51b457a15 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -959,7 +959,7 @@ static void test_size_hints(data_t *data)
>
> static void run_size_tests(data_t *data, int w, int h)
> {
> - enum pipe pipe;
> + igt_crtc_t *crtc;
> struct {
> const char *name;
> void (*testfunc)(data_t *);
> @@ -1006,11 +1006,12 @@ static void run_size_tests(data_t *data, int w, int h)
> }
> }
>
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
>
> if (!valid_pipe_output_combo(data))
> continue;
> @@ -1021,7 +1022,8 @@ static void run_size_tests(data_t *data, int w, int h)
> }
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe), igt_output_name(data->output))
> + igt_crtc_name(crtc),
> + igt_output_name(data->output))
> run_test(data, size_tests[i].testfunc, w, h);
> }
> }
> @@ -1033,7 +1035,7 @@ static void run_size_tests(data_t *data, int w, int h)
>
> static void run_tests_on_pipe(data_t *data)
> {
> - enum pipe pipe;
> + igt_crtc_t *crtc;
> int cursor_size;
>
> igt_fixture() {
> @@ -1045,17 +1047,18 @@ static void run_tests_on_pipe(data_t *data)
> "flight to smaller ones to see that the size is applied "
> "correctly.");
> igt_subtest_with_dynamic("cursor-size-change") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_cursor_size,
> data->cursor_max_w, data->cursor_max_h);
> @@ -1065,17 +1068,18 @@ static void run_tests_on_pipe(data_t *data)
> igt_describe("Validates the composition of a fully opaque cursor "
> "plane, i.e., alpha channel equal to 1.0.");
> igt_subtest_with_dynamic("cursor-alpha-opaque") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_cursor_opaque,
> data->cursor_max_w, data->cursor_max_h);
> @@ -1085,17 +1089,18 @@ static void run_tests_on_pipe(data_t *data)
> igt_describe("Validates the composition of a fully transparent cursor "
> "plane, i.e., alpha channel equal to 0.0.");
> igt_subtest_with_dynamic("cursor-alpha-transparent") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_cursor_transparent,
> data->cursor_max_w, data->cursor_max_h);
> @@ -1114,17 +1119,18 @@ static void run_tests_on_pipe(data_t *data)
>
> igt_describe("Validate cursor updates don't cause tearing with framebuffer changes");
> igt_subtest_with_dynamic("cursor-tearing-framebuffer-change") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_crc_cursors,
> data->cursor_max_w, data->cursor_max_h);
> @@ -1133,17 +1139,18 @@ static void run_tests_on_pipe(data_t *data)
>
> igt_describe("Validate cursor updates don't cause tearing with position changes");
> igt_subtest_with_dynamic("cursor-tearing-position-change") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_crc_pos_cursors,
> data->cursor_max_w, data->cursor_max_h);
> @@ -1159,18 +1166,19 @@ static void run_tests_on_pipe(data_t *data)
>
> igt_describe("Check random placement of a cursor with DPMS.");
> igt_subtest_with_dynamic("cursor-dpms") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
> data->flags = TEST_DPMS;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_crc_random,
> data->cursor_max_w, data->cursor_max_h);
> @@ -1180,18 +1188,19 @@ static void run_tests_on_pipe(data_t *data)
>
> igt_describe("Check random placement of a cursor with suspend.");
> igt_subtest_with_dynamic("cursor-suspend") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
> data->flags = TEST_SUSPEND;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_crc_random,
> data->cursor_max_w, data->cursor_max_h);
> @@ -1204,17 +1213,18 @@ static void run_tests_on_pipe(data_t *data)
>
> igt_describe("Check that sizes declared in SIZE_HINTS are accepted.");
> igt_subtest_with_dynamic("cursor-size-hints") {
> - for_each_pipe_with_single_output(&data->display, pipe, data->output) {
> - if (execution_constraint(pipe))
> + for_each_crtc_with_single_output(&data->display, crtc,
> + data->output) {
> + if (execution_constraint(crtc->pipe))
> continue;
>
> - data->pipe = pipe;
> + data->pipe = crtc->pipe;
>
> if (!valid_pipe_output_combo(data))
> continue;
>
> igt_dynamic_f("pipe-%s-%s",
> - kmstest_pipe_name(pipe),
> + igt_crtc_name(crtc),
> data->output->name)
> run_test(data, test_size_hints,
> data->cursor_max_w, data->cursor_max_h);
--
Jani Nikula, Intel
next prev parent reply other threads:[~2026-01-30 14:22 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-30 10:52 [PATCH i-g-t 00/15] lib/kms: Start introducing for_each_crtc*() Ville Syrjala
2026-01-30 10:52 ` [PATCH i-g-t 01/15] lib/kms: Introduce for_each_crtc*() Ville Syrjala
2026-01-30 13:38 ` Jani Nikula
2026-01-30 15:36 ` Ville Syrjälä
2026-02-02 11:10 ` Jani Nikula
2026-02-02 15:31 ` Ville Syrjälä
2026-01-30 10:52 ` [PATCH i-g-t 02/15] tests/drm_read: Use for_each_crtc*() Ville Syrjala
2026-01-30 13:39 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 03/15] tests/kms_plane_scaling: " Ville Syrjala
2026-01-30 12:03 ` Jani Nikula
2026-01-30 15:41 ` Ville Syrjälä
2026-02-02 11:04 ` Jani Nikula
2026-01-30 14:07 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 04/15] tests/kms_color: Convert to for_each_crtc*() Ville Syrjala
2026-01-30 14:08 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 05/15] tests/intel/kms_pm_dc: Use for_each_crtc*() Ville Syrjala
2026-01-30 14:10 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 06/15] tests/kms_rotation_crc: " Ville Syrjala
2026-01-30 14:11 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 07/15] lib/kms: Use for_each_crtc_with_single_output() and for_each_crtc() Ville Syrjala
2026-01-30 14:15 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 08/15] lib/kms: Use for_each_crtc_with_single_output(), part 1 Ville Syrjala
2026-01-30 14:16 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 09/15] lib/kms: Use for_each_crtc_with_single_output(), part 2 Ville Syrjala
2026-01-30 14:19 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 10/15] lib/kms: Use for_each_crtc_with_single_output(), part 3 Ville Syrjala
2026-01-30 14:22 ` Jani Nikula [this message]
2026-01-30 10:52 ` [PATCH i-g-t 11/15] lib/kms: Use for_each_crtc_with_valid_output(), part 1 Ville Syrjala
2026-01-30 14:24 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 12/15] lib/kms: Use for_each_crtc_with_valid_output(), part 2 Ville Syrjala
2026-01-30 14:26 ` Jani Nikula
2026-02-02 15:38 ` [PATCH i-g-t v2 " Ville Syrjala
2026-01-30 10:52 ` [PATCH i-g-t 13/15] lib/kms: Use for_each_crtc_with_valid_output(), part 3 Ville Syrjala
2026-01-30 14:27 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 14/15] lib/kms: Use for_each_crtc_with_valid_output(), part 4 Ville Syrjala
2026-01-30 14:30 ` Jani Nikula
2026-01-30 10:52 ` [PATCH i-g-t 15/15] lib/kms: Nuke for_each_pipe_with_*_output() Ville Syrjala
2026-01-30 14:35 ` Jani Nikula
2026-02-03 2:58 ` ✓ i915.CI.BAT: success for lib/kms: Start introducing for_each_crtc*() (rev2) Patchwork
2026-02-03 3:12 ` ✓ Xe.CI.BAT: " Patchwork
2026-02-03 13:48 ` ✗ i915.CI.Full: failure " Patchwork
2026-02-03 14:33 ` ✗ 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=df7638bae4dd227eb5b16a524bb3e478071dca2a@intel.com \
--to=jani.nikula@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=ville.syrjala@linux.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.