From 1d3b823650bf980a48df00b748fef7cfc7c19b14 Mon Sep 17 00:00:00 2001 From: Jonathan Gray Date: Sun, 19 Jul 2015 07:20:37 +1000 Subject: [PATCH] xf86drmMode: Implement drmCheckModesettingSupported() for OpenBSD This is implemented with kms ioctls so it could also be used as a generic fallback. Signed-off-by: Jonathan Gray Reviewed-by: Emil Velikov --- xf86drmMode.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/xf86drmMode.c b/xf86drmMode.c index fa219861..fc19504d 100644 --- a/xf86drmMode.c +++ b/xf86drmMode.c @@ -822,8 +822,25 @@ int drmCheckModesettingSupported(const char *busid) #elif defined(__DragonFly__) return 0; #endif - return -ENOSYS; +#ifdef __OpenBSD__ + int fd; + struct drm_mode_card_res res; + drmModeResPtr r = 0; + if ((fd = drmOpen(NULL, busid)) < 0) + return -EINVAL; + + memset(&res, 0, sizeof(struct drm_mode_card_res)); + + if (drmIoctl(fd, DRM_IOCTL_MODE_GETRESOURCES, &res)) { + drmClose(fd); + return -errno; + } + + drmClose(fd); + return 0; +#endif + return -ENOSYS; } int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,