[PATCH i-g-t v5 09/17] tests/kms_vblank: split outer test loop into two
From: Michał Grzelak <hidden>
Date: 2026-09-10 20:22:59
Subsystem:
the rest · Maintainer:
Linus Torvalds
for_each_crtc_with_valid_output() iterates over every crtc with connected output. Split it into two loops. This is needed to handle cases per output. Signed-off-by: Michał Grzelak <redacted> Reviewed-by: Mohammed Thasleem <redacted> --- tests/kms_vblank.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-)
diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
index 7fb7de0a70..47b733af15 100644
--- a/tests/kms_vblank.c
+++ b/tests/kms_vblank.c@@ -515,25 +515,28 @@ static void run_subtests(data_t *data) igt_describe("Check if test run while hanging by introducing NOHANG flag."); igt_subtest_with_dynamic_f("%s-%s", f->name, m->name) { - for_each_crtc_with_valid_output(&data->display, - crtc, - data->output) { - data->crtc = crtc; - if (!crtc_output_combo_valid(&data->display, crtc, data->output)) - continue; - - if (!all_pipes && crtc->crtc_index != active_crtcs[0] && - crtc->crtc_index != active_crtcs[last_crtc_index]) { - igt_info("Skipping pipe %s\n", - igt_crtc_name(crtc)); - continue; - } - - igt_dynamic_f("pipe-%s-%s", - igt_crtc_name(crtc), - data->output->name) { - data->flags = m->flags | NOHANG; - run_test(data, f->func); + for_each_connected_output(&data->display, data->output) { + for_each_crtc(&data->display, crtc) { + if(!igt_crtc_connector_valid(crtc, data->output)) + continue; + + data->crtc = crtc; + if (!crtc_output_combo_valid(&data->display, crtc, data->output)) + continue; + + if (!all_pipes && crtc->crtc_index != active_crtcs[0] && + crtc->crtc_index != active_crtcs[last_crtc_index]) { + igt_info("Skipping pipe %s\n", + igt_crtc_name(crtc)); + continue; + } + + igt_dynamic_f("pipe-%s-%s", + igt_crtc_name(crtc), + data->output->name) { + data->flags = m->flags | NOHANG; + run_test(data, f->func); + } } } }
--
2.45.2