From eeff390598f6bf7292a9775cc6c470207f90a128 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Mon, 19 Jan 2015 15:43:57 +0200 Subject: kms_plane: Add test that suspends/resumes before getting crc This adds a test that does a suspend/resume cycle between configuring a plane and getting the crc value for the pipe. The intention is to test if the user requested stated is restored properly, instead of being clobbered by the state read out from the hardware. Signed-off-by: Ander Conselvan de Oliveira Signed-off-by: Daniel Vetter --- tests/kms_plane.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'tests/kms_plane.c') diff --git a/tests/kms_plane.c b/tests/kms_plane.c index 5aa58c41..c94eac05 100644 --- a/tests/kms_plane.c +++ b/tests/kms_plane.c @@ -32,6 +32,7 @@ #include "drmtest.h" #include "igt_debugfs.h" #include "igt_kms.h" +#include "igt_aux.h" typedef struct { float red; @@ -269,6 +270,7 @@ create_fb_for_mode__panning(data_t *data, drmModeModeInfo *mode, enum { TEST_PANNING_TOP_LEFT = 1 << 0, TEST_PANNING_BOTTOM_RIGHT = 1 << 1, + TEST_SUSPEND_RESUME = 1 << 2, }; static void @@ -309,8 +311,13 @@ test_plane_panning_with_output(data_t *data, igt_display_commit(&data->display); + if (flags & TEST_SUSPEND_RESUME) + igt_system_suspend_autoresume(); + igt_pipe_crc_collect_crc(data->pipe_crc, &crc); + igt_debug_wait_for_keypress("crc"); + if (flags & TEST_PANNING_TOP_LEFT) igt_assert(igt_crc_equal(&test.red_crc, &crc)); else @@ -360,6 +367,11 @@ run_tests_for_pipe_plane(data_t *data, enum pipe pipe, enum igt_plane plane) test_plane_panning(data, pipe, plane, TEST_PANNING_BOTTOM_RIGHT); + igt_subtest_f("plane-panning-bottom-right-suspend-pipe-%s-plane-%d", + kmstest_pipe_name(pipe), plane) + test_plane_panning(data, pipe, plane, + TEST_PANNING_BOTTOM_RIGHT | + TEST_SUSPEND_RESUME); } static void -- cgit v1.2.3