From d0dc2c5b6a22f88d0c7288d134173320c58c8d50 Mon Sep 17 00:00:00 2001 From: Paulo Zanoni Date: Wed, 16 Jul 2014 16:10:30 -0300 Subject: [PATCH] tests/pm_rpm: add dpms-mode-unset{,-non}-lpsp subtests These tests currently trigger WARNs on our Kernel. Let's make sure we fix the bug and it never comes back. Signed-off-by: Paulo Zanoni --- tests/pm_rpm.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c index 323e0729..1e63bc8f 100644 --- a/tests/pm_rpm.c +++ b/tests/pm_rpm.c @@ -1390,6 +1390,23 @@ static void system_suspend_subtest(void) igt_assert(wait_for_suspended()); } +/* Enable a screen, activate DPMS, then do a modeset. At some point our driver + * produced WARNs on this case. */ +static void dpms_mode_unset_subtest(enum screen_type type) +{ + disable_all_screens(&ms_data); + igt_assert(wait_for_suspended()); + + igt_require(enable_one_screen_with_type(&ms_data, type)); + igt_assert(wait_for_active()); + + disable_all_screens_dpms(&ms_data); + igt_assert(wait_for_suspended()); + + disable_all_screens(&ms_data); + igt_assert(wait_for_suspended()); +} + int main(int argc, char *argv[]) { int rounds = 50; @@ -1462,6 +1479,10 @@ int main(int argc, char *argv[]) debugfs_forcewake_user_subtest(); igt_subtest("sysfs-read") sysfs_read_subtest(); + igt_subtest("dpms-mode-unset-lpsp") + dpms_mode_unset_subtest(SCREEN_TYPE_LPSP); + igt_subtest("dpms-mode-unset-non-lpsp") + dpms_mode_unset_subtest(SCREEN_TYPE_NON_LPSP); /* Modeset stress */ igt_subtest("modeset-lpsp-stress")