compositor: Open drm device through launcher
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 68406da..6c791ab 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -1215,7 +1215,7 @@
 	}
 
 	filename = udev_device_get_devnode(device);
-	fd = open(filename, O_RDWR | O_CLOEXEC);
+	fd = weston_launcher_open(&ec->base, filename, O_RDWR);
 	if (fd < 0) {
 		/* Probably permissions error */
 		weston_log("couldn't open %s, skipping\n",
diff --git a/src/weston-launch.c b/src/weston-launch.c
index 7264f7e..be77a34 100644
--- a/src/weston-launch.c
+++ b/src/weston-launch.c
@@ -58,6 +58,8 @@
 
 #include "weston-launch.h"
 
+#define DRM_MAJOR 226
+
 #define MAX_ARGV_SIZE 256
 
 struct weston_launch {
@@ -313,10 +315,11 @@
 		goto err0;
 	}
 
-	if (major(s.st_rdev) != INPUT_MAJOR) {
+	if (major(s.st_rdev) != INPUT_MAJOR &&
+	    major(s.st_rdev) != DRM_MAJOR) {
 		close(fd);
 		fd = -1;
-		fprintf(stderr, "Device %s is not an input device\n",
+		fprintf(stderr, "Device %s is not an input or drm device\n",
 			message->path);
 		goto err0;
 	}