st/egl: Open the first drm node
authorJakob Bornecrantz <jakob@vmware.com>
Thu, 20 Aug 2009 15:33:56 +0000 (17:33 +0200)
committerJakob Bornecrantz <jakob@vmware.com>
Thu, 20 Aug 2009 15:50:30 +0000 (17:50 +0200)
At least its better then hardcoded to i915

src/gallium/state_trackers/egl/egl_tracker.c

index ced002c53593eecb111d25a8433fe9582c73c5b9..57c81da767ab0753bd7a92c51d695d791592ffe6 100644 (file)
@@ -6,6 +6,8 @@
 #include <string.h>
 #include "egl_tracker.h"
 
+#include <fcntl.h>
+
 #include "egllog.h"
 #include "state_tracker/drm_api.h"
 
@@ -132,6 +134,14 @@ drm_find_dpms(struct drm_device *dev, struct drm_screen *screen)
        screen->dpms = p;
 }
 
+static int drm_open_minor(int minor)
+{
+       char buf[64];
+
+       sprintf(buf, DRM_DEV_NAME, DRM_DIR_NAME, minor);
+       return open(buf, O_RDWR, 0);
+}
+
 EGLBoolean
 drm_initialize(_EGLDriver *drv, _EGLDisplay *disp, EGLint *major, EGLint *minor)
 {
@@ -144,7 +154,8 @@ drm_initialize(_EGLDriver *drv, _EGLDisplay *disp, EGLint *major, EGLint *minor)
        EGLint i;
        int fd;
 
-       fd = drmOpen("i915", NULL);
+       /* try the first node */
+       fd = drm_open_minor(0);
        if (fd < 0)
                goto err_fd;