summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/kms_psr_sink_crc.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index a2960427..928552fb 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -525,6 +525,15 @@ static void setup_test_plane(data_t *data)
igt_display_commit(&data->display);
}
+static void dpms_off_on(data_t data)
+{
+ kmstest_set_connector_dpms(data.drm_fd, data.output->config.connector,
+ DRM_MODE_DPMS_OFF);
+ sleep(1);
+ kmstest_set_connector_dpms(data.drm_fd, data.output->config.connector,
+ DRM_MODE_DPMS_ON);
+}
+
static int opt_handler(int opt, int opt_index)
{
switch (opt) {
@@ -600,6 +609,30 @@ int main(int argc, char *argv[])
}
}
+ igt_subtest_f("dpms_off_psr_active") {
+ data.test_plane = PRIMARY;
+ data.op = RENDER;
+ setup_test_plane(&data);
+ igt_assert(wait_psr_entry(&data));
+
+ dpms_off_on(data);
+
+ run_test(&data);
+ test_cleanup(&data);
+ }
+
+ igt_subtest_f("dpms_off_psr_exit") {
+ data.test_plane = SPRITE;
+ data.op = PLANE_ONOFF;
+ setup_test_plane(&data);
+
+ dpms_off_on(data);
+
+ igt_assert(wait_psr_entry(&data));
+ run_test(&data);
+ test_cleanup(&data);
+ }
+
igt_fixture {
drm_intel_bufmgr_destroy(data.bufmgr);
display_fini(&data);