ARM: 6061/1: PL061 GPIO: Bug fix - setting gpio for HIGH_LEVEL interrupt is not working.
authorviresh kumar <viresh.kumar@st.com>
Thu, 29 Apr 2010 11:22:52 +0000 (12:22 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 29 Apr 2010 22:23:49 +0000 (23:23 +0100)
In current implementation of PL061, setting type of irq to HIGH_LEVEL is not
working. This patch fixes this bug.

Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Acked-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpio/pl061.c

index 2196f318114c19b36c4ca28e8baa5c51dc8b7606..105701a1f05be48e87c9862a80a907437e03863d 100644 (file)
@@ -189,7 +189,7 @@ static int pl061_irq_type(unsigned irq, unsigned trigger)
                gpioibe &= ~(1 << offset);
                if (trigger & IRQ_TYPE_EDGE_RISING)
                        gpioiev |= 1 << offset;
-               else
+               else if (trigger & IRQ_TYPE_EDGE_FALLING)
                        gpioiev &= ~(1 << offset);
        }
        writeb(gpioibe, chip->base + GPIOIBE);