All of lore.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH igt 1/2] lib/igt_aux: Add support for various system suspend/resume options
Date: Wed,  5 Oct 2016 12:04:52 +0300	[thread overview]
Message-ID: <1475658293-6636-1-git-send-email-imre.deak@intel.com> (raw)

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>
---
 lib/igt_aux.c                    | 172 ++++++++++++++++++++++++++++++---------
 lib/igt_aux.h                    |  24 +++++-
 tests/drv_suspend.c              |  24 ++++--
 tests/gem_exec_suspend.c         |   6 +-
 tests/gem_mocs_settings.c        |  24 ++++--
 tests/gem_ringfill.c             |   6 +-
 tests/gem_softpin.c              |   6 +-
 tests/gem_stolen.c               |   2 +-
 tests/gem_workarounds.c          |   2 +-
 tests/kms_cursor_crc.c           |   3 +-
 tests/kms_fbcon_fbt.c            |   6 +-
 tests/kms_flip.c                 |   3 +-
 tests/kms_frontbuffer_tracking.c |   4 +-
 tests/kms_pipe_crc_basic.c       |   3 +-
 tests/kms_plane.c                |   3 +-
 tests/kms_psr_sink_crc.c         |   6 +-
 tests/pm_rpm.c                   |   6 +-
 17 files changed, 224 insertions(+), 76 deletions(-)

diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 5eaf35e..ba4dbf7 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -63,6 +63,7 @@
 #include "ioctl_wrappers.h"
 #include "igt_kms.h"
 #include "igt_stats.h"
+#include "igt_sysfs.h"
 
 /**
  * SECTION:igt_aux
@@ -625,60 +626,157 @@ void igt_cleanup_aperture_trashers(void)
 	free(trash_bos);
 }
 
+static const char *suspend_state_name[] = {
+	[SUSPEND_STATE_FREEZE] = "freeze",
+	[SUSPEND_STATE_MEM] = "mem",
+	[SUSPEND_STATE_DISK] = "disk",
+};
+
+static const char *suspend_test_name[] = {
+	[SUSPEND_TEST_NONE] = "none",
+	[SUSPEND_TEST_FREEZER] = "freezer",
+	[SUSPEND_TEST_DEVICES] = "devices",
+	[SUSPEND_TEST_PLATFORM] = "platform",
+	[SUSPEND_TEST_PROCESSORS] = "processors",
+	[SUSPEND_TEST_CORE] = "core",
+};
+
+static enum igt_suspend_test get_suspend_test(int power_dir)
+{
+	char *test_line;
+	char *test_name;
+	enum igt_suspend_test test;
+
+	if (faccessat(power_dir, "pm_test", R_OK, 0))
+		return SUSPEND_TEST_NONE;
+
+	igt_assert((test_line = igt_sysfs_get(power_dir, "pm_test")));
+	for (test_name = strtok(test_line, " "); test_name;
+	     test_name = strtok(NULL, " "))
+		if (test_name[0] == '[') {
+			test_name[strlen(test_name) - 1] = '\0';
+			test_name++;
+			break;
+		}
+
+	for (test = SUSPEND_TEST_NONE; test < SUSPEND_TEST_NUM; test++)
+		if (strcmp(suspend_test_name[test], test_name) == 0)
+			break;
+
+	igt_assert(test < SUSPEND_TEST_NUM);
+
+	free(test_line);
+
+	return test;
+}
+
+static void set_suspend_test(int power_dir, enum igt_suspend_test test)
+{
+	igt_assert(test < SUSPEND_TEST_NUM);
+
+	if (faccessat(power_dir, "pm_test", W_OK, 0)) {
+		igt_require(test == SUSPEND_TEST_NONE);
+		return;
+	}
+
+	igt_assert(igt_sysfs_set(power_dir, "pm_test", suspend_test_name[test]));
+}
+
 #define SQUELCH ">/dev/null 2>&1"
 
+static void suspend_via_rtcwake(enum igt_suspend_state state)
+{
+	char cmd[128];
+	int delay;
+
+	igt_assert(state < SUSPEND_STATE_NUM);
+
+	delay = state == SUSPEND_STATE_DISK ? 30 : 15;
+
+	/*
+	 * Skip if rtcwake would fail for a reason not related to the kernel's
+	 * suspend functionality.
+	 */
+	snprintf(cmd, sizeof(cmd), "rtcwake -n -s %d -m %s " SQUELCH,
+		 delay, suspend_state_name[state]);
+	igt_require(system(cmd) == 0);
+
+	snprintf(cmd, sizeof(cmd), "rtcwake -s %d -m %s ",
+		 delay, suspend_state_name[state]);
+	igt_assert_f(system(cmd) == 0,
+		     "This failure means that something is wrong with "
+		     "the rtcwake tool or how your distro is set up. "
+		     "This is not a i915.ko or i-g-t bug.\n");
+}
+
+static void suspend_via_sysfs(int power_dir, enum igt_suspend_state state)
+{
+	igt_assert(state < SUSPEND_STATE_NUM);
+	igt_assert(igt_sysfs_set(power_dir, "state",
+				 suspend_state_name[state]));
+}
+
+static uint32_t get_supported_suspend_states(int power_dir)
+{
+	char *states;
+	char *state_name;
+	uint32_t state_mask;
+
+	igt_assert((states = igt_sysfs_get(power_dir, "state")));
+	state_mask = 0;
+	for (state_name = strtok(states, " "); state_name;
+	     state_name = strtok(NULL, " ")) {
+		enum igt_suspend_state state;
+
+		for (state = SUSPEND_STATE_FREEZE; state < SUSPEND_STATE_NUM;
+		     state++)
+			if (strcmp(state_name, suspend_state_name[state]) == 0)
+				break;
+		igt_assert(state < SUSPEND_STATE_NUM);
+		state_mask |= 1 << state;
+	}
+
+	free(states);
+
+	return state_mask;
+}
+
 /**
  * igt_system_suspend_autoresume:
  *
- * Execute a system suspend-to-mem cycle and automatically wake up again using
- * the firmware's resume timer.
+ * Execute a system suspend (to idle, memory, disk) cycle optionally
+ * completing the cycle at a given test point and automaically wake up again.
+ * Waking up is either achieved using the RTC wake-up alarm for a full suspend
+ * cycle or a kernel timer for a suspend test cycle.
  *
  * This is very handy for implementing any kind of suspend/resume test.
  */
-void igt_system_suspend_autoresume(void)
+void igt_system_suspend_autoresume(enum igt_suspend_state state,
+				   enum igt_suspend_test test)
 {
+	int power_dir;
+	enum igt_suspend_test orig_test;
+
 	/* FIXME: Simulation doesn't like suspend/resume, and not even a lighter
 	 * approach using /sys/power/pm_test to just test our driver's callbacks
 	 * seems to fare better. We need to investigate what's going on. */
 	igt_skip_on_simulation();
 
-	/* skip if system doesn't support suspend-to-mem */
-	igt_require(system("rtcwake -n -s 15 -m mem" SQUELCH) == 0);
-
-	igt_assert_f(system("rtcwake -s 15 -m mem") == 0,
-		     "This failure means that something is wrong with the "
-		     "rtcwake tool or how your distro is set up. This is not "
-		     "a i915.ko or i-g-t bug.\n");
-}
+	igt_require((power_dir = open("/sys/power", O_RDONLY)) >= 0);
+	igt_require(get_supported_suspend_states(power_dir) & (1 << state));
+	igt_require(test == SUSPEND_TEST_NONE ||
+		    faccessat(power_dir, "pm_test", R_OK | W_OK, 0) == 0);
 
-/**
- * igt_system_hibernate_autoresume:
- *
- * Execute a system suspend-to-disk cycle and automatically wake up again using
- * the firmware's resume timer.
- *
- * This is very handy for implementing any kind of hibernate/resume test.
- */
-void igt_system_hibernate_autoresume(void)
-{
-	/* FIXME: I'm guessing simulation behaves the same way as with
-	 * suspend/resume, but it might be prudent to make sure
-	 */
-	/* FIXME: Simulation doesn't like suspend/resume, and not even a lighter
-	 * approach using /sys/power/pm_test to just test our driver's callbacks
-	 * seems to fare better. We need to investigate what's going on. */
-	igt_skip_on_simulation();
+	orig_test = get_suspend_test(power_dir);
+	set_suspend_test(power_dir, test);
 
-	/* skip if system doesn't support suspend-to-disk */
-	igt_require(system("rtcwake -n -s 30 -m disk" SQUELCH) == 0);
+	if (test == SUSPEND_TEST_NONE)
+		suspend_via_rtcwake(state);
+	else
+		suspend_via_sysfs(power_dir, state);
 
-	/* The timeout might need to be adjusted if hibernation takes too long
-	 * or if we have to wait excessively long before resume
-	 */
-	igt_assert_f(system("rtcwake -s 30 -m disk") == 0,
-		     "This failure means that something is wrong with the "
-		     "rtcwake tool or how your distro is set up. This is not "
-		     "a i915.ko or i-g-t bug.\n");
+	set_suspend_test(power_dir, orig_test);
+	close(power_dir);
 }
 
 /**
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 7f5a7cf..f338504 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -115,8 +115,28 @@ void igt_trash_aperture(void);
 void igt_cleanup_aperture_trashers(void);
 
 /* suspend/hibernate and auto-resume system */
-void igt_system_suspend_autoresume(void);
-void igt_system_hibernate_autoresume(void);
+
+enum igt_suspend_state {
+	SUSPEND_STATE_FREEZE,
+	SUSPEND_STATE_MEM,
+	SUSPEND_STATE_DISK,
+
+	SUSPEND_STATE_NUM,
+};
+
+enum igt_suspend_test {
+	SUSPEND_TEST_NONE,
+	SUSPEND_TEST_FREEZER,
+	SUSPEND_TEST_DEVICES,
+	SUSPEND_TEST_PLATFORM,
+	SUSPEND_TEST_PROCESSORS,
+	SUSPEND_TEST_CORE,
+
+	SUSPEND_TEST_NUM,
+};
+
+void igt_system_suspend_autoresume(enum igt_suspend_state state,
+				   enum igt_suspend_test test);
 
 /* dropping priviledges */
 void igt_drop_root(void);
diff --git a/tests/drv_suspend.c b/tests/drv_suspend.c
index 601a32e..0a459e3 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 a45082e..b953afb 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 2b85749..7c7a9af 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 8047042..eff0775 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 cac4669..ea162c8 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 7d329dd..1d48997 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 d15cf91..e512dd3 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 d1de450..926579d 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 586cdf5..6342289 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 065ad66..7646aaf 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 02ccbeb..3a8b458 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 2d2f2d6..04d5a13 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 7c01fe9..ce5e310 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 68310d8..224e63c 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -604,7 +604,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);
@@ -615,7 +616,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 8297207..d0600d5 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);
-- 
2.5.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

             reply	other threads:[~2016-10-05  9:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-05  9:04 Imre Deak [this message]
2016-10-05  9:04 ` [PATCH igt 2/2] tests/gem_exec_suspend: Add basic s4-devices subtest Imre Deak
2016-10-05  9:22   ` Chris Wilson
2016-10-05  9:34     ` Imre Deak
2016-10-13 14:02 ` [PATCH igt 1/2] lib/igt_aux: Add support for various system suspend/resume options Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1475658293-6636-1-git-send-email-imre.deak@intel.com \
    --to=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.