summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Roberto de Souza <jose.souza@intel.com>2019-03-29 13:06:19 -0700
committerJosé Roberto de Souza <jose.souza@intel.com>2019-04-01 12:42:00 -0700
commitd15e00b9b4ebda5bbacdb4eea0af1e80e3da16da (patch)
tree46d551ea980fe60e2c2cb33e021d1a0e47fdb74e
parentec9792ad770d5055d6f42e2a481b8314754c9218 (diff)
tests/kms_plane_lowres: Search for modes of the connector being tested
get_lowres_mode() was looking for the desired mode over all connectors what could cause commit to fail due incompatibility. Reviewed-by: Mika Kahola <mika.kahola@intel.com> Cc: Mika Kahola <mika.kahola@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
-rw-r--r--tests/kms_plane_lowres.c48
1 files changed, 11 insertions, 37 deletions
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);