Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4a3dcd35c82a2a25b2832502290e1a3f1571e9ef
Commit:     4a3dcd35c82a2a25b2832502290e1a3f1571e9ef
Parent:     348f2e3b2956e30f07d2507d7234c3f12a8a612d
Author:     Eric Miao <[EMAIL PROTECTED]>
AuthorDate: Wed Jun 6 06:45:18 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Thu Jul 12 14:28:14 2007 +0100

    [ARM] 4438/1: PXA: remove #ifdef .. #endif from pxa_gpio_demux_handler()
    
    1. use GPIO_IRQ_mask[] to select those bits of interest, actually
       only those "unmasked" GPIO IRQs with their corresponding bits
       in GPIO_IRQ_mask[] set to "1" should be checked
    
    2. remove #ifdef PXA_LAST_GPIO > 96 .. #endif, GPIO_IRQ_mask[]
       is used to mask out the irrelevant bits, so that even though
       the GEDR3 on PXA25x is reserved, it will be masked, and the
       following code will never run. Another point is that GPIO85-
       GPIO95 bits within GEDR2 will also be masked out on PXA25x
    
    Signed-off-by: eric miao <[EMAIL PROTECTED]>
    Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 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 256f8d2..09d2fe1 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)
        do {
                loop = 0;
 
-               mask = GEDR0 & ~3;
+               mask = GEDR0 & GPIO_IRQ_mask[0] & ~3;
                if (mask) {
                        GEDR0 = mask;
                        irq = IRQ_GPIO(2);
@@ -266,7 +266,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct 
irq_desc *desc)
                        loop = 1;
                }
 
-               mask = GEDR1;
+               mask = GEDR1 & GPIO_IRQ_mask[1];
                if (mask) {
                        GEDR1 = mask;
                        irq = IRQ_GPIO(32);
@@ -281,7 +281,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct 
irq_desc *desc)
                        loop = 1;
                }
 
-               mask = GEDR2;
+               mask = GEDR2 & GPIO_IRQ_mask[2];
                if (mask) {
                        GEDR2 = mask;
                        irq = IRQ_GPIO(64);
@@ -296,8 +296,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct 
irq_desc *desc)
                        loop = 1;
                }
 
-#if PXA_LAST_GPIO >= 96
-               mask = GEDR3;
+               mask = GEDR3 & GPIO_IRQ_mask[3];
                if (mask) {
                        GEDR3 = mask;
                        irq = IRQ_GPIO(96);
@@ -311,7 +310,6 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct 
irq_desc *desc)
                        } while (mask);
                        loop = 1;
                }
-#endif
        } while (loop);
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to