[igt-dev] [PATCH i-g-t v5] tests/kms_plane_cursor: Handle invalid pipe in big joiner
Nidhi Gupta
nidhi1.gupta at intel.com
Thu Aug 17 14:36:21 UTC 2023
If any pipe is invalid in big joiner currently test throws
as skip for all the pipes as it is within the dynamic subtest
block.
Fixed in IGT by not executing the subtest if valid combo of pipe
and output not found for big joiner and go on to check for the
next pipe.
v2: Fix commit subject and message (Bhanu)
Fix nitpicks (Bhanu)
v3: Have pipe/output valid combo before checking
for big joiner for the pipe. (Bhanu)
v4: Move igt_display_reset (Bhanu)
Signed-off-by: Nidhi Gupta <nidhi1.gupta at intel.com>
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
---
tests/kms_plane_cursor.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c
index 77e1f7987..319a8ecaa 100644
--- a/tests/kms_plane_cursor.c
+++ b/tests/kms_plane_cursor.c
@@ -102,23 +102,16 @@ typedef struct data {
/* Common test setup. */
static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output)
{
- igt_display_t *display = &data->display;
-
data->pipe_id = pipe_id;
data->pipe = &data->display.pipes[data->pipe_id];
data->output = output;
- igt_display_reset(display);
-
data->mode = igt_output_get_mode(data->output);
data->primary = igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
data->overlay = igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_OVERLAY);
data->cursor = igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_CURSOR);
- igt_output_set_pipe(data->output, data->pipe_id);
- igt_require(i915_pipe_output_combo_valid(display));
-
igt_info("Using (pipe %s + %s) to run the subtest.\n",
kmstest_pipe_name(data->pipe_id), igt_output_name(data->output));
@@ -300,6 +293,7 @@ igt_main
data_t data = { .max_curw = 64, .max_curh = 64 };
enum pipe pipe;
igt_output_t *output;
+ igt_display_t *display;
int i, j;
struct {
const char *name;
@@ -330,6 +324,7 @@ igt_main
igt_display_require(&data.display, data.drm_fd);
igt_require(data.display.is_atomic);
igt_display_require_output(&data.display);
+ display = &data.display;
}
for (i = 0; i < ARRAY_SIZE(tests); i++) {
@@ -341,6 +336,12 @@ igt_main
DRM_PLANE_TYPE_OVERLAY))
continue;
+ igt_display_reset(display);
+
+ igt_output_set_pipe(output, pipe);
+ if (!i915_pipe_output_combo_valid(display))
+ continue;
+
test_init(&data, pipe, output);
for (j = 0; j < ARRAY_SIZE(cursor_sizes); j++) {
--
2.25.1
More information about the igt-dev
mailing list