summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2016-09-30 17:28:53 +0300
committerImre Deak <imre.deak@intel.com>2016-10-13 15:08:55 +0300
commit022e6f8ae7c853e221eb9d8344cf1aa27c5fbe57 (patch)
treeea9d7a00ee3e675c3ae5fbd5063572bc816dc352 /tests
parente442481c9cf35a1c509b836cf076bae597296200 (diff)
lib/igt_aux: Add support for various system suspend/resume options
To have a more accurate idea about any suspend/resume issues we can perform the s/r until various phases in the s/r sequence. This way we can isolate the given problem as being a device driver, kernel core or BIOS related issue. Actual subtests using these new s/r phases will be added as follow-up. While at it also add the freeze suspend target, it's something we also would need to test. Signed-off-by: Imre Deak <imre.deak@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/drv_suspend.c24
-rw-r--r--tests/gem_exec_suspend.c6
-rw-r--r--tests/gem_mocs_settings.c24
-rw-r--r--tests/gem_ringfill.c6
-rw-r--r--tests/gem_softpin.c6
-rw-r--r--tests/gem_stolen.c2
-rw-r--r--tests/gem_workarounds.c2
-rw-r--r--tests/kms_cursor_crc.c3
-rw-r--r--tests/kms_fbcon_fbt.c6
-rw-r--r--tests/kms_flip.c3
-rw-r--r--tests/kms_frontbuffer_tracking.c4
-rw-r--r--tests/kms_pipe_crc_basic.c3
-rw-r--r--tests/kms_plane.c3
-rw-r--r--tests/kms_psr_sink_crc.c6
-rw-r--r--tests/pm_rpm.c6
15 files changed, 67 insertions, 37 deletions
diff --git a/tests/drv_suspend.c b/tests/drv_suspend.c
index 601a32ea..0a459e30 100644
--- a/tests/drv_suspend.c
+++ b/tests/drv_suspend.c
@@ -77,9 +77,11 @@ test_fence_restore(int fd, bool tiled2untiled, bool hibernate)
gem_set_tiling(fd, handle_tiled, I915_TILING_X, 2048);
if (hibernate)
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
else
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
igt_info("checking the first canary object\n");
for (i = 0; i < OBJECT_SIZE/sizeof(uint32_t); i++)
@@ -117,9 +119,11 @@ test_debugfs_reader(bool hibernate)
sleep(1);
if (hibernate)
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
else
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
sleep(1);
@@ -145,9 +149,11 @@ test_sysfs_reader(bool hibernate)
sleep(1);
if (hibernate)
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
else
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
sleep(1);
@@ -163,9 +169,11 @@ test_forcewake(bool hibernate)
igt_assert_lte(0, fw_fd);
if (hibernate)
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
else
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
close (fw_fd);
}
diff --git a/tests/gem_exec_suspend.c b/tests/gem_exec_suspend.c
index a45082ea..b953afb4 100644
--- a/tests/gem_exec_suspend.c
+++ b/tests/gem_exec_suspend.c
@@ -206,11 +206,13 @@ static void run_test(int fd, unsigned engine, unsigned flags)
break;
case SUSPEND:
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
break;
case HIBERNATE:
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
break;
}
diff --git a/tests/gem_mocs_settings.c b/tests/gem_mocs_settings.c
index 2b857496..7c7a9af4 100644
--- a/tests/gem_mocs_settings.c
+++ b/tests/gem_mocs_settings.c
@@ -384,8 +384,10 @@ static void default_context_tests(unsigned mode)
switch (mode) {
case NONE: break;
case RESET: igt_force_gpu_reset(); break;
- case SUSPEND: igt_system_suspend_autoresume(); break;
- case HIBERNATE: igt_system_hibernate_autoresume(); break;
+ case SUSPEND: igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE); break;
+ case HIBERNATE: igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE); break;
}
test_mocs_values(fd);
@@ -423,8 +425,10 @@ static void default_dirty_tests(unsigned mode)
switch (mode) {
case NONE: break;
case RESET: igt_force_gpu_reset(); break;
- case SUSPEND: igt_system_suspend_autoresume(); break;
- case HIBERNATE: igt_system_hibernate_autoresume(); break;
+ case SUSPEND: igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE); break;
+ case HIBERNATE: igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE); break;
}
close(fd);
@@ -446,8 +450,10 @@ static void context_save_restore_test(unsigned mode)
switch (mode) {
case NONE: break;
case RESET: igt_force_gpu_reset(); break;
- case SUSPEND: igt_system_suspend_autoresume(); break;
- case HIBERNATE: igt_system_hibernate_autoresume(); break;
+ case SUSPEND: igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE); break;
+ case HIBERNATE: igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE); break;
}
check_control_registers(fd, I915_EXEC_RENDER, ctx_id, false);
@@ -489,8 +495,10 @@ static void context_dirty_test(unsigned mode)
switch (mode) {
case NONE: break;
case RESET: igt_force_gpu_reset(); break;
- case SUSPEND: igt_system_suspend_autoresume(); break;
- case HIBERNATE: igt_system_hibernate_autoresume(); break;
+ case SUSPEND: igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE); break;
+ case HIBERNATE: igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE); break;
}
check_control_registers(fd, I915_EXEC_RENDER, ctx_id, true);
diff --git a/tests/gem_ringfill.c b/tests/gem_ringfill.c
index 8047042b..eff0775a 100644
--- a/tests/gem_ringfill.c
+++ b/tests/gem_ringfill.c
@@ -175,10 +175,12 @@ static void run_test(int fd, unsigned ring, unsigned flags)
fill_ring(fd, &execbuf, flags);
if (flags & SUSPEND)
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
if (flags & HIBERNATE)
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
igt_waitchildren();
} else
diff --git a/tests/gem_softpin.c b/tests/gem_softpin.c
index cac46694..ea162c86 100644
--- a/tests/gem_softpin.c
+++ b/tests/gem_softpin.c
@@ -451,10 +451,12 @@ static void test_noreloc(int fd, enum sleep sleep)
case NOSLEEP:
break;
case SUSPEND:
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
break;
case HIBERNATE:
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK,
+ SUSPEND_TEST_NONE);
break;
}
}
diff --git a/tests/gem_stolen.c b/tests/gem_stolen.c
index 7d329dd4..1d489976 100644
--- a/tests/gem_stolen.c
+++ b/tests/gem_stolen.c
@@ -359,7 +359,7 @@ static void stolen_hibernate(int fd)
drm_intel_bo_unreference(src);
- igt_system_hibernate_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_DISK, SUSPEND_TEST_NONE);
/* Check if the object's memory contents are intact
* across hibernation.
*/
diff --git a/tests/gem_workarounds.c b/tests/gem_workarounds.c
index d15cf913..e512dd3d 100644
--- a/tests/gem_workarounds.c
+++ b/tests/gem_workarounds.c
@@ -60,7 +60,7 @@ static void test_hang_gpu(void)
static void test_suspend_resume(void)
{
igt_info("Suspending the device ...\n");
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
}
static int workaround_fail_count(void)
diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index d1de4501..926579d6 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -140,7 +140,8 @@ static void do_single_test(data_t *data, int x, int y)
}
if (data->flags & TEST_SUSPEND)
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
igt_pipe_crc_collect_crc(pipe_crc, &crc_after);
igt_assert_crc_equal(&crc, &crc_after);
diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
index 586cdf57..6342289f 100644
--- a/tests/kms_fbcon_fbt.c
+++ b/tests/kms_fbcon_fbt.c
@@ -217,7 +217,8 @@ static void subtest(struct feature *feature, bool suspend)
igt_assert(feature->wait_until_enabled());
if (suspend) {
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
sleep(5);
igt_assert(feature->wait_until_enabled());
}
@@ -232,7 +233,8 @@ static void subtest(struct feature *feature, bool suspend)
igt_assert(!feature->wait_until_enabled());
if (suspend) {
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
sleep(5);
igt_assert(!feature->wait_until_enabled());
}
diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 065ad66f..7646aafb 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -1013,7 +1013,8 @@ static unsigned int run_test_step(struct test_output *o)
igt_assert(igt_wait_for_pm_status(IGT_RUNTIME_PM_STATUS_SUSPENDED));
if (o->flags & TEST_SUSPEND)
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
if (do_vblank && (o->flags & TEST_EINVAL) && o->vblank_state.count > 0)
igt_assert(do_wait_for_vblank(o, o->pipe, target_seq, &vbl_reply)
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 02ccbeb4..3a8b4583 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -2865,13 +2865,13 @@ static void suspend_subtest(const struct test_mode *t)
prepare_subtest(t, NULL);
sleep(5);
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
sleep(5);
do_assertions(0);
unset_all_crtcs();
sleep(5);
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
sleep(5);
do_assertions(ASSERT_FBC_DISABLED | ASSERT_PSR_DISABLED |
DONT_ASSERT_CRC);
diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index 2d2f2d69..04d5a134 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -223,7 +223,8 @@ igt_main
igt_subtest_f("suspend-read-crc-pipe-%c", 'A'+i) {
igt_skip_on(i >= data.display.n_pipes);
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
test_read_crc(&data, i, 0);
}
diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 7c01fe91..ce5e3101 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -328,7 +328,8 @@ test_plane_panning_with_output(data_t *data,
igt_display_commit(&data->display);
if (flags & TEST_SUSPEND_RESUME)
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index 8aafedb0..926b8578 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -596,7 +596,8 @@ int main(int argc, char *argv[])
setup_test_plane(&data);
igt_assert(wait_psr_entry(&data));
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
run_test(&data);
test_cleanup(&data);
@@ -607,7 +608,8 @@ int main(int argc, char *argv[])
data.op = PLANE_ONOFF;
setup_test_plane(&data);
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+ SUSPEND_TEST_NONE);
igt_assert(wait_psr_entry(&data));
run_test(&data);
diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c
index 82972076..d0600d59 100644
--- a/tests/pm_rpm.c
+++ b/tests/pm_rpm.c
@@ -1369,7 +1369,7 @@ static void __attribute__((noreturn)) stay_subtest(void)
static void system_suspend_subtest(void)
{
disable_all_screens_and_wait(&ms_data);
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
igt_assert(wait_for_suspended());
}
@@ -1401,7 +1401,7 @@ static void system_suspend_execbuf_subtest(void)
i915_execbuffer2_set_context_id(execbuf, 0);
disable_all_screens_and_wait(&ms_data);
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
igt_assert(wait_for_suspended());
for (i = 0; i < 20; i++) {
@@ -1415,7 +1415,7 @@ static void system_suspend_execbuf_subtest(void)
static void system_suspend_modeset_subtest(void)
{
disable_all_screens_and_wait(&ms_data);
- igt_system_suspend_autoresume();
+ igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
igt_assert(wait_for_suspended());
enable_one_screen_and_wait(&ms_data);