summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers/dri2/platform_drm.c
diff options
context:
space:
mode:
authorJonathan Gray <[email protected]>2014-04-03 16:22:26 +1100
committerEmil Velikov <[email protected]>2014-04-05 13:36:29 +0100
commitc973e440d5b4057d93b4ce1298da77c3449c9f33 (patch)
tree74d06e0824bcc84baa23ffa0fe1d457b3dd5293f /src/egl/drivers/dri2/platform_drm.c
parent81799c82e47b34db6eeca34113016d2d8389669d (diff)
egl/dri2: use drm macros to construct device name
Don't hardcode /dev/dri/card0 but instead use the drm macros which allows the correct /dev/drm0 device to be opened on OpenBSD. v2: use snprintf and fallback to /dev/dri/card0 v3: check for snprintf truncation Signed-off-by: Jonathan Gray <[email protected]> Cc: "10.1" <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/egl/drivers/dri2/platform_drm.c')
-rw-r--r--src/egl/drivers/dri2/platform_drm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/egl/drivers/dri2/platform_drm.c b/src/egl/drivers/dri2/platform_drm.c
index 2f7edb9f277..9a7633a070a 100644
--- a/src/egl/drivers/dri2/platform_drm.c
+++ b/src/egl/drivers/dri2/platform_drm.c
@@ -492,7 +492,12 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
gbm = disp->PlatformDisplay;
if (gbm == NULL) {
- fd = open("/dev/dri/card0", O_RDWR);
+ char buf[64];
+ int n = snprintf(buf, sizeof(buf), DRM_DEV_NAME, DRM_DIR_NAME, 0);
+ if (n != -1 && n < sizeof(buf))
+ fd = open(buf, O_RDWR);
+ if (fd < 0)
+ fd = open("/dev/dri/card0", O_RDWR);
dri2_dpy->own_device = 1;
gbm = gbm_create_device(fd);
if (gbm == NULL)