[PATCH libdrm] xf86drmMode: Implement drmCheckModesettingSupported() for OpenBSD

2015-07-20 Thread Emil Velikov
On 18 July 2015 at 22:20, Jonathan Gray  wrote:
> This is implemented with kms ioctls so it could also be used as a
> generic fallback.
>
> Signed-off-by: Jonathan Gray 
> ---
>  xf86drmMode.c | 19 ++-
>  1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/xf86drmMode.c b/xf86drmMode.c
> index 529429e..1a199fa 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(, 0, sizeof(struct drm_mode_card_res));
>
> +   if (drmIoctl(fd, DRM_IOCTL_MODE_GETRESOURCES, )) {
> +   drmClose(fd);
> +   return -errno;
> +   }
> +
> +   drmClose(fd);
> +   return 0;
> +#endif
> +   return -ENOSYS;
>  }
>
Not 100% on it yet, but might end up deprecated (there'll be time for
everyone can object, of course). Until/if that happens we can use
this.

With the minor nitpicks on the other two patches, that whole 3 "set" is
Reviewed-by: Emil Velikov 

-Emil


[PATCH libdrm] xf86drmMode: Implement drmCheckModesettingSupported() for OpenBSD

2015-07-19 Thread Jonathan Gray
This is implemented with kms ioctls so it could also be used as a
generic fallback.

Signed-off-by: Jonathan Gray 
---
 xf86drmMode.c | 19 ++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/xf86drmMode.c b/xf86drmMode.c
index 529429e..1a199fa 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(, 0, sizeof(struct drm_mode_card_res));

+   if (drmIoctl(fd, DRM_IOCTL_MODE_GETRESOURCES, )) {
+   drmClose(fd);
+   return -errno;
+   }
+
+   drmClose(fd);
+   return 0;
+#endif
+   return -ENOSYS;
 }

 int drmModeCrtcGetGamma(int fd, uint32_t crtc_id, uint32_t size,
-- 
2.4.5