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 <djku...@google.com> --- 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 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel