diff options
author | Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> | 2018-07-16 15:39:04 -0700 |
---|---|---|
committer | Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> | 2018-07-17 11:11:08 -0700 |
commit | d7e1dfbff4dc43f018ee64e91a1d78524e83e20d (patch) | |
tree | 034db8f86328f07d82646b5726bc282408a7ea7e /tests/kms_psr.c | |
parent | 1a02046973e6d40f0b2d08a8a0370f384c11fbba (diff) |
tests/psr: Move PSR state test functions to lib
kms_frontbuffer_tracking and kms_psr test PSR in different ways, let'
fix that by creating common library functions.
v2: Include the new file in meson.build
v3: Leave --no-psr intact (Rodrigo)
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'tests/kms_psr.c')
-rw-r--r-- | tests/kms_psr.c | 37 |
1 files changed, 13 insertions, 24 deletions
diff --git a/tests/kms_psr.c b/tests/kms_psr.c index 9e893ed8..218b3960 100644 --- a/tests/kms_psr.c +++ b/tests/kms_psr.c @@ -24,6 +24,7 @@ #include "igt.h" #include "igt_sysfs.h" +#include "igt_psr.h" #include <errno.h> #include <stdbool.h> #include <stdio.h> @@ -197,24 +198,12 @@ static bool sink_support(data_t *data) strstr(buf, "Sink_Support: yes\n"); } -static bool psr_active(int fd, bool check_active) -{ - bool active; - char buf[512]; - - igt_debugfs_read(fd, "i915_edp_psr_status", buf); - - active = strstr(buf, "HW Enabled & Active bit: yes\n") && - (strstr(buf, "SRDENT") || strstr(buf, "SLEEP")); - return check_active ? active : !active; -} - -static bool wait_psr_entry(data_t *data) +static bool psr_wait_entry_if_enabled(data_t *data) { if (data->with_psr_disabled) return true; - return igt_wait((psr_active(data->drm_fd, true)), 500, 1); + return psr_wait_entry(data->drm_fd); } static inline void manual(const char *expected) @@ -242,7 +231,7 @@ static void run_test(data_t *data) manual("screen GREEN"); /* Confirm screen stays Green after PSR got active */ - igt_assert(wait_psr_entry(data)); + igt_assert(psr_wait_entry_if_enabled(data)); manual("screen GREEN"); /* Setting a secondary fb/plane */ @@ -255,7 +244,7 @@ static void run_test(data_t *data) else manual("GREEN background with WHITE box"); - igt_assert(wait_psr_entry(data)); + igt_assert(psr_wait_entry_if_enabled(data)); switch (data->op) { case PAGE_FLIP: /* Only in use when testing primary plane */ @@ -437,13 +426,13 @@ int main(int argc, char *argv[]) igt_subtest("basic") { setup_test_plane(&data, DRM_PLANE_TYPE_PRIMARY); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); test_cleanup(&data); } igt_subtest("no_drrs") { setup_test_plane(&data, DRM_PLANE_TYPE_PRIMARY); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); igt_assert(drrs_disabled(&data)); test_cleanup(&data); } @@ -452,7 +441,7 @@ int main(int argc, char *argv[]) igt_subtest_f("primary_%s", op_str(op)) { data.op = op; setup_test_plane(&data, DRM_PLANE_TYPE_PRIMARY); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); run_test(&data); test_cleanup(&data); } @@ -462,7 +451,7 @@ int main(int argc, char *argv[]) igt_subtest_f("sprite_%s", op_str(op)) { data.op = op; setup_test_plane(&data, DRM_PLANE_TYPE_OVERLAY); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); run_test(&data); test_cleanup(&data); } @@ -472,7 +461,7 @@ int main(int argc, char *argv[]) igt_subtest_f("cursor_%s", op_str(op)) { data.op = op; setup_test_plane(&data, DRM_PLANE_TYPE_CURSOR); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); run_test(&data); test_cleanup(&data); } @@ -481,7 +470,7 @@ int main(int argc, char *argv[]) igt_subtest_f("dpms") { data.op = RENDER; setup_test_plane(&data, DRM_PLANE_TYPE_PRIMARY); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); dpms_off_on(&data); run_test(&data); test_cleanup(&data); @@ -490,10 +479,10 @@ int main(int argc, char *argv[]) igt_subtest_f("suspend") { data.op = PLANE_ONOFF; setup_test_plane(&data, DRM_PLANE_TYPE_CURSOR); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE); - igt_assert(wait_psr_entry(&data)); + igt_assert(psr_wait_entry_if_enabled(&data)); run_test(&data); test_cleanup(&data); } |