Re: [igt-dev] [i-g-t v5 05/52] tests/kms_atomic_interruptible: Add support for Bigjoiner

Gupta, Nidhi1
2022-12-26T20:12:37Z

On Tue, 2022-11-15 at 08:43 +0530, Bhanuprakash Modem wrote:
>This patch will add a check to Skip the subtest if a selected
>pipe/output combo won't support Bigjoiner or 8K mode.
>
>Example:
>* Pipe-D wont support a mode > 5K
>* To use 8K mode on a pipe then consecutive pipe must be available & free.
>
>V2: - Use updated helper name
>
>Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
tests/kms_atomic_interruptible.c | 40 ++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
>diff --git a/tests/kms_atomic_interruptible.c
>b/tests/kms_atomic_interruptible.c
>index f461a15c..74b2e246 100644
>--- a/tests/kms_atomic_interruptible.c
>+++ b/tests/kms_atomic_interruptible.c
>@@ -82,11 +82,15 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
> igt_plane_t *primary, *plane;
> int block;
>
>+ igt_info("Using (pipe %s + %s) to run the subtest.\n",
>+ kmstest_pipe_name(pipe), igt_output_name(output));
>+
> /*
> * Make sure we start with everything disabled to force a real modeset.
> * igt_display_require only sets sw state, and assumes the first test
> * doesn't care about hw state.
> */
>+ igt_display_reset(display);
> igt_display_commit2(display, COMMIT_ATOMIC);
>
> igt_output_set_pipe(output, pipe);
>@@ -265,6 +269,21 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
> igt_remove_fb(display->drm_fd, &fb);
> }
>
>+static bool pipe_output_combo_valid(igt_display_t *display,
>+ enum pipe pipe, igt_output_t *output) {
>+ bool ret = true;
>+
>+ igt_display_reset(display);
>+
>+ igt_output_set_pipe(output, pipe);
>+ if (!i915_pipe_output_combo_valid(display))
>+ ret = false;
>+ igt_output_set_pipe(output, PIPE_NONE);
>+
>+ return ret;
>+}
>+
>igt_main
>{
> igt_display_t display;
>@@ -286,6 +305,9 @@ igt_main
> igt_describe("Tests the interrupt properties of legacy modeset");
> igt_subtest_with_dynamic("legacy-setmode") {
> for_each_pipe_with_valid_output(&display, pipe, output) {
>+ if (!pipe_output_combo_valid(&display, pipe, output))
>+ continue;
>+
> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> run_plane_test(&display, pipe, output, test_legacy_modeset, DRM_PLANE_TYPE_PRIMARY);
> break;
>@@ -295,6 +317,9 @@ igt_main
> igt_describe("Tests the interrupt properties of atomic modeset");
> igt_subtest_with_dynamic("atomic-setmode") {
> for_each_pipe_with_valid_output(&display, pipe, output) {
>+ if (!pipe_output_combo_valid(&display, pipe, output))
>+ continue;
>+
> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> run_plane_test(&display, pipe, output, test_atomic_modeset, DRM_PLANE_TYPE_PRIMARY);
> break;
>@@ -304,6 +329,9 @@ igt_main
> igt_describe("Tests the interrupt properties for DPMS");
> igt_subtest_with_dynamic("legacy-dpms") {
> for_each_pipe_with_valid_output(&display, pipe, output) {
>+ if (!pipe_output_combo_valid(&display, pipe, output))
>+ continue;
>+
> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> run_plane_test(&display, pipe, output, test_legacy_dpms, DRM_PLANE_TYPE_PRIMARY);
> break;
>@@ -313,6 +341,9 @@ igt_main
> igt_describe("Tests the interrupt properties for pageflip");
> igt_subtest_with_dynamic("legacy-pageflip") {
> for_each_pipe_with_valid_output(&display, pipe, output) {
>+ if (!pipe_output_combo_valid(&display, pipe, output))
>+ continue;
>+
> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> run_plane_test(&display, pipe, output, test_pageflip, DRM_PLANE_TYPE_PRIMARY);
> break;
>@@ -322,6 +353,9 @@ igt_main
> igt_describe("Tests the interrupt properties for cursor");
> igt_subtest_with_dynamic("legacy-cursor") {
> for_each_pipe_with_valid_output(&display, pipe, output) {
>+ if (!pipe_output_combo_valid(&display, pipe, output))
>+ continue;
>+
> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> run_plane_test(&display, pipe, output, test_setcursor, DRM_PLANE_TYPE_CURSOR);
> break;
>@@ -331,6 +365,9 @@ igt_main
> igt_describe("Tests the interrupt properties for primary plane");
> igt_subtest_with_dynamic("universal-setplane-primary") {
> for_each_pipe_with_valid_output(&display, pipe, output) {
>+ if (!pipe_output_combo_valid(&display, pipe, output))
>+ continue;
>+
> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> run_plane_test(&display, pipe, output, test_setplane, DRM_PLANE_TYPE_PRIMARY);
> break;
>@@ -340,6 +377,9 @@ igt_main
> igt_describe("Tests the interrupt properties for cursor plane");
> igt_subtest_with_dynamic("universal-setplane-cursor") {
> for_each_pipe_with_valid_output(&display, pipe, output) {
>+ if (!pipe_output_combo_valid(&display, pipe, output))
>+ continue;
>+
> igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> run_plane_test(&display, pipe, output, test_setplane, DRM_PLANE_TYPE_CURSOR);
> break;