From 43f5384c083adb2ae99fb138099130bf450ebd01 Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Thu, 17 Oct 2013 14:18:35 +0200 Subject: [PATCH] tests/debugfs_pipe_crc: test all connectors Diff looks a bit ugly, but it's just due to the added indentation. Signed-off-by: Daniel Vetter --- tests/debugfs_pipe_crc.c | 72 +++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/tests/debugfs_pipe_crc.c b/tests/debugfs_pipe_crc.c index a239ed1..85ca9f5 100644 --- a/tests/debugfs_pipe_crc.c +++ b/tests/debugfs_pipe_crc.c @@ -146,59 +146,55 @@ static void display_fini(data_t *data) drmModeFreeResources(data->resources); } -static connector_t * -display_find_first_valid_connector(data_t *data, - uint32_t crtc_id_mask) -{ - int i; - - connectors_init(data, crtc_id_mask); - - for (i = 0; i < data->n_connectors; i++) { - connector_t *connector = &data->connectors[i]; - - if (connector->valid) - return connector; - } - - return NULL; -} - static void test_read_crc(data_t *data, int pipe) { connector_t *connector; igt_pipe_crc_t *pipe_crc; igt_crc_t *crcs = NULL; + int valid_connectors = 0, i; - connector = display_find_first_valid_connector(data, 1 << pipe); - igt_require_f(connector, "No connector found for pipe %i\n", pipe); + connectors_init(data, 1 << pipe); - pipe_crc = igt_pipe_crc_new(&data->debugfs, data->drm_fd, - connector->config.pipe, - INTEL_PIPE_CRC_SOURCE_PLANE1); + for (i = 0; i < data->n_connectors; i++) { + connector = &data->connectors[i]; - connector_set_mode(data, connector, &connector->config.default_mode); + if (!connector->valid) + continue; + valid_connectors++; + + fprintf(stdout, "%s: Testing connector %u\n", + igt_subtest_name(), connector->config.connector->connector_id); - if (!igt_pipe_crc_start(pipe_crc)) { - igt_pipe_crc_free(pipe_crc); pipe_crc = igt_pipe_crc_new(&data->debugfs, data->drm_fd, connector->config.pipe, - INTEL_PIPE_CRC_SOURCE_PIPE); - igt_assert(igt_pipe_crc_start(pipe_crc)); - } + INTEL_PIPE_CRC_SOURCE_PLANE1); + + connector_set_mode(data, connector, &connector->config.default_mode); - /* wait for 3 vblanks and the corresponding 3 CRCs */ - igt_pipe_crc_get_crcs(pipe_crc, 3, &crcs); + if (!igt_pipe_crc_start(pipe_crc)) { + igt_pipe_crc_free(pipe_crc); + pipe_crc = igt_pipe_crc_new(&data->debugfs, data->drm_fd, + connector->config.pipe, + INTEL_PIPE_CRC_SOURCE_PIPE); + igt_assert(igt_pipe_crc_start(pipe_crc)); + } - igt_pipe_crc_stop(pipe_crc); + /* wait for 3 vblanks and the corresponding 3 CRCs */ + igt_pipe_crc_get_crcs(pipe_crc, 3, &crcs); + + igt_pipe_crc_stop(pipe_crc); + + /* and ensure that they'are all equal, we haven't changed the fb */ + igt_assert(igt_crc_equal(&crcs[0], &crcs[1])); + igt_assert(igt_crc_equal(&crcs[1], &crcs[2])); + + free(crcs); + igt_pipe_crc_free(pipe_crc); + kmstest_remove_fb(data->drm_fd, &connector->fb); + } - /* and ensure that they'are all equal, we haven't changed the fb */ - igt_assert(igt_crc_equal(&crcs[0], &crcs[1])); - igt_assert(igt_crc_equal(&crcs[1], &crcs[2])); + igt_require_f(valid_connectors, "No connector found for pipe %i\n", pipe); - free(crcs); - igt_pipe_crc_free(pipe_crc); - kmstest_remove_fb(data->drm_fd, &connector->fb); } static void exit_handler(int sig) -- 2.7.4