aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-pxa/irq.c10
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