summaryrefslogtreecommitdiff
path: root/tests/i915/kms_flip_tiling.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2021-10-13 21:14:04 +0300
committerVille Syrjälä <ville.syrjala@linux.intel.com>2021-10-18 16:54:27 +0300
commitf4df3a41ff1c04dfe049b78bd108110ba72f42a7 (patch)
tree5c038e3c7db0f274db84d6fb1099bee1e06519e1 /tests/i915/kms_flip_tiling.c
parent43c17ecf6a7185a2d0232d67c2a18539c5ba98a1 (diff)
tests/i915/kms_flip_tiling: Stick pipe_crc into data_t
Dunno why the pipe_crc has its own variable visible throughout the whole file. Just stuff it into data_t where everything else lives. Reviewed-by: Karthik B S <karthik.b.s@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'tests/i915/kms_flip_tiling.c')
-rw-r--r--tests/i915/kms_flip_tiling.c36
1 files changed, 15 insertions, 21 deletions
diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index 40dad427..56b787c1 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -39,29 +39,24 @@ typedef struct {
int gen;
uint32_t testformat;
struct igt_fb fb[2];
+ igt_pipe_crc_t *pipe_crc;
} data_t;
-static igt_pipe_crc_t *_pipe_crc;
-
-static igt_pipe_crc_t *pipe_crc_new(data_t *data, int pipe)
+static void pipe_crc_free(data_t *data)
{
- if (_pipe_crc) {
- igt_pipe_crc_free(_pipe_crc);
- _pipe_crc = NULL;
- }
-
- _pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
- igt_assert(_pipe_crc);
+ if (!data->pipe_crc)
+ return;
- return _pipe_crc;
+ igt_pipe_crc_free(data->pipe_crc);
+ data->pipe_crc = NULL;
}
-static void pipe_crc_free(void)
+static void pipe_crc_new(data_t *data, int pipe)
{
- if (_pipe_crc) {
- igt_pipe_crc_free(_pipe_crc);
- _pipe_crc = NULL;
- }
+ pipe_crc_free(data);
+
+ data->pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
+ igt_assert(data->pipe_crc);
}
static int try_commit(igt_display_t *display)
@@ -75,11 +70,10 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
{
drmModeModeInfo *mode;
igt_plane_t *primary;
- igt_pipe_crc_t *pipe_crc;
igt_crc_t reference_crc, crc;
int fb_id, ret;
- pipe_crc = pipe_crc_new(data, pipe);
+ pipe_crc_new(data, pipe);
igt_output_set_pipe(output, pipe);
mode = igt_output_get_mode(output);
@@ -104,7 +98,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
igt_require_f(try_commit(&data->display) == 0,
"commit failed with " IGT_MODIFIER_FMT "\n",
IGT_MODIFIER_ARGS(modifier[1]));
- igt_pipe_crc_collect_crc(pipe_crc, &reference_crc);
+ igt_pipe_crc_collect_crc(data->pipe_crc, &reference_crc);
/* Commit the first fb. */
igt_plane_set_fb(primary, &data->fb[0]);
@@ -124,7 +118,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
kmstest_wait_for_pageflip(data->drm_fd);
/* Get a crc and compare with the reference. */
- igt_pipe_crc_collect_crc(pipe_crc, &crc);
+ igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
igt_assert_crc_equal(&reference_crc, &crc);
}
@@ -135,7 +129,7 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
/* Clean up. */
igt_plane_set_fb(primary, NULL);
- pipe_crc_free();
+ pipe_crc_free(data);
igt_output_set_pipe(output, PIPE_ANY);
igt_display_commit(&data->display);