[igt-dev] [PATCH i-g-t 3/4] tests/kms_psr_sink_crc: Test PSR source HW status before PSR entry.
Dhinakaran Pandiyan
dhinakaran.pandiyan at intel.com
Thu Jul 12 08:09:42 UTC 2018
Wait for PSR HW status to show active before starting an PSR exit action.
Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
---
tests/kms_psr_sink_crc.c | 27 +++++++++------------------
1 file changed, 9 insertions(+), 18 deletions(-)
diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index 4a18609a..4eca51da 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -197,33 +197,24 @@ static bool sink_support(data_t *data)
strstr(buf, "Sink_Support: yes\n");
}
-static bool psr_enabled(data_t *data)
+static bool psr_active(data_t *data, bool check_active)
{
+ bool active;
char buf[512];
igt_debugfs_read(data->drm_fd, "i915_edp_psr_status", buf);
- return data->with_psr_disabled ||
- strstr(buf, "HW Enabled & Active bit: yes\n");
+ 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)
{
- int timeout = 5;
- while (timeout--) {
- if (psr_enabled(data))
- return true;
- sleep(1);
- }
- return false;
-}
+ if (data->with_psr_disabled)
+ return true;
-static bool psr_inactive(data_t *data)
-{
- char buf[512];
-
- igt_debugfs_read(data->drm_fd, "i915_edp_psr_status", buf);
- return !(strstr(buf, "SRDENT") || strstr("SLEEP"));
+ return igt_wait((psr_active(data, true)), 500, 1);
}
static inline void manual(const char *expected)
@@ -312,7 +303,7 @@ static void run_test(data_t *data)
expected = "screen GREEN";
break;
}
- assert(psr_inactive(data));
+ igt_assert(psr_active(data, false));
manual(expected);
}
--
2.14.1
More information about the igt-dev
mailing list