From 66abe6748004ff7a6e46e08d96c36be31889d063 Mon Sep 17 00:00:00 2001 From: Nicholas Kazlauskas Date: Fri, 15 Mar 2019 11:04:41 -0400 Subject: lib/debugfs: Don't do CRC sanity checks on amdgpu 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. v2: rebase Cc: Leo Li Cc: Harry Wentland Signed-off-by: Nicholas Kazlauskas Reviewed-by: Harry Wentland --- lib/igt_debugfs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index 7849faad..dd229c09 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -872,11 +872,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 " @@ -930,7 +934,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); } /** @@ -959,7 +963,7 @@ igt_pipe_crc_get_current(int drm_fd, igt_pipe_crc_t *pipe_crc, igt_crc_t *crc) } } while (igt_vblank_before_eq(crc->frame, vblank)); - crc_sanity_checks(crc); + crc_sanity_checks(pipe_crc, crc); } /** -- cgit v1.2.3