diff options
-rw-r--r-- | arch/arm/mach-pxa/irq.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c index 256f8d2b3d9b..09d2fe19c85f 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -250,7 +250,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) | |||
250 | do { | 250 | do { |
251 | loop = 0; | 251 | loop = 0; |
252 | 252 | ||
253 | mask = GEDR0 & ~3; | 253 | mask = GEDR0 & GPIO_IRQ_mask[0] & ~3; |
254 | if (mask) { | 254 | if (mask) { |
255 | GEDR0 = mask; | 255 | GEDR0 = mask; |
256 | irq = IRQ_GPIO(2); | 256 | irq = IRQ_GPIO(2); |
@@ -266,7 +266,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) | |||
266 | loop = 1; | 266 | loop = 1; |
267 | } | 267 | } |
268 | 268 | ||
269 | mask = GEDR1; | 269 | mask = GEDR1 & GPIO_IRQ_mask[1]; |
270 | if (mask) { | 270 | if (mask) { |
271 | GEDR1 = mask; | 271 | GEDR1 = mask; |
272 | irq = IRQ_GPIO(32); | 272 | irq = IRQ_GPIO(32); |
@@ -281,7 +281,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) | |||
281 | loop = 1; | 281 | loop = 1; |
282 | } | 282 | } |
283 | 283 | ||
284 | mask = GEDR2; | 284 | mask = GEDR2 & GPIO_IRQ_mask[2]; |
285 | if (mask) { | 285 | if (mask) { |
286 | GEDR2 = mask; | 286 | GEDR2 = mask; |
287 | irq = IRQ_GPIO(64); | 287 | irq = IRQ_GPIO(64); |
@@ -296,8 +296,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) | |||
296 | loop = 1; | 296 | loop = 1; |
297 | } | 297 | } |
298 | 298 | ||
299 | #if PXA_LAST_GPIO >= 96 | 299 | mask = GEDR3 & GPIO_IRQ_mask[3]; |
300 | mask = GEDR3; | ||
301 | if (mask) { | 300 | if (mask) { |
302 | GEDR3 = mask; | 301 | GEDR3 = mask; |
303 | irq = IRQ_GPIO(96); | 302 | irq = IRQ_GPIO(96); |
@@ -311,7 +310,6 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) | |||
311 | } while (mask); | 310 | } while (mask); |
312 | loop = 1; | 311 | loop = 1; |
313 | } | 312 | } |
314 | #endif | ||
315 | } while (loop); | 313 | } while (loop); |
316 | } | 314 | } |
317 | 315 | ||