[igt-dev] [PATCH i-g-t 2/3] lib/debugfs: Don't do CRC sanity checks on amdgpu

Nicholas Kazlauskas nicholas.kazlauskas at amd.com
Fri Mar 8 14:36:02 UTC 2019


A black FB on amdgpu returns a CRC of (0, 0, 0), which IGT considers
suspicious. All our CRC values are also 16-bit so a value of 0xffffffff
can't be obtained.

Drop the suspicious CRC checks on amdgpu by checking the device in
crc_sanity_checks. We need the drm_fd for this so pass in pipe_crc
to the function to get it. It makes more sense to me to do it this
way than to duplicate code and the explanation on both calls to
crc_sanity_checks.

Cc: Leo Li <sunpeng.li at amd.com>
Cc: Harry Wentland <harry.wentland at amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
---
 lib/igt_debugfs.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index b0e5cfa5..b655edef 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -886,11 +886,15 @@ igt_pipe_crc_get_crcs(igt_pipe_crc_t *pipe_crc, int n_crcs,
 	return n;
 }
 
-static void crc_sanity_checks(igt_crc_t *crc)
+static void crc_sanity_checks(igt_pipe_crc_t *pipe_crc, igt_crc_t *crc)
 {
 	int i;
 	bool all_zero = true;
 
+	/* Any CRC value can be considered valid on amdgpu hardware. */
+	if (is_amdgpu_device(pipe_crc->fd))
+		return;
+
 	for (i = 0; i < crc->n_words; i++) {
 		igt_warn_on_f(crc->crc[i] == 0xffffffff,
 			      "Suspicious CRC: it looks like the CRC "
@@ -944,7 +948,7 @@ void igt_pipe_crc_get_single(igt_pipe_crc_t *pipe_crc, igt_crc_t *crc)
 {
 	read_one_crc(pipe_crc, crc);
 
-	crc_sanity_checks(crc);
+	crc_sanity_checks(pipe_crc, crc);
 }
 
 /**
@@ -973,7 +977,7 @@ igt_pipe_crc_get_current(int drm_fd, igt_pipe_crc_t *pipe_crc, igt_crc_t *crc)
 		}
 	} while (crc->frame <= vblank);
 
-	crc_sanity_checks(crc);
+	crc_sanity_checks(pipe_crc, crc);
 }
 
 /**
-- 
2.17.1



More information about the igt-dev mailing list