On Thu, Feb 04, 2010 at 07:33:22PM +0100, Jiri Slaby wrote: > On 02/04/2010 07:14 PM, Dmitry Torokhov wrote: > > On Thu, Feb 04, 2010 at 11:31:45AM +0100, Jiri Slaby wrote: > > + > >> +static int dvb_event(struct hid_device *hdev, struct hid_field *field, > >> + struct hid_usage *usage, __s32 value) > >> +{ > >> + /* we won't get a "key up" event */ > >> + if (value) { > >> + input_event(field->hidinput->input, usage->type, usage->code, 1); > >> + input_event(field->hidinput->input, usage->type, usage->code, 0); > > > > Do not ever forget input_sync(), you need 2 of them here. > > > > With the latest changes to evdev, if you are using SIGIO you won't get > > wioken up until EV_SYN/SYN_REPORT. > > HID layer syncs on its own. So the second is not needed. Why is needed > the first? > Userpsace has a right to accumulate events and only act on them when receiving EV_SYN. Press + release in the same event block may be treated as no change. The same as REL_X +2, REL_X -2 - no need to move pointer at all. And so on. > I.e. should there be one also in dvb_usb_read_remote_control? Probably, I have not looked. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html