On Wed, Sep 01, 2010 at 18:51:42 +0200, Dmitry Torokhov wrote: > On Wed, Sep 01, 2010 at 01:05:51PM +0530, Sundar Iyer wrote: > > + ret = request_threaded_irq(info->irq_dbr, NULL, ab8500_ponkey_handler, > > + 0, "ab8500-ponkey-dbr", info); > > + if (ret < 0) { > > + dev_err(ab8500->dev, "Failed to request dbr IRQ#%d: %d\n", > > + info->irq_dbr, ret); > > + goto out_irq_dbf; > > + } > > + > > Why threaded IRQs? The interrupt handlers do not do _anything_ except for > passing the event up. Do you really think that starting 2 kernel threads > to handle 1 button is the best use of the resources??? Because the parent MFD uses nested threads for handling interrupts, you must specify a thread function. No new thread is started; this interrupt handler is called from the parent MFD's interrupt thread. > > I'll change it to use normal interrupts locally, no need to resubmit. Changing it to request_irq() will cause it to fail, because __setup_irq will error out if this is a nested thread interrupt and no interrupt thread is specified. request_any_context_irq() should work, if you would like to get rid of explicitly asking for a threaded irq. Rabin -- 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