[ARM] 5298/1: Drop desc_handle_irq()
authorDmitry Baryshkov <dbaryshkov@gmail.com>
Thu, 9 Oct 2008 12:36:24 +0000 (13:36 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 9 Oct 2008 14:00:36 +0000 (15:00 +0100)
desc_handle_irq() was declared as obsolete since long ago.
Replace it with generic_handle_irq()

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
42 files changed:
arch/arm/common/it8152.c
arch/arm/common/locomo.c
arch/arm/kernel/ecard.c
arch/arm/kernel/irq.c
arch/arm/mach-at91/gpio.c
arch/arm/mach-davinci/gpio.c
arch/arm/mach-ep93xx/core.c
arch/arm/mach-footbridge/isa-irq.c
arch/arm/mach-h720x/common.c
arch/arm/mach-h720x/cpu-h7202.c
arch/arm/mach-imx/irq.c
arch/arm/mach-integrator/integrator_cp.c
arch/arm/mach-iop13xx/msi.c
arch/arm/mach-ixp2000/core.c
arch/arm/mach-ixp2000/ixdp2x00.c
arch/arm/mach-ixp2000/ixdp2x01.c
arch/arm/mach-ixp23xx/core.c
arch/arm/mach-ixp23xx/ixdp2351.c
arch/arm/mach-lh7a40x/arch-kev7a400.c
arch/arm/mach-lh7a40x/arch-lpd7a40x.c
arch/arm/mach-lh7a40x/common.h
arch/arm/mach-lh7a40x/irq-lpd7a40x.c
arch/arm/mach-netx/generic.c
arch/arm/mach-ns9xxx/board-a9m9750dev.c
arch/arm/mach-omap1/board-voiceblue.c
arch/arm/mach-omap1/fpga.c
arch/arm/mach-orion5x/irq.c
arch/arm/mach-pxa/gpio.c
arch/arm/mach-pxa/lpd270.c
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/mainstone.c
arch/arm/mach-pxa/pcm990-baseboard.c
arch/arm/mach-s3c2410/bast-irq.c
arch/arm/mach-s3c2412/irq.c
arch/arm/mach-s3c2440/irq.c
arch/arm/mach-s3c2443/irq.c
arch/arm/mach-sa1100/irq.c
arch/arm/mach-sa1100/neponset.c
arch/arm/mach-versatile/core.c
arch/arm/plat-omap/gpio.c
arch/arm/plat-s3c24xx/irq.c
arch/arm/plat-s3c24xx/s3c244x-irq.c

index 5fe9588db077be52b1cebc1c11484e843e11a6d7..2793447621c300a34d6266ddd2b2b3dffefbe7d9 100644 (file)
@@ -66,14 +66,6 @@ static void it8152_unmask_irq(unsigned int irq)
        }
 }
 
-static inline void it8152_irq(int irq)
-{
-       struct irq_desc *desc;
-
-       desc = irq_desc + irq;
-       desc_handle_irq(irq, desc);
-}
-
 static struct irq_chip it8152_irq_chip = {
        .name           = "it8152",
        .ack            = it8152_mask_irq,
@@ -128,21 +120,21 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
               bits_pd &= ((1 << IT8152_PD_IRQ_COUNT) - 1);
               while (bits_pd) {
                       i = __ffs(bits_pd);
-                      it8152_irq(IT8152_PD_IRQ(i));
+                      generic_handle_irq(IT8152_PD_IRQ(i));
                       bits_pd &= ~(1 << i);
               }
 
               bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
               while (bits_lp) {
                       i = __ffs(bits_lp);
-                      it8152_irq(IT8152_LP_IRQ(i));
+                      generic_handle_irq(IT8152_LP_IRQ(i));
                       bits_lp &= ~(1 << i);
               }
 
               bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
               while (bits_ld) {
                       i = __ffs(bits_ld);
-                      it8152_irq(IT8152_LD_IRQ(i));
+                      generic_handle_irq(IT8152_LD_IRQ(i));
                       bits_ld &= ~(1 << i);
               }
        }
index 283051eaf931c7b1f02b58690ec7239d25eed9d7..8f473b7c34947c1587cb3486f53e99409a00d9ec 100644 (file)
@@ -169,7 +169,6 @@ static struct locomo_dev_info locomo_devices[] = {
 static void locomo_handler(unsigned int irq, struct irq_desc *desc)
 {
        int req, i;
-       struct irq_desc *d;
        void __iomem *mapbase = get_irq_chip_data(irq);
 
        /* Acknowledge the parent IRQ */
@@ -181,10 +180,9 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc)
        if (req) {
                /* generate the next interrupt(s) */
                irq = LOCOMO_IRQ_START;
-               d = irq_desc + irq;
-               for (i = 0; i <= 3; i++, d++, irq++) {
+               for (i = 0; i <= 3; i++, irq++) {
                        if (req & (0x0100 << i)) {
-                               desc_handle_irq(irq, d);
+                               generic_handle_irq(irq);
                        }
 
                }
@@ -222,12 +220,10 @@ static struct irq_chip locomo_chip = {
 
 static void locomo_key_handler(unsigned int irq, struct irq_desc *desc)
 {
-       struct irq_desc *d;
        void __iomem *mapbase = get_irq_chip_data(irq);
 
        if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
-               d = irq_desc + LOCOMO_IRQ_KEY_START;
-               desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
+               generic_handle_irq(LOCOMO_IRQ_KEY_START);
        }
 }
 
@@ -268,7 +264,6 @@ static struct irq_chip locomo_key_chip = {
 static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
 {
        int req, i;
-       struct irq_desc *d;
        void __iomem *mapbase = get_irq_chip_data(irq);
 
        req =   locomo_readl(mapbase + LOCOMO_GIR) &
@@ -277,10 +272,9 @@ static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
 
        if (req) {
                irq = LOCOMO_IRQ_GPIO_START;
-               d = irq_desc + LOCOMO_IRQ_GPIO_START;
-               for (i = 0; i <= 15; i++, irq++, d++) {
+               for (i = 0; i <= 15; i++, irq++) {
                        if (req & (0x0001 << i)) {
-                               desc_handle_irq(irq, d);
+                               generic_handle_irq(irq);
                        }
                }
        }
@@ -361,12 +355,10 @@ static struct irq_chip locomo_gpio_chip = {
 
 static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc)
 {
-       struct irq_desc *d;
        void __iomem *mapbase = get_irq_chip_data(irq);
 
        if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
-               d = irq_desc + LOCOMO_IRQ_LT_START;
-               desc_handle_irq(LOCOMO_IRQ_LT_START, d);
+               generic_handle_irq(LOCOMO_IRQ_LT_START);
        }
 }
 
@@ -407,17 +399,15 @@ static struct irq_chip locomo_lt_chip = {
 static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc)
 {
        int req, i;
-       struct irq_desc *d;
        void __iomem *mapbase = get_irq_chip_data(irq);
 
        req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
        if (req) {
                irq = LOCOMO_IRQ_SPI_START;
-               d = irq_desc + irq;
 
-               for (i = 0; i <= 3; i++, irq++, d++) {
+               for (i = 0; i <= 3; i++, irq++) {
                        if (req & (0x0001 << i)) {
-                               desc_handle_irq(irq, d);
+                               generic_handle_irq(irq);
                        }
                }
        }
index 7a50575a8d4dbfe153c6d786ed5c3ba6138fa1f8..60c079d8535528d6aa755b6d8fd488a13eaad560 100644 (file)
@@ -587,8 +587,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc)
                        pending = ecard_default_ops.irqpending(ec);
 
                if (pending) {
-                       struct irq_desc *d = irq_desc + ec->irq;
-                       desc_handle_irq(ec->irq, d);
+                       generic_handle_irq(ec->irq);
                        called ++;
                }
        }
@@ -622,7 +621,6 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
                ecard_t *ec = slot_to_ecard(slot);
 
                if (ec->claimed) {
-                       struct irq_desc *d = irq_desc + ec->irq;
                        /*
                         * this ugly code is so that we can operate a
                         * prioritorising system:
@@ -635,7 +633,7 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
                         * Serial cards should go in 0/1, ethernet/scsi in 2/3
                         * otherwise you will lose serial data at high speeds!
                         */
-                       desc_handle_irq(ec->irq, d);
+                       generic_handle_irq(ec->irq);
                } else {
                        printk(KERN_WARNING "card%d: interrupt from unclaimed "
                               "card???\n", slot);
index f88efb135b702b2e4e9610dd9df490331df71c5c..2f3eb795fa6e99a4fd1cde9911ab99070f233aad 100644 (file)
@@ -112,18 +112,17 @@ static struct irq_desc bad_irq_desc = {
 asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
 {
        struct pt_regs *old_regs = set_irq_regs(regs);
-       struct irq_desc *desc = irq_desc + irq;
+
+       irq_enter();
 
        /*
         * Some hardware gives randomly wrong interrupts.  Rather
         * than crashing, do something sensible.
         */
        if (irq >= NR_IRQS)
-               desc = &bad_irq_desc;
-
-       irq_enter();
-
-       desc_handle_irq(irq, desc);
+               handle_bad_irq(irq, &bad_irq_desc);
+       else
+               generic_handle_irq(irq);
 
        /* AT91 specific workaround */
        irq_finish(irq);
index 8392d5b517f15bc5dad300565188e4dafcccfe46..94c2f96811f93caba812f0dae8a43232736651f8 100644 (file)
@@ -404,7 +404,6 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
                }
 
                pin = bank->chipbase;
-               gpio = &irq_desc[pin];
 
                while (isr) {
                        if (isr & 1) {
@@ -417,7 +416,7 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
                                        gpio_irq_mask(pin);
                                }
                                else
-                                       desc_handle_irq(pin, gpio);
+                                       generic_handle_irq(pin);
                        }
                        pin++;
                        gpio++;
index c9cb4f09b18ffd88689315a5f48c7aff6b68f45d..574cb810a500343a921a65647bb3d261a39edc0b 100644 (file)
@@ -201,7 +201,6 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
        desc->chip->ack(irq);
        while (1) {
                u32             status;
-               struct irq_desc *gpio;
                int             n;
                int             res;
 
@@ -215,12 +214,10 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 
                /* now demux them to the right lowlevel handler */
                n = (int)get_irq_data(irq);
-               gpio = &irq_desc[n];
                while (status) {
                        res = ffs(status);
                        n += res;
-                       gpio += res;
-                       desc_handle_irq(n - 1, gpio - 1);
+                       generic_handle_irq(n - 1);
                        status >>= res;
                }
        }
index f99f436693928d36adf25aad1cbac3a9e7e35e60..68ee82b49597bedf759cb9b35ba48c0bc682d723 100644 (file)
@@ -192,8 +192,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
        for (i = 0; i < 8; i++) {
                if (status & (1 << i)) {
                        int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i;
-                       desc = irq_desc + gpio_irq;
-                       desc_handle_irq(gpio_irq, desc);
+                       generic_handle_irq(gpio_irq);
                }
        }
 
@@ -202,7 +201,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
                if (status & (1 << i)) {
                        int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i;
                        desc = irq_desc + gpio_irq;
-                       desc_handle_irq(gpio_irq, desc);
+                       generic_handle_irq(gpio_irq);
                }
        }
 }
@@ -217,7 +216,7 @@ static void ep93xx_gpio_f_irq_handler(unsigned int irq, struct irq_desc *desc)
        int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */
        int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx;
 
-       desc_handle_irq(gpio_irq, irq_desc + gpio_irq);
+       generic_handle_irq(gpio_irq);
 }
 
 static void ep93xx_gpio_irq_ack(unsigned int irq)
index 7132e522c3663ecd2e505a4f1c1ce410c093ba37..d5a29a0e7d9dd627b51ce542f7dc5cb1d61a1459 100644 (file)
@@ -94,8 +94,7 @@ isa_irq_handler(unsigned int irq, struct irq_desc *desc)
                return;
        }
 
-       desc = irq_desc + isa_irq;
-       desc_handle_irq(isa_irq, desc);
+       generic_handle_irq(isa_irq);
 }
 
 static struct irqaction irq_cascade = {
index b5f9741ae13cd66220f28742924e2bd15b29502b..c1fa44cff38de6656791253bf90a5149569019ae 100644 (file)
@@ -104,14 +104,12 @@ h720x_gpio_handler(unsigned int mask, unsigned int irq,
                  struct irq_desc *desc)
 {
        IRQDBG("%s irq: %d\n", __func__, irq);
-       desc = irq_desc + irq;
        while (mask) {
                if (mask & 1) {
                        IRQDBG("handling irq %d\n", irq);
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                }
                irq++;
-               desc++;
                mask >>= 1;
        }
 }
index 53e1f62f2e7916ffacd533f149b79aa868d6dfdf..fd33a19c813a57e0f062d20d0783013569c37985 100644 (file)
@@ -120,12 +120,10 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
 
        mask >>= 1;
        irq = IRQ_TIMER1;
-       desc = irq_desc + irq;
        while (mask) {
                if (mask & 1)
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                irq++;
-               desc++;
                mask >>= 1;
        }
 }
index 798f221eb3b7033e4f2aab147e8797fe270e944f..cbdd7d1dac92b1b3bd737317d588d0968097b17a 100644 (file)
@@ -182,14 +182,12 @@ static void
 imx_gpio_handler(unsigned int mask, unsigned int irq,
                  struct irq_desc *desc)
 {
-       desc = irq_desc + irq;
        while (mask) {
                if (mask & 1) {
                        DEBUG_IRQ("handling irq %d\n", irq);
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                }
                irq++;
-               desc++;
                mask >>= 1;
        }
 }
index 6b99e9c258bdcc71ae47d9b928d6ff83c1bccfa8..0c9a91d6ec83dbd863f901d3bb2a3d939063452f 100644 (file)
@@ -217,8 +217,7 @@ sic_handle_irq(unsigned int irq, struct irq_desc *desc)
 
                irq += IRQ_SIC_START;
 
-               desc = irq_desc + irq;
-               desc_handle_irq(irq, desc);
+               generic_handle_irq(irq);
        } while (status);
 }
 
index 63ef1124ca5cfa5596242de8e88d2d779b83189e..f34b0ed806305474221051fa2b000199330b9e73 100644 (file)
@@ -110,8 +110,7 @@ static void iop13xx_msi_handler(unsigned int irq, struct irq_desc *desc)
                do {
                        j = find_first_bit(&status, 32);
                        (write_imipr[i])(1 << j); /* write back to clear bit */
-                       desc = irq_desc + IRQ_IOP13XX_MSI_0 + j + (32*i);
-                       desc_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i), desc);
+                       generic_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i));
                        status = (read_imipr[i])();
                } while (status);
        }
index a6a4f93085fd8041017b34e5da2c309e3b87a66c..e193a34e417586cbabf63527a0a1b1fd807e15dc 100644 (file)
@@ -311,8 +311,7 @@ static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irq_desc *desc)
                   
        for (i = 0; i <= 7; i++) {
                if (status & (1<<i)) {
-                       desc = irq_desc + i + IRQ_IXP2000_GPIO0;
-                       desc_handle_irq(i + IRQ_IXP2000_GPIO0, desc);
+                       generic_handle_irq(i + IRQ_IXP2000_GPIO0);
                }
        }
 }
@@ -404,8 +403,7 @@ static void ixp2000_err_irq_handler(unsigned int irq, struct irq_desc *desc)
 
        for(i = 31; i >= 0; i--) {
                if(status & (1 << i)) {
-                       desc = irq_desc + IRQ_IXP2000_DRAM0_MIN_ERR + i;
-                       desc_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i, desc);
+                       generic_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i);
                }
        }
 }
index 5a781fd9757a1089c829cad9b1c5da3300de15fc..4c749d490241dbb1e32209974641621a2f00438a 100644 (file)
@@ -129,10 +129,8 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irq_desc *desc)
 
        for(i = 0; i < board_irq_count; i++) {
                if(ex_interrupt & (1 << i))  {
-                       struct irq_desc *cpld_desc;
                        int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
-                       cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc);
+                       generic_handle_irq(cpld_irq);
                }
        }
 
index 78a2341dee2c31fff2495d7dd7b1e1f361b22af9..b78c08d1f638d08fa7daa4af789182d057efde31 100644 (file)
@@ -79,10 +79,8 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irq_desc *desc)
 
        for (i = 0; i < IXP2000_BOARD_IRQS; i++) {
                if (ex_interrupt & (1 << i)) {
-                       struct irq_desc *cpld_desc;
                        int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
-                       cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc);
+                       generic_handle_irq(cpld_irq);
                }
        }
 
index 68b4ac5b24815ec5767c98bf9f93b42cd2e6110e..aa4c4420ff3d9d5b9462fa914734eb4a493790ed 100644 (file)
@@ -253,7 +253,6 @@ static void pci_handler(unsigned int irq, struct irq_desc *desc)
 {
        u32 pci_interrupt;
        unsigned int irqno;
-       struct irq_desc *int_desc;
 
        pci_interrupt = *IXP23XX_PCI_XSCALE_INT_STATUS;
 
@@ -268,8 +267,7 @@ static void pci_handler(unsigned int irq, struct irq_desc *desc)
                BUG();
        }
 
-       int_desc = irq_desc + irqno;
-       desc_handle_irq(irqno, int_desc);
+       generic_handle_irq(irqno);
 
        desc->chip->unmask(irq);
 }
index b6e0bfa44df93416223b90b1d6bd52112858fa5c..f1b124a709abd232b63625f6ddc143fd4b17730a 100644 (file)
@@ -68,11 +68,9 @@ static void ixdp2351_inta_handler(unsigned int irq, struct irq_desc *desc)
 
        for (i = 0; i < IXDP2351_INTA_IRQ_NUM; i++) {
                if (ex_interrupt & (1 << i)) {
-                       struct irq_desc *cpld_desc;
                        int cpld_irq =
                                IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i);
-                       cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc);
+                       generic_handle_irq(cpld_irq);
                }
        }
 
@@ -105,11 +103,9 @@ static void ixdp2351_intb_handler(unsigned int irq, struct irq_desc *desc)
 
        for (i = 0; i < IXDP2351_INTB_IRQ_NUM; i++) {
                if (ex_interrupt & (1 << i)) {
-                       struct irq_desc *cpld_desc;
                        int cpld_irq =
                                IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i);
-                       cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc);
+                       generic_handle_irq(cpld_irq);
                }
        }
 
index 551b972618268d1cee0aef6286ba8c9aebee236e..3d7bd50b9095ba30abc98130c86a0efd9ae86bfd 100644 (file)
@@ -77,7 +77,7 @@ static void kev7a400_cpld_handler (unsigned int irq, struct irq_desc *desc)
        irq = IRQ_KEV7A400_CPLD;
        for (; mask; mask >>= 1, ++irq)
                if (mask & 1)
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
 }
 
 void __init lh7a40x_init_board_irq (void)
index e373fb8e26999911b3ce8e2575d02369019390b9..cb15e5d321202690912bf33b184bfa5f9e2f7717 100644 (file)
@@ -214,11 +214,11 @@ static void lpd7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc)
        desc->chip->ack (irq);
 
        if ((mask & (1<<0)) == 0)       /* WLAN */
-               IRQ_DISPATCH (IRQ_LPD7A40X_ETH_INT);
+               generic_handle_irq(IRQ_LPD7A40X_ETH_INT);
 
 #if defined (IRQ_TOUCH)
        if ((mask & (1<<1)) == 0)       /* Touch */
-               IRQ_DISPATCH (IRQ_TOUCH);
+               generic_handle_irq(IRQ_TOUCH);
 #endif
 
        desc->chip->unmask (irq); /* Level-triggered need this */
index 0ca20c6c83b7be253e4ae897f6ba2b01af90f496..6ed3f6b6db766477c23c19e959dda22a11a5c251 100644 (file)
@@ -15,4 +15,3 @@ extern void lh7a404_init_irq (void);
 extern void lh7a40x_clcd_init (void);
 extern void lh7a40x_init_board_irq (void);
 
-#define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc + irq))
index 0d5063ebda10f51caf9641660575ee238a7d2852..fd033bb4342fc37f928bece12fcfb969fead5610 100644 (file)
@@ -63,10 +63,10 @@ static void lh7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc)
        desc->chip->ack (irq);
 
        if ((mask & 0x1) == 0)  /* WLAN */
-               IRQ_DISPATCH (IRQ_LPD7A40X_ETH_INT);
+               generic_handle_irq(IRQ_LPD7A40X_ETH_INT);
 
        if ((mask & 0x2) == 0)  /* Touch */
-               IRQ_DISPATCH (IRQ_LPD7A400_TS);
+               generic_handle_irq(IRQ_LPD7A400_TS);
 
        desc->chip->unmask (irq); /* Level-triggered need this */
 }
index 1b40483ea753a5af55ff8ec94d5572b004fcddab..3830eca2438a9c1b0440759bec01f7253f5b933d 100644 (file)
@@ -77,15 +77,12 @@ netx_hif_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
        stat = ((readl(NETX_DPMAS_INT_EN) &
                readl(NETX_DPMAS_INT_STAT)) >> 24) & 0x1f;
 
-       desc = irq_desc + NETX_IRQ_HIF_CHAINED(0);
-
        while (stat) {
                if (stat & 1) {
                        DEBUG_IRQ("handling irq %d\n", irq);
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                }
                irq++;
-               desc++;
                stat >>= 1;
        }
 }
index a22a608a7abaa8a84b1f34e0e5f23981e13bb7cb..b45bb3b802f137859bec70fd4732481f65008a0f 100644 (file)
@@ -86,13 +86,10 @@ static void a9m9750dev_fpga_demux_handler(unsigned int irq,
 
        while (stat != 0) {
                int irqno = fls(stat) - 1;
-               struct irq_desc *fpgadesc;
 
                stat &= ~(1 << irqno);
 
-               fpgadesc = irq_desc + FPGA_IRQ(irqno);
-
-               desc_handle_irq(FPGA_IRQ(irqno), fpgadesc);
+               generic_handle_irq(FPGA_IRQ(irqno));
        }
 
        desc->chip->unmask(irq);
index 213b48787102bf461ae30134907cd2fab0089127..45a01311669aecf643a02273db3000268d6e8af7 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/reboot.h>
 #include <linux/serial_8250.h>
 #include <linux/serial_reg.h>
+#include <linux/irq.h>
 
 #include <mach/hardware.h>
 #include <asm/mach-types.h>
index 4449d86095f673f554749cd22da2ccc876ded894..23f2c3aeb3842977ac90803c7f0b1206bfc5d262 100644 (file)
@@ -86,7 +86,6 @@ static void fpga_mask_ack_irq(unsigned int irq)
 
 void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
 {
-       struct irq_desc *d;
        u32 stat;
        int fpga_irq;
 
@@ -99,8 +98,7 @@ void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
             (fpga_irq < OMAP_FPGA_IRQ_END) && stat;
             fpga_irq++, stat >>= 1) {
                if (stat & 1) {
-                       d = irq_desc + fpga_irq;
-                       desc_handle_irq(fpga_irq, d);
+                       generic_handle_irq(fpga_irq);
                }
        }
 }
index 2545ff9e5830fc3f888c30b8ca2e28ee5c343371..15f27aa7f53e1c22ed6bd0e7c5d47aa5a74b4b31 100644 (file)
@@ -162,7 +162,7 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
                                polarity ^= 1 << pin;
                                writel(polarity, GPIO_IN_POL);
                        }
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                }
        }
 }
index 07acc1b2385795e71aaae6d007482a499a044388..e92bec510e5e0992d69597485ece54dd68857f71 100644 (file)
@@ -275,7 +275,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc)
                        loop = 1;
 
                        n = PXA_GPIO_IRQ_BASE + bit;
-                       desc_handle_irq(n, irq_desc + n);
+                       generic_handle_irq(n);
 
                        bit = find_next_bit(gedr, GEDR_BITS, bit + 1);
                }
index 92728a37298aa844b565e870603246efe8fb2dea..de3f67daaacf14c7378fe2c35449b27a8ed71909 100644 (file)
@@ -125,8 +125,7 @@ static void lpd270_irq_handler(unsigned int irq, struct irq_desc *desc)
                GEDR(0) = GPIO_bit(0);  /* clear useless edge notification */
                if (likely(pending)) {
                        irq = LPD270_IRQ(0) + __ffs(pending);
-                       desc = irq_desc + irq;
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
 
                        pending = __raw_readw(LPD270_INT_STATUS) &
                                                lpd270_irq_enabled;
index ecbfbb9f46a24c25851365fc98ce47441fb6413f..bff704354c1aaf5b7168290fec3bdc5635ae0659 100644 (file)
@@ -155,8 +155,7 @@ static void lubbock_irq_handler(unsigned int irq, struct irq_desc *desc)
                GEDR(0) = GPIO_bit(0);  /* clear our parent irq */
                if (likely(pending)) {
                        irq = LUBBOCK_IRQ(0) + __ffs(pending);
-                       desc = irq_desc + irq;
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                }
                pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled;
        } while (pending);
index a02edfd4fc0a04b2a69069e90cd0e10305a8818d..f2c7ad8f2b6b1fff6643a0f874f9169fb703fe09 100644 (file)
@@ -162,8 +162,7 @@ static void mainstone_irq_handler(unsigned int irq, struct irq_desc *desc)
                GEDR(0) = GPIO_bit(0);  /* clear useless edge notification */
                if (likely(pending)) {
                        irq = MAINSTONE_IRQ(0) + __ffs(pending);
-                       desc = irq_desc + irq;
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                }
                pending = MST_INTSETCLR & mainstone_irq_enabled;
        } while (pending);
index e9efb80bb339673a554283ff698eb23d50da4eb8..f601425f1b1eaa31b3307c4fea3e36785f920244 100644 (file)
@@ -262,8 +262,7 @@ static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc)
                                        GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO);
                if (likely(pending)) {
                        irq = PCM027_IRQ(0) + __ffs(pending);
-                       desc = irq_desc + irq;
-                       desc_handle_irq(irq, desc);
+                       generic_handle_irq(irq);
                }
                pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled;
        } while (pending);
index c66021b5fa4d055a76ce2a7c5afb7960d0964a98..44140bd99ed31a5c6af2aacc5a0e6d2ecd62f8f5 100644 (file)
@@ -130,8 +130,7 @@ bast_irq_pc104_demux(unsigned int irq,
                for (i = 0; stat != 0; i++, stat >>= 1) {
                        if (stat & 1) {
                                irqno = bast_pc104_irqs[i];
-                               desc = irq_desc + irqno;
-                               desc_handle_irq(irqno, desc);
+                               generic_handle_irq(irqno);
                        }
                }
        }
index ac62b79044f4a06b83a2ad115942c2dd54ed04d6..72159d31966e9e0c0c1a005d21c97c65c7605815 100644 (file)
@@ -123,10 +123,10 @@ static void s3c2412_irq_demux_cfsdi(unsigned int irq, struct irq_desc *desc)
        subsrc  &= ~submsk;
 
        if (subsrc & INTBIT(IRQ_S3C2412_SDI))
-               desc_handle_irq(IRQ_S3C2412_SDI, irq_desc + IRQ_S3C2412_SDI);
+               generic_handle_irq(IRQ_S3C2412_SDI);
 
        if (subsrc & INTBIT(IRQ_S3C2412_CF))
-               desc_handle_irq(IRQ_S3C2412_CF, irq_desc + IRQ_S3C2412_CF);
+               generic_handle_irq(IRQ_S3C2412_CF);
 }
 
 #define INTMSK_CFSDI   (1UL << (IRQ_S3C2412_CFSDI - IRQ_EINT0))
index 276b823f4e27f0130b3a141ec16f8e603fe46932..ad68b4d88353ca274a4ad65051e95959699f81d4 100644 (file)
@@ -44,7 +44,6 @@ static void s3c_irq_demux_wdtac97(unsigned int irq,
                                  struct irq_desc *desc)
 {
        unsigned int subsrc, submsk;
-       struct irq_desc *mydesc;
 
        /* read the current pending interrupts, and the mask
         * for what it is available */
@@ -58,12 +57,10 @@ static void s3c_irq_demux_wdtac97(unsigned int irq,
 
        if (subsrc != 0) {
                if (subsrc & 1) {
-                       mydesc = irq_desc + IRQ_S3C2440_WDT;
-                       desc_handle_irq(IRQ_S3C2440_WDT, mydesc);
+                       generic_handle_irq(IRQ_S3C2440_WDT);
                }
                if (subsrc & 2) {
-                       mydesc = irq_desc + IRQ_S3C2440_AC97;
-                       desc_handle_irq(IRQ_S3C2440_AC97, mydesc);
+                       generic_handle_irq(IRQ_S3C2440_AC97);
                }
        }
 }
index 9674de7223fdba311aad83f499064f4f6575dc41..1570d3a6e15fd106acbf277db8aade1fc06f2f3d 100644 (file)
@@ -44,7 +44,6 @@ static inline void s3c2443_irq_demux(unsigned int irq, unsigned int len)
 {
        unsigned int subsrc, submsk;
        unsigned int end;
-       struct irq_desc *mydesc;
 
        /* read the current pending interrupts, and the mask
         * for what it is available */
@@ -57,13 +56,11 @@ static inline void s3c2443_irq_demux(unsigned int irq, unsigned int len)
        subsrc  &= (1 << len)-1;
 
        end = len + irq;
-       mydesc = irq_desc + irq;
 
        for (; irq < end && subsrc; irq++) {
                if (subsrc & 1)
-                       desc_handle_irq(irq, mydesc);
+                       generic_handle_irq(irq);
 
-               mydesc++;
                subsrc >>= 1;
        }
 }
index 86369a8f0cea79696ddb2256401cf0be221f2ac2..3093d46a9c6fb1e66328b14430381e8395096c93 100644 (file)
@@ -122,14 +122,12 @@ sa1100_high_gpio_handler(unsigned int irq, struct irq_desc *desc)
                GEDR = mask;
 
                irq = IRQ_GPIO11;
-               desc = irq_desc + irq;
                mask >>= 11;
                do {
                        if (mask & 1)
-                               desc_handle_irq(irq, desc);
+                               generic_handle_irq(irq);
                        mask >>= 1;
                        irq++;
-                       desc++;
                } while (mask);
 
                mask = GEDR & 0xfffff800;
index 4856a6bd24824d75b09bd0d0bbbd7d2c3641f13e..6ccd175bc4cf2abffa832d2b626f1bebfbc821e2 100644 (file)
@@ -33,8 +33,6 @@ neponset_irq_handler(unsigned int irq, struct irq_desc *desc)
        unsigned int irr;
 
        while (1) {
-               struct irq_desc *d;
-
                /*
                 * Acknowledge the parent IRQ.
                 */
@@ -67,21 +65,18 @@ neponset_irq_handler(unsigned int irq, struct irq_desc *desc)
                        desc->chip->ack(irq);
 
                        if (irr & IRR_ETHERNET) {
-                               d = irq_desc + IRQ_NEPONSET_SMC9196;
-                               desc_handle_irq(IRQ_NEPONSET_SMC9196, d);
+                               generic_handle_irq(IRQ_NEPONSET_SMC9196);
                        }
 
                        if (irr & IRR_USAR) {
-                               d = irq_desc + IRQ_NEPONSET_USAR;
-                               desc_handle_irq(IRQ_NEPONSET_USAR, d);
+                               generic_handle_irq(IRQ_NEPONSET_USAR);
                        }
 
                        desc->chip->unmask(irq);
                }
 
                if (irr & IRR_SA1111) {
-                       d = irq_desc + IRQ_NEPONSET_SA1111;
-                       desc_handle_irq(IRQ_NEPONSET_SA1111, d);
+                       generic_handle_irq(IRQ_NEPONSET_SA1111);
                }
        }
 }
index d75e795c893e494b725f4ad177350651e32a60e6..c3468bf2841e6a53305ab6dc4732a0b7ea595748 100644 (file)
@@ -95,8 +95,7 @@ sic_handle_irq(unsigned int irq, struct irq_desc *desc)
 
                irq += IRQ_SIC_START;
 
-               desc = irq_desc + irq;
-               desc_handle_irq(irq, desc);
+               generic_handle_irq(irq);
        } while (status);
 }
 
index 9e1341ebc14e8842646ae8a53fb2aa9307031b69..960040aa71f729f155f3f18e69bce5f67095e9f6 100644 (file)
@@ -1051,13 +1051,10 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 
                gpio_irq = bank->virtual_irq_start;
                for (; isr != 0; isr >>= 1, gpio_irq++) {
-                       struct irq_desc *d;
-
                        if (!(isr & 1))
                                continue;
-                       d = irq_desc + gpio_irq;
 
-                       desc_handle_irq(gpio_irq, d);
+                       generic_handle_irq(gpio_irq);
                }
        }
        /* if bank has any level sensitive GPIO pin interrupt
index 36cefe17683566e8a657a923f6261146aab5e473..b6c84f4f7a12f136fea01ee76cba1f7fb5669806 100644 (file)
@@ -468,7 +468,6 @@ static void s3c_irq_demux_adc(unsigned int irq,
 {
        unsigned int subsrc, submsk;
        unsigned int offset = 9;
-       struct irq_desc *mydesc;
 
        /* read the current pending interrupts, and the mask
         * for what it is available */
@@ -482,12 +481,10 @@ static void s3c_irq_demux_adc(unsigned int irq,
 
        if (subsrc != 0) {
                if (subsrc & 1) {
-                       mydesc = irq_desc + IRQ_TC;
-                       desc_handle_irq(IRQ_TC, mydesc);
+                       generic_handle_irq(IRQ_TC);
                }
                if (subsrc & 2) {
-                       mydesc = irq_desc + IRQ_ADC;
-                       desc_handle_irq(IRQ_ADC, mydesc);
+                       generic_handle_irq(IRQ_ADC);
                }
        }
 }
@@ -496,7 +493,6 @@ static void s3c_irq_demux_uart(unsigned int start)
 {
        unsigned int subsrc, submsk;
        unsigned int offset = start - IRQ_S3CUART_RX0;
-       struct irq_desc *desc;
 
        /* read the current pending interrupts, and the mask
         * for what it is available */
@@ -512,20 +508,14 @@ static void s3c_irq_demux_uart(unsigned int start)
        subsrc &= 7;
 
        if (subsrc != 0) {
-               desc = irq_desc + start;
-
                if (subsrc & 1)
-                       desc_handle_irq(start, desc);
-
-               desc++;
+                       generic_handle_irq(start);
 
                if (subsrc & 2)
-                       desc_handle_irq(start+1, desc);
-
-               desc++;
+                       generic_handle_irq(start+1);
 
                if (subsrc & 4)
-                       desc_handle_irq(start+2, desc);
+                       generic_handle_irq(start+2);
        }
 }
 
@@ -572,7 +562,7 @@ s3c_irq_demux_extint8(unsigned int irq,
                eintpnd &= ~(1<<irq);
 
                irq += (IRQ_EINT4 - 4);
-               desc_handle_irq(irq, irq_desc + irq);
+               generic_handle_irq(irq);
        }
 
 }
@@ -595,7 +585,7 @@ s3c_irq_demux_extint4t7(unsigned int irq,
 
                irq += (IRQ_EINT4 - 4);
 
-               desc_handle_irq(irq, irq_desc + irq);
+               generic_handle_irq(irq);
        }
 }
 
index f3dc38cf1de4a66ea8f53dc8951481e321338153..1e094fcb45a51dc08cba328823dbb82560db5ead 100644 (file)
@@ -44,7 +44,6 @@ static void s3c_irq_demux_cam(unsigned int irq,
                              struct irq_desc *desc)
 {
        unsigned int subsrc, submsk;
-       struct irq_desc *mydesc;
 
        /* read the current pending interrupts, and the mask
         * for what it is available */
@@ -58,12 +57,10 @@ static void s3c_irq_demux_cam(unsigned int irq,
 
        if (subsrc != 0) {
                if (subsrc & 1) {
-                       mydesc = irq_desc + IRQ_S3C2440_CAM_C;
-                       desc_handle_irq(IRQ_S3C2440_CAM_C, mydesc);
+                       generic_handle_irq(IRQ_S3C2440_CAM_C);
                }
                if (subsrc & 2) {
-                       mydesc = irq_desc + IRQ_S3C2440_CAM_P;
-                       desc_handle_irq(IRQ_S3C2440_CAM_P, mydesc);
+                       generic_handle_irq(IRQ_S3C2440_CAM_P);
                }
        }
 }