libudev allows adding an efficient in-kernel filter on udev events. Since we manually filter for ID_INPUT anyway, it seems reasonable to ask the kernel to send only events for the input subsystem.
This filtering is performed both for initial device enumeration, and for subsequent udev events. Signed-off-by: Daniel Kurtz <[email protected]> --- config/udev.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/config/udev.c b/config/udev.c index 9ac34ee..189321d 100644 --- a/config/udev.c +++ b/config/udev.c @@ -283,6 +283,8 @@ config_udev_init(void) if (!udev_monitor) return 0; + udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "input", NULL); + if (udev_monitor_enable_receiving(udev_monitor)) { ErrorF("config/udev: failed to bind the udev monitor\n"); return 0; @@ -291,6 +293,7 @@ config_udev_init(void) enumerate = udev_enumerate_new(udev); if (!enumerate) return 0; + udev_enumerate_add_match_subsystem(enumerate, "input"); udev_enumerate_scan_devices(enumerate); devices = udev_enumerate_get_list_entry(enumerate); udev_list_entry_foreach(device, devices) { -- 1.7.3.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
