Am Dienstag, 5. Oktober 2010, 06:45:20 schrieb Dmitry Torokhov: > > > +{ > > > + struct appleir *appleir = input_get_drvdata(dev); > > > + > > > + mutex_lock(&appleir_mutex); > > > + > > > + if (!(appleir->flags & APPLEIR_SUSPENDED)) { > > > + usb_kill_urb(appleir->urb); > > > + del_timer_sync(&appleir->key_up_timer); > > > > You can close with a key unreleased. > > I think this is handled by input core. We forcibly send release events > when device is disconnected; this takes care of surprise disconnect case. > OTOH if input_dev->close() is called that means that there are no more > listeners for the events so the fact that a key is still pressed is not > interesting to anyone. But what about the next opener? He'll get a completely spurious key release event, as the next key is pressed. > > > + usb_kill_urb(appleir->urb); > > > > If the system goes to sleep you'd better report a pressed key > > as released here and kill the timer. > > Input core sends "release" events upon resume so we should be OK. I see. OK, this is covered. Regards Oliver -- 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