}
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",
#include "weston-launch.h"
+#define DRM_MAJOR 226
+
#define MAX_ARGV_SIZE 256
struct weston_launch {
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;
}