From d15e00b9b4ebda5bbacdb4eea0af1e80e3da16da Mon Sep 17 00:00:00 2001 From: José Roberto de Souza Date: Fri, 29 Mar 2019 13:06:19 -0700 Subject: tests/kms_plane_lowres: Search for modes of the connector being tested MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get_lowres_mode() was looking for the desired mode over all connectors what could cause commit to fail due incompatibility. Reviewed-by: Mika Kahola Cc: Mika Kahola Signed-off-by: José Roberto de Souza --- tests/kms_plane_lowres.c | 48 +++++++++++------------------------------------- 1 file changed, 11 insertions(+), 37 deletions(-) (limited to 'tests/kms_plane_lowres.c') diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c index b27e5e61..f7739b11 100644 --- a/tests/kms_plane_lowres.c +++ b/tests/kms_plane_lowres.c @@ -43,9 +43,8 @@ typedef struct { } data_t; static drmModeModeInfo -get_lowres_mode(int drmfd, drmModeModeInfo *mode_default) +get_lowres_mode(int drmfd, igt_output_t *output, drmModeModeInfo *mode_default) { - drmModeRes *mode_resources = drmModeGetResources(drmfd); drmModeModeInfo mode; drmModeModeInfo std_1024_mode = { .clock = 65000, @@ -64,43 +63,18 @@ get_lowres_mode(int drmfd, drmModeModeInfo *mode_default) .type = 0x40, .name = "Custom 1024x768", }; - bool found; - int limit = mode_default->vdisplay-SIZE; - int i, j; - - if (!mode_resources) { - igt_warn("drmModeGetResources failed: %s\n", strerror(errno)); - return std_1024_mode; - } - - found = false; - for (i = 0; i < mode_resources->count_connectors; i++) { - drmModeConnector *connector; - - connector = drmModeGetConnectorCurrent(drmfd, - mode_resources->connectors[i]); - if (!connector) { - igt_warn("could not get connector %i: %s\n", - mode_resources->connectors[i], strerror(errno)); - continue; + bool found = false; + int limit = mode_default->vdisplay - SIZE; + int j; + + for (j = 0; j < output->config.connector->count_modes; j++) { + mode = output->config.connector->modes[j]; + if (mode.vdisplay < limit) { + found = true; + break; } - - if (!connector->count_modes) - continue; - - for (j = 0; j < connector->count_modes; j++) { - mode = connector->modes[j]; - if (mode.vdisplay < limit) { - found = true; - break; - } - } - - drmModeFreeConnector(connector); } - drmModeFreeResources(mode_resources); - if (!found) return std_1024_mode; @@ -217,7 +191,7 @@ test_plane_position_with_output(data_t *data, enum pipe pipe, mode1 = test_setup(data, pipe, modifier, output); - mode_lowres = get_lowres_mode(data->drm_fd, mode1); + mode_lowres = get_lowres_mode(data->drm_fd, output, mode1); ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC); igt_skip_on(ret != 0); -- cgit v1.2.3