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

Reply via email to