On Sun, Jun 28, 2009 at 12:45:17PM +0530, Trilok Soni wrote: > Hi Daniel, > > 2009/6/27 Daniel Ribeiro <drw...@gmail.com>: > > + > > + err = request_irq(pcap_to_irq(pcap_ts->pcap, PCAP_IRQ_TS), > > + pcap_ts_event_touch, 0, "Touch Screen", pcap_ts); > > + if (err) > > + goto fail; > > + > > + err = input_register_device(pcap_ts->input); > > + if (err) > > + goto fail_touch; > > Please move request_irq after input_register_device, as IRQ can get > fired before input device gets available, right? >
Actually it is OK to have IRQs fired before the device is registered. Input core guarantees that input device allocated with input_allocate_device() will survive if events are sent through it. The events will not be delivered anywhere, for obvious reason, but everything else should be fine. In fact, if device has an event() handler then it has to be fully operational (that includes IRQ reserved and ready, unless the driver implements open/close methods) before calling input_register_device - the handlers that will attach to the device have every right to start sending events back to the device right away and expect them to be handled properly. -- Dmitry