From: Ryan M. <rm...@gm...> - 2009-12-30 21:32:26
|
Hi, I had my laptop's remote working perfectly on my Gentoo system using the ene0100 driver and the uinput support in lircd (version 0.8.6). Recently, however, I noticed the remote was no longer working. irw would show my button presses, but X would not register any events (not even xev), *until* I stopped the lircd daemon. Some digging revealed that this was broken by updating the X evdev input driver from 2.2.5 to 2.3.1. Further poking led me to the following commit in xf86-input-evdev: http://cgit.freedesktop.org/xorg/driver/xf86-input-evdev/commit/?id=1f641d75edba7394201c1c53938215bae696791b ------ author Oliver McFadden <> 2009-07-23 10:19:49 (GMT) committer Peter Hutterer <t> 2009-07-29 05:26:53 (GMT) commit 1f641d75edba7394201c1c53938215bae696791b (patch) tree 9d44183a4bf6d2173c8dd4677799ab7de4cf9f7d parent 2994825665790dc8e35b2944e0d411f3cc9f76fd (diff) download xf86-input-evdev-1f641d75edba7394201c1c53938215bae696791b.zip xf86-input-evdev-1f641d75edba7394201c1c53938215bae696791b.tar.gz xf86-input-evdev-1f641d75edba7394201c1c53938215bae696791b.tar.bz2 evdev: Only send the events at synchronization time. Instead of just posting the button/key press/release events to the server as soon as they arrive, add them to an internal queue and post them once we receive an EV_SYN synchronization event. The motion events are always sent first, followed by the queued events. There will be one motion event and possibly many queued button/key events posted every EV_SYN event. Note that the size of the event queue (EVDEV_MAXQUEUE) is arbitrary and you may change it. If we receive more events than the queue can handle, those events are dropped and a warning message printed. Tested on my Lenovo T400 using evdev for all input devices; keyboard, touchpad, and trackpoint. Signed-off-by: Peter Hutterer <> ------ Based on a patch to a similar bug on Gentoo (http://bugs.gentoo.org/show_bug.cgi?id=298459), I created a patch (attached) for lircd that causes it to send an EV_SYN event after sending an EV_KEY event. With this patch, my setup is working once again. So, is this the proper fix? Thanks, Ryan |