summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>2015-01-19 15:43:57 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-01-20 11:36:10 +0100
commiteeff390598f6bf7292a9775cc6c470207f90a128 (patch)
tree0d265d183bbdc2af9d065f2bde83fe38c04aa82b
parenta29f28eba975388aed43c83dd6ed3ec2a869f4ce (diff)
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 <ander.conselvan.de.oliveira@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--tests/kms_plane.c12
1 files changed, 12 insertions, 0 deletions
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