Patchwork Fix interrupt handling in MPC8xxx GPIO driver

login
register
mail settings
Submitter Felix Radensky
Date Oct. 11, 2011, 8:24 a.m.
Message ID <1318321461-3066-1-git-send-email-felix@embedded-sol.com>
Download mbox | patch
Permalink /patch/118883/
State Accepted
Delegated to: Kumar Gala
Headers show

Comments

Felix Radensky - Oct. 11, 2011, 8:24 a.m.
Interrupt handler in MPC8xxx GPIO driver is missing the call
to PIC EOI (end of interrupt) handler. As a result, at least
on 85XX systems, GPIO interrupt is delivered only once. This
patch adds the missing EOI call. Tested on custom P1022 board.

Signed-off-by: Felix Radensky <felix@embedded-sol.com>
---
 arch/powerpc/sysdev/mpc8xxx_gpio.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Greg KH - Oct. 11, 2011, noon
On Tue, Oct 11, 2011 at 10:24:21AM +0200, Felix Radensky wrote:
> Interrupt handler in MPC8xxx GPIO driver is missing the call
> to PIC EOI (end of interrupt) handler. As a result, at least
> on 85XX systems, GPIO interrupt is delivered only once. This
> patch adds the missing EOI call. Tested on custom P1022 board.
> 
> Signed-off-by: Felix Radensky <felix@embedded-sol.com>
> ---
>  arch/powerpc/sysdev/mpc8xxx_gpio.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read Documentation/stable_kernel_rules.txt
for how to do this properly.

</formletter>
Kumar Gala - Nov. 3, 2011, 5:59 p.m.
On Oct 11, 2011, at 3:24 AM, Felix Radensky wrote:

> Interrupt handler in MPC8xxx GPIO driver is missing the call
> to PIC EOI (end of interrupt) handler. As a result, at least
> on 85XX systems, GPIO interrupt is delivered only once. This
> patch adds the missing EOI call. Tested on custom P1022 board.
> 
> Signed-off-by: Felix Radensky <felix@embedded-sol.com>
> ---
> arch/powerpc/sysdev/mpc8xxx_gpio.c |    1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)

applied. fixed to apply to new location of gpio driver

- k

Patch

diff --git a/arch/powerpc/sysdev/mpc8xxx_gpio.c b/arch/powerpc/sysdev/mpc8xxx_gpio.c
index fb4963a..d2e0e1c 100644
--- a/arch/powerpc/sysdev/mpc8xxx_gpio.c
+++ b/arch/powerpc/sysdev/mpc8xxx_gpio.c
@@ -153,6 +153,7 @@  static void mpc8xxx_gpio_irq_cascade(unsigned int irq, struct irq_desc *desc)
 	if (mask)
 		generic_handle_irq(irq_linear_revmap(mpc8xxx_gc->irq,
 						     32 - ffs(mask)));
+	desc->chip->eoi(irq);
 }
 
 static void mpc8xxx_irq_unmask(struct irq_data *d)