Read the available set of suspend pm_tests and skip the suspend request if the test mode is not available. Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> --- lib/igt_aux.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/igt_aux.c b/lib/igt_aux.c index ee53559c..1f934ba9 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -841,6 +841,28 @@ static uint32_t get_supported_suspend_states(int power_dir) return state_mask; } +static uint32_t get_supported_suspend_tests(int power_dir) +{ + uint32_t supported = 0; + char *tests; + + tests = igt_sysfs_get(power_dir, "pm_test"); + igt_assert(tests); + + for (enum igt_suspend_test t = SUSPEND_TEST_NONE; + t < SUSPEND_TEST_NUM; + t++) { + if (strstr(tests, suspend_test_name[t])) { + supported |= 1 << t; + break; + } + } + + free(tests); + + return supported; +} + /** * igt_system_suspend_autoresume: * @state: an #igt_suspend_state, the target suspend state @@ -876,7 +898,7 @@ void igt_system_suspend_autoresume(enum igt_suspend_state state, 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); + get_supported_suspend_tests(power_dir) & (1 << test)); orig_test = get_suspend_test(power_dir); set_suspend_test(power_dir, test); -- 2.15.0.rc0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx