Hello, This patch series improves the test of the CRC calculation performed by the DISCOM. For DU channels backed by a VSP, the VSP can calculate the CRC of frames using the DISCOM hardware block. The frame on which the CRC is computed can be an input to the VSP (a DRM plane) or the output of the VSP (the DU channel output). This is useful to verify that the screen, or a portion of it, contains the expected data. The test suite already contains a CRC test case, but it only verifies that consecutive CRC values without any page flip do not vary. This series extends the test to verify the actual CRC value. Patches 1/6 and 2/6 improve the geometry helper classes in kmstest. Patches 3/6 and then ensures that the CRC test leaves all CRTC disabled even when it fails, to avoid cross-interactions between tests. Patch 4/6 introduces a Composer class in the CRC test, to group all code related to composition of the display. This is a small refactoring that prepares for patch 5/6 that computes reference CRC values in the Composer class, and compares them with the values computed by the hardware. The last patch, 6/6, adds a C utility to compute the CRC value of a frame. This is useful when using the DISCOM to calculate the expected CRC values, either during development or at runtime. The CRC calculation code is generated with the Python crcmod module, using it only requires a single line of code to compute a CRC on a data buffer: crc = calculate_crc(image, size, 0); Note that the CRC test requires extensions to kmsxx that haven't been merged upstream yet (one of them has actually not even been posted). The kmsxx patches can be found at git://git.ideasonboard.com/renesas/kmsxx.git I will work on upstreaming them. Laurent Pinchart (6): kmstest: Extend Rect class kmstest: Add additional geometry classes tests: crc: Disable CRTC regarless of test status tests: crc: Introduce Composer class tests: crc: Compute reference CRC values and compare them crc: Add a utility to compute the CRC of a frame Makefile | 2 +- README | 1 + crc/Makefile | 32 +++++ crc/gen-crc.py | 14 +++ crc/main.c | 271 ++++++++++++++++++++++++++++++++++++++++++ tests/kms-test-crc.py | 145 +++++++++++++++++++--- tests/kmstest.py | 38 ++++++ 7 files changed, 488 insertions(+), 15 deletions(-) create mode 100644 crc/Makefile create mode 100755 crc/gen-crc.py create mode 100644 crc/main.c -- Regards, Laurent Pinchart