diff --git a/src/lib/eeze/Eeze.h b/src/lib/eeze/Eeze.h index 5b25d6a6bf..65e90bd37c 100644 --- a/src/lib/eeze/Eeze.h +++ b/src/lib/eeze/Eeze.h @@ -134,6 +134,7 @@ * @li block * @li bsg * @li dmi + * @li drm * @li graphics * @li hid * @li hwmon @@ -169,6 +170,7 @@ * @li cd * @li char * @li disk + * @li drm_minor * @li floppy * @li generic * @li hid @@ -258,7 +260,11 @@ typedef enum /** - Joystick * @since 1.7 */ - EEZE_UDEV_TYPE_JOYSTICK + EEZE_UDEV_TYPE_JOYSTICK, + /** - Drm + * @since 1.12 + */ + EEZE_UDEV_TYPE_DRM } Eeze_Udev_Type; /**@}*/ diff --git a/src/lib/eeze/eeze_udev_find.c b/src/lib/eeze/eeze_udev_find.c index 805f4e6873..71aa30b7a1 100644 --- a/src/lib/eeze/eeze_udev_find.c +++ b/src/lib/eeze/eeze_udev_find.c @@ -235,6 +235,12 @@ eeze_udev_find_by_type(Eeze_Udev_Type etype, case EEZE_UDEV_TYPE_BLUETOOTH: udev_enumerate_add_match_subsystem(en, "bluetooth"); break; + + case EEZE_UDEV_TYPE_DRM: + udev_enumerate_add_match_subsystem(en, "drm"); + udev_enumerate_add_match_subsystem(en, "card[0-9]*"); + break; + default: break; } diff --git a/src/lib/eeze/eeze_udev_watch.c b/src/lib/eeze/eeze_udev_watch.c index 6ff9e8587b..c51f396548 100644 --- a/src/lib/eeze/eeze_udev_watch.c +++ b/src/lib/eeze/eeze_udev_watch.c @@ -235,6 +235,12 @@ _get_syspath_from_watch(void *data, goto error; break; + case EEZE_UDEV_TYPE_DRM: + if ((!(test = udev_device_get_subsystem(device))) + || (strcmp(test, "drm"))) + goto error; + + break; default: break; } @@ -315,6 +321,11 @@ eeze_udev_watch_add(Eeze_Udev_Type type, NULL); break; + case EEZE_UDEV_TYPE_DRM: + udev_monitor_filter_add_match_subsystem_devtype(mon, "drm_minor", + NULL); + break; + default: break; }