Felipe, > -----Original Message----- > From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of Felipe > Balbi > Sent: Monday, December 14, 2009 4:01 PM > To: linux-kernel@xxxxxxxxxxxxxxx > Cc: Linux OMAP Mailing List; Tony Lindgren; Aaro Koskinen; David Brownell; Linux USB Mailing List; > Anton Vorontsov; Grazvydas Ignotas; Chikkature Rajashekar, Madhusudhan; Greg Kroah-Hartman; Mark > Brown; Samuel Ortiz; Felipe Balbi > Subject: [RFC/PATCH 2/4] input: misc: twl4030: move to request_threaded_irq > > move to request_threaded_irq() on twl4030 children. > > Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxx> > --- > drivers/input/misc/twl4030-pwrbutton.c | 12 +----------- > 1 files changed, 1 insertions(+), 11 deletions(-) > > diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c > index f5fc997..cd47d9e 100644 > --- a/drivers/input/misc/twl4030-pwrbutton.c > +++ b/drivers/input/misc/twl4030-pwrbutton.c > @@ -39,16 +39,6 @@ static irqreturn_t powerbutton_irq(int irq, void *_pwr) > int err; > u8 value; > > -#ifdef CONFIG_LOCKDEP > - /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which > - * we don't want and can't tolerate since this is a threaded > - * IRQ and can sleep due to the i2c reads it has to issue. > - * Although it might be friendlier not to borrow this thread > - * context... > - */ > - local_irq_enable(); > -#endif > - > err = twl4030_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &value, > STS_HW_CONDITIONS); > if (!err) { > @@ -80,7 +70,7 @@ static int __devinit twl4030_pwrbutton_probe(struct platform_device *pdev) > pwr->phys = "twl4030_pwrbutton/input0"; > pwr->dev.parent = &pdev->dev; > > - err = request_irq(irq, powerbutton_irq, > + err = request_threaded_irq(irq, NULL, powerbutton_irq, > IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, > "twl4030_pwrbutton", pwr); > if (err < 0) { In whole of the series the ISR you have converted to threads using threaded_irq are very small in size. They are like quick_change_handlers. So only advantage is the particular interrupt is masked for bit longer than with you change. I might be wrong here but it might introduce the spurious IRQ's because of bit of delay in the processing.What is the motive for this change ? Are we using this API as it suppose to be ? -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html