diff options
Diffstat (limited to 'lib/tests/igt_edid.c')
-rw-r--r-- | lib/tests/igt_edid.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/lib/tests/igt_edid.c b/lib/tests/igt_edid.c index fc98f1bb..8474d29e 100644 --- a/lib/tests/igt_edid.c +++ b/lib/tests/igt_edid.c @@ -57,14 +57,14 @@ static bool edid_block_checksum(const unsigned char *raw_edid) size_t i; unsigned char csum = 0; - for (i = 0; i < EDID_LENGTH; i++) { + for (i = 0; i < EDID_BLOCK_SIZE; i++) { csum += raw_edid[i]; } return csum == 0; } -typedef const unsigned char *(*get_edid_func)(void); +typedef const struct edid *(*get_edid_func)(void); igt_simple_main { @@ -80,23 +80,28 @@ igt_simple_main { "3d", igt_kms_get_3d_edid, 1 }, {0}, }, *f; - const unsigned char *edid; + const struct edid *edid; + const uint8_t *raw_edid, *raw_block; size_t i; for (f = funcs; f->f; f++) { edid = f->f(); + raw_edid = (uint8_t *) edid; - igt_assert_f(edid_header_is_valid(edid), + igt_assert_f(edid_header_is_valid(raw_edid), "invalid header on %s EDID", f->desc); /* check base edid block */ - igt_assert_f(edid_block_checksum(edid), + igt_assert_f(edid_block_checksum(raw_edid), "checksum failed on %s EDID", f->desc); /* check extension blocks, if any */ - igt_assert_f(edid[126] == f->exts, + igt_assert_f(raw_edid[126] == f->exts, "unexpected number of extensions on %s EDID", f->desc); - for (i = 0; i < f->exts; i++) - igt_assert_f(edid_block_checksum(edid + (i + 1) * EDID_LENGTH), - "CEA block checksum failed on %s EDID", f->desc); + for (i = 0; i < f->exts; i++) { + raw_block = raw_edid + (i + 1) * EDID_BLOCK_SIZE; + igt_assert_f(edid_block_checksum(raw_block), + "CEA block checksum failed on %s EDID", + f->desc); + } } } |