summaryrefslogtreecommitdiff
path: root/tests/prime_vgem.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-08-23 13:08:39 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-08-23 13:30:09 +0100
commit2e190c323f3bca511f4f03cda6d71b015f21d29b (patch)
tree794300f02aa15c7cef4358ac2d8772ed3ce28810 /tests/prime_vgem.c
parentfb292f458ec0bc73fa2ba870b4e8a2260b9218d6 (diff)
igt/prime_vgem: Perform connector probe on startup
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/prime_vgem.c')
-rw-r--r--tests/prime_vgem.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index ae69965b..acac4de1 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -544,12 +544,17 @@ static uint32_t set_fb_on_crtc(int fd, int pipe, struct vgem_bo *bo, uint32_t fb
memset(&conn, 0, sizeof(conn));
conn.connector_id = resources->connectors[o];
- conn.count_modes = 4096;
+ drmIoctl(fd, DRM_IOCTL_MODE_GETCONNECTOR, &conn);
+ if (!conn.count_modes)
+ continue;
+
+ igt_assert(conn.count_modes <= 4096);
+ igt_assert(conn.count_encoders <= 32);
+
conn.modes_ptr = (uintptr_t)modes;
- conn.count_encoders = 32;
conn.encoders_ptr = (uintptr_t)encoders;
-
- drmIoctl(fd, DRM_IOCTL_MODE_GETCONNECTOR, &conn);
+ conn.count_props = 0;
+ do_or_die(drmIoctl(fd, DRM_IOCTL_MODE_GETCONNECTOR, &conn));
for (e = 0; e < conn.count_encoders; e++) {
struct drm_mode_get_encoder enc;
@@ -564,8 +569,8 @@ static uint32_t set_fb_on_crtc(int fd, int pipe, struct vgem_bo *bo, uint32_t fb
continue;
for (m = 0; m < conn.count_modes; m++) {
- if (modes[m].hdisplay == bo->width &&
- modes[m].vdisplay == bo->height)
+ if (modes[m].hdisplay <= bo->width &&
+ modes[m].vdisplay <= bo->height)
break;
}
if (m == conn.count_modes)