Re: [PATCH] rtc-twl: Switch to using threaded irq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I think the patch should also remove the local_irq_enable() call in
twl_rtc_interrupt, since it's no longer needed with threaded irq. At
least on the Pandaboard the RTC is still working with the appended
patch.

-- Sebastian

> >> On Apr 13, 2011 Krishnamoorthy, Balaji T  wrote:
> >>> On Wed, Mar 16, 2011 at 9:37 PM, Ilkka Koskinen
> >> <ilkka.koskinen@xxxxxxxxx> wrote:
> >>>>
> >>>> The driver is accessing to i2c bus in interrupt handler.
> >>>> Therefore, it should use threaded irq.
> >>
> >>> Acked-by: Balaji T K <balajitk@xxxxxx>
> >>
> >>>>
> >>>> Signed-off-by: Ilkka Koskinen <ilkka.koskinen@xxxxxxxxx>
> >>>> ---
> >>>>  drivers/rtc/rtc-twl.c |    2 +-
> >>>>  1 files changed, 1 insertions(+), 1 deletions(-)
> >>>>
> >>>> diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c
> >>>> index ed1b868..2715b96 100644
> >>>> --- a/drivers/rtc/rtc-twl.c
> >>>> +++ b/drivers/rtc/rtc-twl.c
> >>>> @@ -475,7 +475,7 @@ static int __devinit twl_rtc_probe(struct platform_device *pdev)
> >>>>        if (ret < 0)
> >>>>                goto out1;
> >>>>
> >>>> -       ret = request_irq(irq, twl_rtc_interrupt,
> >>>> +       ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
> >>>>                                IRQF_TRIGGER_RISING,
> >>>>                                dev_name(&rtc->dev), rtc);
> >>>>        if (ret < 0) {
> >>>> --
> >>>> 1.7.0.4
--- a/drivers/rtc/rtc-twl.c   2011-05-19 06:06:34.000000000 +0200
+++ b/drivers/rtc/rtc-twl.c   2011-05-26 20:34:03.000000000 +0200
@@ -362,14 +362,6 @@
        int res;
        u8 rd_reg;
 
-#ifdef CONFIG_LOCKDEP
-       /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
-        * we don't want and can't tolerate.  Although it might be
-        * friendlier not to borrow this thread context...
-        */
-       local_irq_enable();
-#endif
-
        res = twl_rtc_read_u8(&rd_reg, REG_RTC_STATUS_REG);
        if (res)
                goto out;
@@ -462,7 +454,7 @@
        if (ret < 0)
                goto out1;
 
-       ret = request_irq(irq, twl_rtc_interrupt,
+       ret = request_threaded_irq(irq, NULL, twl_rtc_interrupt,
                                IRQF_TRIGGER_RISING,
                                dev_name(&rtc->dev), rtc);
        if (ret < 0) {

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux