Felipe,
> -----Original Message-----
> From: linux-omap-ow...@vger.kernel.org 
> [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Felipe
> Balbi
> Sent: Monday, December 14, 2009 4:01 PM
> To: linux-ker...@vger.kernel.org
> 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.ba...@nokia.com>
> ---
>  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-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to