diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-08-23 13:08:39 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-08-23 13:30:09 +0100 |
commit | 2e190c323f3bca511f4f03cda6d71b015f21d29b (patch) | |
tree | 794300f02aa15c7cef4358ac2d8772ed3ce28810 /tests/prime_vgem.c | |
parent | fb292f458ec0bc73fa2ba870b4e8a2260b9218d6 (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.c | 17 |
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) |