Hi, On Sun, Jun 09, 2013 at 10:54:47PM -0700, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > The patch below does not apply to the 3.9-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@xxxxxxxxxxxxxxx>. I couldn't reproduce the conflict for this patch on the 3.9 stable tree. How can I setup the correct 3.9-stable state with the conflict? Thanks, Markus > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From b5f83e9b069f4bf19214ca6130947806a2b853fa Mon Sep 17 00:00:00 2001 > From: Markus Pargmann <mpa@xxxxxxxxxxxxxx> > Date: Tue, 28 May 2013 17:00:57 +0200 > Subject: [PATCH] ARM: mxs: icoll: Fix interrupts gpio bank 0 > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > The mxs interrupt controller does not support polling for interrupts, > but the driver still does it, which is a relict from > pre-MULTI_IRQ_HANDLER times. > > The existing code assumes that 0x7f means no interrupt, but this value > is an actually valid irq number, namely gpio bank 0's irq. This results > in the driver not detecting when irq 0x7f is active which makes the > machine effectively dead lock. > > This patch removes the interrupt poll loop and allows usage of gpio0 > interrupt without an infinite loop. > > Signed-off-by: Uwe Kleine-K??nig <u.kleine-koenig@xxxxxxxxxxxxxx> > Signed-off-by: Markus Pargmann <mpa@xxxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Shawn Guo <shawn.guo@xxxxxxxxxx> > > diff --git a/drivers/irqchip/irq-mxs.c b/drivers/irqchip/irq-mxs.c > index 29889bb..63b3d4e 100644 > --- a/drivers/irqchip/irq-mxs.c > +++ b/drivers/irqchip/irq-mxs.c > @@ -76,16 +76,10 @@ asmlinkage void __exception_irq_entry icoll_handle_irq(struct pt_regs *regs) > { > u32 irqnr; > > - do { > - irqnr = __raw_readl(icoll_base + HW_ICOLL_STAT_OFFSET); > - if (irqnr != 0x7f) { > - __raw_writel(irqnr, icoll_base + HW_ICOLL_VECTOR); > - irqnr = irq_find_mapping(icoll_domain, irqnr); > - handle_IRQ(irqnr, regs); > - continue; > - } > - break; > - } while (1); > + irqnr = __raw_readl(icoll_base + HW_ICOLL_STAT_OFFSET); > + __raw_writel(irqnr, icoll_base + HW_ICOLL_VECTOR); > + irqnr = irq_find_mapping(icoll_domain, irqnr); > + handle_IRQ(irqnr, regs); > } > > static int icoll_irq_domain_map(struct irq_domain *d, unsigned int virq, > > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html