[PATCH 10/12] tests/kms_psr_sink_crc: Check color ref CRC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Black screen is forbidden on this test. So let's fail if sink crc shows
it is back.

Also there are many cases where we know for shure it should be all green,
so let's check for them.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>
---
 tests/kms_psr_sink_crc.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index 27f3df9..45d2dd9 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -35,6 +35,9 @@
 #include "igt_debugfs.h"
 #include "igt_kms.h"
 
+#define CRC_BLACK "000000000000"
+#define CRC_GREEN "0000c1010000"
+
 #define DEBUG_CRC 0
 
 /* This is usefull to debug and know what should be expected */
@@ -259,6 +262,9 @@ static void get_sink_crc(data_t *data, char *crc) {
 	 * Now give a time for human eyes
 	 */
 	usleep(300000);
+
+	/* Black screen is always invalid */
+	igt_assert(strcmp(crc, CRC_BLACK) != 0);
 }
 
 static void test_crc(data_t *data)
@@ -272,6 +278,15 @@ static void test_crc(data_t *data)
 	igt_plane_set_fb(data->primary, &data->fb_green);
 	igt_display_commit(&data->display);
 
+	/* Confirm that screen became Green */
+	get_sink_crc(data, ref_crc);
+	igt_assert(strcmp(ref_crc, CRC_GREEN) == 0);
+
+	/* Confirm screen stays Green after PSR got active */
+	igt_assert(wait_psr_entry(data, 10));
+	get_sink_crc(data, ref_crc);
+	igt_assert(strcmp(ref_crc, CRC_GREEN) == 0);
+
 	/* Setting a secondary fb/plane */
 	switch (data->test_plane) {
 	case PRIMARY: default: test_plane = data->primary; break;
@@ -281,14 +296,18 @@ static void test_crc(data_t *data)
 	igt_plane_set_fb(test_plane, &data->fb_white);
 	igt_display_commit(&data->display);
 
+	/* Confirm it is not Green anymore */
 	igt_assert(wait_psr_entry(data, 10));
 	get_sink_crc(data, ref_crc);
+	igt_assert(strcmp(ref_crc, CRC_GREEN) != 0);
 
 	switch (data->op) {
 	case PAGE_FLIP:
 		/* Only in use when testing primary plane */
 		igt_assert(drmModePageFlip(data->drm_fd, data->crtc_id,
 					   data->fb_green.fb_id, 0, NULL) == 0);
+		get_sink_crc(data, crc);
+		igt_assert(strcmp(crc, CRC_GREEN) == 0);
 		break;
 	case MMAP_GTT:
 		ptr = gem_mmap__gtt(data->drm_fd, handle, 4096, PROT_WRITE);
-- 
1.9.3

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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux