From 2e190c323f3bca511f4f03cda6d71b015f21d29b Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 23 Aug 2016 13:08:39 +0100 Subject: igt/prime_vgem: Perform connector probe on startup Signed-off-by: Chris Wilson --- tests/prime_vgem.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'tests/prime_vgem.c') 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) -- cgit v1.2.3