* [PATCH v2] irqchip: omap-intc: fix legacy DMA regression [not found] <1420563093-26026-1-git-send-email-balbi@ti.com> @ 2015-01-06 20:38 ` Felipe Balbi 2015-01-07 3:00 ` Jason Cooper 0 siblings, 1 reply; 3+ messages in thread From: Felipe Balbi @ 2015-01-06 20:38 UTC (permalink / raw) To: Tony Lindgren, Thomas Gleixner, Jason Cooper Cc: Aaro Koskinen, Linux ARM Kernel Mailing List, Linux OMAP Mailing List, Linux Kernel Mailing List, Peter Kümmel, Pavel Machek, Santosh Shilimkar, Felipe Balbi, stable commit 55601c9f2467 (arm: omap: intc: switch over to linear irq domain) introduced a regression with SDMA legacy driver because that driver strictly depends on INTC's IRQs starting at NR_IRQs. Aparently irq_domain_add_linear() won't guarantee that, since we see a 7 IRQs difference when booting with and without the commit cited above. Until arch/arm/plat-omap/dma.c is properly fixed, we must maintain OMAP2/3 using irq_domain_add_legacy(). A FIXME note was added so people know to delete that code once that legacy DMA driver is fixed up. Fixes: 55601c9f2467 (arm: omap: intc: switch over to linear irq domain) Cc: <stable@vger.kernel.org> # v3.18 Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Felipe Balbi <balbi@ti.com> --- drivers/irqchip/irq-omap-intc.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/irqchip/irq-omap-intc.c b/drivers/irqchip/irq-omap-intc.c index 3c970259c0eb..6ef88f56cf8d 100644 --- a/drivers/irqchip/irq-omap-intc.c +++ b/drivers/irqchip/irq-omap-intc.c @@ -263,7 +263,7 @@ static int __init omap_init_irq_of(struct device_node *node) return ret; } -static int __init omap_init_irq_legacy(u32 base) +static int __init omap_init_irq_legacy(u32 base, struct device_node *node) { int j, irq_base; @@ -277,7 +277,7 @@ static int __init omap_init_irq_legacy(u32 base) irq_base = 0; } - domain = irq_domain_add_legacy(NULL, omap_nr_irqs, irq_base, 0, + domain = irq_domain_add_legacy(node, omap_nr_irqs, irq_base, 0, &irq_domain_simple_ops, NULL); omap_irq_soft_reset(); @@ -301,10 +301,26 @@ static int __init omap_init_irq(u32 base, struct device_node *node) { int ret; - if (node) + /* + * FIXME legacy OMAP DMA driver sitting under arch/arm/plat-omap/dma.c + * depends is still not ready for linear IRQ domains; because of that + * we need to temporarily "blacklist" OMAP2 and OMAP3 devices from using + * linear IRQ Domain until that driver is finally fixed. + */ + if (of_device_is_compatible(node, "ti,omap2-intc") || + of_device_is_compatible(node, "ti,omap3-intc")) { + struct resource res; + + if (of_address_to_resource(node, 0, &res)) + return -ENOMEM; + + base = res.start; + ret = omap_init_irq_legacy(base, node); + } else if (node) { ret = omap_init_irq_of(node); - else - ret = omap_init_irq_legacy(base); + } else { + ret = omap_init_irq_legacy(base, NULL); + } if (ret == 0) omap_irq_enable_protection(); -- 2.2.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] irqchip: omap-intc: fix legacy DMA regression 2015-01-06 20:38 ` [PATCH v2] irqchip: omap-intc: fix legacy DMA regression Felipe Balbi @ 2015-01-07 3:00 ` Jason Cooper 2015-01-19 18:34 ` Tony Lindgren 0 siblings, 1 reply; 3+ messages in thread From: Jason Cooper @ 2015-01-07 3:00 UTC (permalink / raw) To: Felipe Balbi Cc: Tony Lindgren, Thomas Gleixner, Aaro Koskinen, Linux ARM Kernel Mailing List, Linux OMAP Mailing List, Linux Kernel Mailing List, Peter Kümmel, Pavel Machek, Santosh Shilimkar, stable On Tue, Jan 06, 2015 at 02:38:08PM -0600, Felipe Balbi wrote: > commit 55601c9f2467 (arm: omap: intc: switch over > to linear irq domain) introduced a regression with > SDMA legacy driver because that driver strictly depends > on INTC's IRQs starting at NR_IRQs. Aparently > irq_domain_add_linear() won't guarantee that, since we see > a 7 IRQs difference when booting with and without the > commit cited above. > > Until arch/arm/plat-omap/dma.c is properly fixed, we > must maintain OMAP2/3 using irq_domain_add_legacy(). > > A FIXME note was added so people know to delete that > code once that legacy DMA driver is fixed up. > > Fixes: 55601c9f2467 (arm: omap: intc: switch over to linear irq domain) > Cc: <stable@vger.kernel.org> # v3.18 > Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi> > Tested-by: Tony Lindgren <tony@atomide.com> > Signed-off-by: Felipe Balbi <balbi@ti.com> > --- > drivers/irqchip/irq-omap-intc.c | 26 +++++++++++++++++++++----- > 1 file changed, 21 insertions(+), 5 deletions(-) Applied to irqchip/urgent. Thanks for taking care of the Fixes and stable tags! thx, Jason. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] irqchip: omap-intc: fix legacy DMA regression 2015-01-07 3:00 ` Jason Cooper @ 2015-01-19 18:34 ` Tony Lindgren 0 siblings, 0 replies; 3+ messages in thread From: Tony Lindgren @ 2015-01-19 18:34 UTC (permalink / raw) To: Jason Cooper Cc: Felipe Balbi, Thomas Gleixner, Aaro Koskinen, Linux ARM Kernel Mailing List, Linux OMAP Mailing List, Linux Kernel Mailing List, Peter Kümmel, Pavel Machek, Santosh Shilimkar, stable * Jason Cooper <jason@lakedaemon.net> [150106 19:03]: > On Tue, Jan 06, 2015 at 02:38:08PM -0600, Felipe Balbi wrote: > > commit 55601c9f2467 (arm: omap: intc: switch over > > to linear irq domain) introduced a regression with > > SDMA legacy driver because that driver strictly depends > > on INTC's IRQs starting at NR_IRQs. Aparently > > irq_domain_add_linear() won't guarantee that, since we see > > a 7 IRQs difference when booting with and without the > > commit cited above. > > > > Until arch/arm/plat-omap/dma.c is properly fixed, we > > must maintain OMAP2/3 using irq_domain_add_legacy(). > > > > A FIXME note was added so people know to delete that > > code once that legacy DMA driver is fixed up. > > > > Fixes: 55601c9f2467 (arm: omap: intc: switch over to linear irq domain) > > Cc: <stable@vger.kernel.org> # v3.18 > > Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi> > > Tested-by: Tony Lindgren <tony@atomide.com> > > Signed-off-by: Felipe Balbi <balbi@ti.com> > > --- > > drivers/irqchip/irq-omap-intc.c | 26 +++++++++++++++++++++----- > > 1 file changed, 21 insertions(+), 5 deletions(-) > > Applied to irqchip/urgent. Thanks for taking care of the Fixes and > stable tags! Jason, I'm not seeing this merged into v3.19-rc5, seems to be in Linux next though. Regards, Tony ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-01-19 18:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1420563093-26026-1-git-send-email-balbi@ti.com>
2015-01-06 20:38 ` [PATCH v2] irqchip: omap-intc: fix legacy DMA regression Felipe Balbi
2015-01-07 3:00 ` Jason Cooper
2015-01-19 18:34 ` Tony Lindgren
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).