Message ID | 1340933123-30401-1-git-send-email-javier@dowhile0.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
+Paul Javier Martinez Canillas <javier@dowhile0.org> writes: > commit 99b59df0 ARM: OMAP3: PM: fix shared PRCM interrupt leave disabled at boot > > set the IRQ_NOAUTOEN flag to the PCRM IO-chain irq to avoid this > interrupt until the PM core code is ready to handle the interrupts. > > It seems that this is not needed anymore after the OMAP PRCM I/O chain > code re-implementation introduced on merge commit: > > 9a17d88 Merge tag 'omap-devel-c-for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/ > > The IRQ_NOAUTOEN flags is not set for the PRCM I/O irq anymore on the > new implementation. This has the effect that a request_irq() for the > PRCM I/O chain irq will auto-enable the requested IRQ and a later call > to enable_irq() will lead to the following warning: I noticed that warning too, but I don't think $SUBJECT patch is the right fix. We still need the IRQ_NOAUTOEN so that cases where PM is not enabled, the IO chain interrupts are not enabled. Looking closer, it looks like the merge of omap-devel-c-for-3.6 removed the IRQ_NOAUTOEN in the merge resolution, which wasn't right. I'll cook up a fix for this. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Jun 29, 2012 at 2:55 PM, Kevin Hilman <khilman@ti.com> wrote: > +Paul > > Javier Martinez Canillas <javier@dowhile0.org> writes: > >> commit 99b59df0 ARM: OMAP3: PM: fix shared PRCM interrupt leave disabled at boot >> >> set the IRQ_NOAUTOEN flag to the PCRM IO-chain irq to avoid this >> interrupt until the PM core code is ready to handle the interrupts. >> >> It seems that this is not needed anymore after the OMAP PRCM I/O chain >> code re-implementation introduced on merge commit: >> >> 9a17d88 Merge tag 'omap-devel-c-for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/ >> >> The IRQ_NOAUTOEN flags is not set for the PRCM I/O irq anymore on the >> new implementation. This has the effect that a request_irq() for the >> PRCM I/O chain irq will auto-enable the requested IRQ and a later call >> to enable_irq() will lead to the following warning: > > I noticed that warning too, but I don't think $SUBJECT patch is the > right fix. > > We still need the IRQ_NOAUTOEN so that cases where PM is not enabled, > the IO chain interrupts are not enabled. > > Looking closer, it looks like the merge of omap-devel-c-for-3.6 removed > the IRQ_NOAUTOEN in the merge resolution, which wasn't right. > > I'll cook up a fix for this. > > Kevin > > Hi Kevin, Yes, I can confirme you that the IRQ_NOAUTOEN was gone. I didn't know if the right solution was to set that flag again or to just remove the duplicated enable_irq(). I should had tag my patch with RFC instead of PATCH I guess :-) Thanks a lot and best regards, Javier -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Javier Martinez Canillas <martinez.javier@gmail.com> writes: > On Fri, Jun 29, 2012 at 2:55 PM, Kevin Hilman <khilman@ti.com> wrote: >> +Paul >> >> Javier Martinez Canillas <javier@dowhile0.org> writes: >> >>> commit 99b59df0 ARM: OMAP3: PM: fix shared PRCM interrupt leave disabled at boot >>> >>> set the IRQ_NOAUTOEN flag to the PCRM IO-chain irq to avoid this >>> interrupt until the PM core code is ready to handle the interrupts. >>> >>> It seems that this is not needed anymore after the OMAP PRCM I/O chain >>> code re-implementation introduced on merge commit: >>> >>> 9a17d88 Merge tag 'omap-devel-c-for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/ >>> >>> The IRQ_NOAUTOEN flags is not set for the PRCM I/O irq anymore on the >>> new implementation. This has the effect that a request_irq() for the >>> PRCM I/O chain irq will auto-enable the requested IRQ and a later call >>> to enable_irq() will lead to the following warning: >> >> I noticed that warning too, but I don't think $SUBJECT patch is the >> right fix. >> >> We still need the IRQ_NOAUTOEN so that cases where PM is not enabled, >> the IO chain interrupts are not enabled. >> >> Looking closer, it looks like the merge of omap-devel-c-for-3.6 removed >> the IRQ_NOAUTOEN in the merge resolution, which wasn't right. >> >> I'll cook up a fix for this. >> >> Kevin >> >> > > Hi Kevin, > > Yes, I can confirme you that the IRQ_NOAUTOEN was gone. I didn't know > if the right solution was to set that flag again or to just remove the > duplicated enable_irq(). I should had tag my patch with RFC instead of > PATCH I guess :-) No worries. I just sent a patch adding back the IRQ_NOAUTOEN. Thanks for reporting the bug. I had noticed the boot time errors to but had not yet got to looking into them. Your patch made me dig deeper. Thanks, Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index e4fc88c..6f14e26 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -693,7 +693,6 @@ int __init omap3_pm_init(void) ret = request_irq(omap_prcm_event_to_irq("io"), _prcm_int_handle_io, IRQF_SHARED | IRQF_NO_SUSPEND, "pm_io", omap3_pm_init); - enable_irq(omap_prcm_event_to_irq("io")); if (ret) { pr_err("pm: Failed to request pm_io irq\n");
commit 99b59df0 ARM: OMAP3: PM: fix shared PRCM interrupt leave disabled at boot set the IRQ_NOAUTOEN flag to the PCRM IO-chain irq to avoid this interrupt until the PM core code is ready to handle the interrupts. It seems that this is not needed anymore after the OMAP PRCM I/O chain code re-implementation introduced on merge commit: 9a17d88 Merge tag 'omap-devel-c-for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/ The IRQ_NOAUTOEN flags is not set for the PRCM I/O irq anymore on the new implementation. This has the effect that a request_irq() for the PRCM I/O chain irq will auto-enable the requested IRQ and a later call to enable_irq() will lead to the following warning: [ 3.849334] WARNING: at kernel/irq/manage.c:436 enable_irq+0x3c/0x78() [ 3.856231] Unbalanced enable for IRQ 297 [ 3.860473] Modules linked in: [ 3.863739] [<c001a114>] (unwind_backtrace+0x0/0xf0) from [<c003c7e8>] (warn_slowpath_common+0x4c/0x64) [ 3.873687] [<c003c7e8>] (warn_slowpath_common+0x4c/0x64) from [<c003c894>] (warn_slowpath_fmt+0x30/0x40) [ 3.883819] [<c003c894>] (warn_slowpath_fmt+0x30/0x40) from [<c00993e0>] (enable_irq+0x3c/0x78) [ 3.893035] [<c00993e0>] (enable_irq+0x3c/0x78) from [<c067b1e8>] (omap3_pm_init+0x328/0x5f4) [ 3.902099] [<c067b1e8>] (omap3_pm_init+0x328/0x5f4) from [<c067161c>] (init_machine_late+0x1c/0x28) [ 3.911773] [<c067161c>] (init_machine_late+0x1c/0x28) from [<c0008648>] (do_one_initcall+0x34/0x178) [ 3.921539] [<c0008648>] (do_one_initcall+0x34/0x178) from [<c066e8f4>] (kernel_init+0xfc/0x1c0) [ 3.930847] [<c066e8f4>] (kernel_init+0xfc/0x1c0) from [<c00140b0>] (kernel_thread_exit+0x0/0x8) [ 3.940246] ---[ end trace 55a0ad32ca2ca682 ]--- Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org> --- This patch was generated on top of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git branch: master arch/arm/mach-omap2/pm34xx.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)