]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
Initial blind fixup for arm for irq changes
authorLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Oct 2006 17:53:39 +0000 (10:53 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Oct 2006 17:59:54 +0000 (10:59 -0700)
Untested, but this should fix up the bulk of the totally mechanical
issues, and should make the actual detail fixing easier.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
100 files changed:
arch/arm/common/locomo.c
arch/arm/common/sa1111.c
arch/arm/common/sharpsl_pm.c
arch/arm/common/time-acorn.c
arch/arm/kernel/ecard.c
arch/arm/kernel/irq.c
arch/arm/kernel/time.c
arch/arm/mach-aaec2000/core.c
arch/arm/mach-at91rm9200/at91rm9200_time.c
arch/arm/mach-at91rm9200/gpio.c
arch/arm/mach-clps711x/time.c
arch/arm/mach-clps7500/core.c
arch/arm/mach-ebsa110/core.c
arch/arm/mach-ep93xx/core.c
arch/arm/mach-footbridge/dc21285-timer.c
arch/arm/mach-footbridge/dc21285.c
arch/arm/mach-footbridge/isa-irq.c
arch/arm/mach-footbridge/isa-timer.c
arch/arm/mach-h720x/common.c
arch/arm/mach-h720x/cpu-h7201.c
arch/arm/mach-h720x/cpu-h7202.c
arch/arm/mach-imx/dma.c
arch/arm/mach-imx/irq.c
arch/arm/mach-imx/time.c
arch/arm/mach-integrator/core.c
arch/arm/mach-integrator/integrator_cp.c
arch/arm/mach-integrator/pci_v3.c
arch/arm/mach-integrator/time.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-ixp4xx/common.c
arch/arm/mach-ixp4xx/nas100d-power.c
arch/arm/mach-ixp4xx/nslu2-power.c
arch/arm/mach-lh7a40x/arch-kev7a400.c
arch/arm/mach-lh7a40x/arch-lpd7a40x.c
arch/arm/mach-lh7a40x/irq-kev7a400.c
arch/arm/mach-lh7a40x/irq-lpd7a40x.c
arch/arm/mach-lh7a40x/time.c
arch/arm/mach-netx/generic.c
arch/arm/mach-netx/time.c
arch/arm/mach-omap1/board-osk.c
arch/arm/mach-omap1/fpga.c
arch/arm/mach-omap1/pm.c
arch/arm/mach-omap1/serial.c
arch/arm/mach-omap1/time.c
arch/arm/mach-omap2/board-apollon.c
arch/arm/mach-omap2/timer-gp.c
arch/arm/mach-pnx4008/dma.c
arch/arm/mach-pnx4008/time.c
arch/arm/mach-pxa/corgi.c
arch/arm/mach-pxa/dma.c
arch/arm/mach-pxa/idp.c
arch/arm/mach-pxa/irq.c
arch/arm/mach-pxa/lpd270.c
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/mainstone.c
arch/arm/mach-pxa/poodle.c
arch/arm/mach-pxa/spitz.c
arch/arm/mach-pxa/ssp.c
arch/arm/mach-pxa/time.c
arch/arm/mach-pxa/tosa.c
arch/arm/mach-pxa/trizeps4.c
arch/arm/mach-realview/core.c
arch/arm/mach-rpc/dma.c
arch/arm/mach-s3c2410/bast-irq.c
arch/arm/mach-s3c2410/dma.c
arch/arm/mach-s3c2410/irq.c
arch/arm/mach-s3c2410/mach-amlm5900.c
arch/arm/mach-s3c2410/s3c2440-irq.c
arch/arm/mach-s3c2410/s3c244x-irq.c
arch/arm/mach-s3c2410/time.c
arch/arm/mach-s3c2410/usb-simtec.c
arch/arm/mach-sa1100/dma.c
arch/arm/mach-sa1100/h3600.c
arch/arm/mach-sa1100/irq.c
arch/arm/mach-sa1100/neponset.c
arch/arm/mach-sa1100/ssp.c
arch/arm/mach-sa1100/time.c
arch/arm/mach-shark/core.c
arch/arm/mach-shark/irq.c
arch/arm/mach-versatile/core.c
arch/arm/oprofile/op_model_xscale.c
arch/arm/plat-iop/time.c
arch/arm/plat-omap/dma.c
arch/arm/plat-omap/gpio.c
arch/arm/plat-omap/mcbsp.c
arch/arm/plat-omap/timer32k.c
include/asm-arm/arch-clps711x/time.h
include/asm-arm/arch-imx/imx-dma.h
include/asm-arm/arch-l7200/time.h
include/asm-arm/arch-pnx4008/dma.h
include/asm-arm/arch-pxa/dma.h
include/asm-arm/arch-pxa/mmc.h
include/asm-arm/hardware/sharpsl_pm.h
include/asm-arm/irq_regs.h [new file with mode: 0644]
include/asm-arm/mach/irq.h
include/asm-arm/mach/time.h

index 181ef1ead5b8362e1bef5fabe94f2659befceced..80a72c75214f65956e5ce1872d190fcb3a4cceae 100644 (file)
@@ -163,8 +163,7 @@ static struct locomo_dev_info locomo_devices[] = {
 #define        LOCOMO_IRQ_LT_START     (IRQ_LOCOMO_LT)
 #define        LOCOMO_IRQ_SPI_START    (IRQ_LOCOMO_SPI_RFR)
 
-static void locomo_handler(unsigned int irq, struct irqdesc *desc,
-                       struct pt_regs *regs)
+static void locomo_handler(unsigned int irq, struct irqdesc *desc)
 {
        int req, i;
        struct irqdesc *d;
@@ -182,7 +181,7 @@ static void locomo_handler(unsigned int irq, struct irqdesc *desc,
                d = irq_desc + irq;
                for (i = 0; i <= 3; i++, d++, irq++) {
                        if (req & (0x0100 << i)) {
-                               desc_handle_irq(irq, d, regs);
+                               desc_handle_irq(irq, d);
                        }
 
                }
@@ -218,15 +217,14 @@ static struct irq_chip locomo_chip = {
        .unmask = locomo_unmask_irq,
 };
 
-static void locomo_key_handler(unsigned int irq, struct irqdesc *desc,
-                           struct pt_regs *regs)
+static void locomo_key_handler(unsigned int irq, struct irqdesc *desc)
 {
        struct irqdesc *d;
        void __iomem *mapbase = get_irq_chipdata(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, regs);
+               desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
        }
 }
 
@@ -264,8 +262,7 @@ static struct irq_chip locomo_key_chip = {
        .unmask = locomo_key_unmask_irq,
 };
 
-static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc,
-                            struct pt_regs *regs)
+static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc)
 {
        int req, i;
        struct irqdesc *d;
@@ -280,7 +277,7 @@ static void locomo_gpio_handler(unsigned int irq, struct irqdesc *desc,
                d = irq_desc + LOCOMO_IRQ_GPIO_START;
                for (i = 0; i <= 15; i++, irq++, d++) {
                        if (req & (0x0001 << i)) {
-                               desc_handle_irq(irq, d, regs);
+                               desc_handle_irq(irq, d);
                        }
                }
        }
@@ -328,15 +325,14 @@ static struct irq_chip locomo_gpio_chip = {
        .unmask = locomo_gpio_unmask_irq,
 };
 
-static void locomo_lt_handler(unsigned int irq, struct irqdesc *desc,
-                          struct pt_regs *regs)
+static void locomo_lt_handler(unsigned int irq, struct irqdesc *desc)
 {
        struct irqdesc *d;
        void __iomem *mapbase = get_irq_chipdata(irq);
 
        if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
                d = irq_desc + LOCOMO_IRQ_LT_START;
-               desc_handle_irq(LOCOMO_IRQ_LT_START, d, regs);
+               desc_handle_irq(LOCOMO_IRQ_LT_START, d);
        }
 }
 
@@ -374,8 +370,7 @@ static struct irq_chip locomo_lt_chip = {
        .unmask = locomo_lt_unmask_irq,
 };
 
-static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc,
-                           struct pt_regs *regs)
+static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc)
 {
        int req, i;
        struct irqdesc *d;
@@ -388,7 +383,7 @@ static void locomo_spi_handler(unsigned int irq, struct irqdesc *desc,
 
                for (i = 0; i <= 3; i++, irq++, d++) {
                        if (req & (0x0001 << i)) {
-                               desc_handle_irq(irq, d, regs);
+                               desc_handle_irq(irq, d);
                        }
                }
        }
index 30046ad41cedd52fd3884deced4a242f1a5186d1..d5f72010a6f315c122fb50f211690eec45ed39b6 100644 (file)
@@ -147,7 +147,7 @@ void __init sa1111_adjust_zones(int node, unsigned long *size, unsigned long *ho
  * will call us again if there are more interrupts to process.
  */
 static void
-sa1111_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+sa1111_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned int stat0, stat1, i;
        void __iomem *base = get_irq_data(irq);
@@ -162,17 +162,17 @@ sa1111_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
        sa1111_writel(stat1, base + SA1111_INTSTATCLR1);
 
        if (stat0 == 0 && stat1 == 0) {
-               do_bad_IRQ(irq, desc, regs);
+               do_bad_IRQ(irq, desc);
                return;
        }
 
        for (i = IRQ_SA1111_START; stat0; i++, stat0 >>= 1)
                if (stat0 & 1)
-                       handle_edge_irq(i, irq_desc + i, regs);
+                       handle_edge_irq(i, irq_desc + i);
 
        for (i = IRQ_SA1111_START + 32; stat1; i++, stat1 >>= 1)
                if (stat1 & 1)
-                       handle_edge_irq(i, irq_desc + i, regs);
+                       handle_edge_irq(i, irq_desc + i);
 
        /* For level-based interrupts */
        desc->chip->unmask(irq);
index f412dedda68412b2c6ac239826e1adc14f03931a..605dedf967907cf3f360f194e467ff5b0b5b7375 100644 (file)
@@ -258,7 +258,7 @@ static void sharpsl_ac_timer(unsigned long data)
 }
 
 
-irqreturn_t sharpsl_ac_isr(int irq, void *dev_id, struct pt_regs *fp)
+irqreturn_t sharpsl_ac_isr(int irq, void *dev_id)
 {
        /* Delay the event slightly to debounce */
        /* Must be a smaller delay than the chrg_full_isr below */
@@ -293,7 +293,7 @@ static void sharpsl_chrg_full_timer(unsigned long data)
 /* Charging Finished Interrupt (Not present on Corgi) */
 /* Can trigger at the same time as an AC staus change so
    delay until after that has been processed */
-irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id, struct pt_regs *fp)
+irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id)
 {
        if (sharpsl_pm.flags & SHARPSL_SUSPENDED)
                return IRQ_HANDLED;
@@ -304,7 +304,7 @@ irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id, struct pt_regs *fp)
        return IRQ_HANDLED;
 }
 
-irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id, struct pt_regs *fp)
+irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id)
 {
        int is_fatal = 0;
 
index 3f60dd9aca80bfb7961329d8dfc39004d5ef7be1..34038eccbba9e478b3bfb75ec283e289fee63cb2 100644 (file)
@@ -67,10 +67,10 @@ void __init ioctime_init(void)
 }
 
 static irqreturn_t
-ioc_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+ioc_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
        return IRQ_HANDLED;
 }
index 3e14b1348c0b715d77c77390bdd12e95668c5e0a..b27513a0f11ee292502ce47152c21e10154e1de4 100644 (file)
@@ -567,7 +567,7 @@ static void ecard_check_lockup(struct irqdesc *desc)
 }
 
 static void
-ecard_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+ecard_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        ecard_t *ec;
        int called = 0;
@@ -586,7 +586,7 @@ ecard_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
 
                if (pending) {
                        struct irqdesc *d = irq_desc + ec->irq;
-                       desc_handle_irq(ec->irq, d, regs);
+                       desc_handle_irq(ec->irq, d);
                        called ++;
                }
        }
@@ -609,7 +609,7 @@ static unsigned char first_set[] =
 };
 
 static void
-ecard_irqexp_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+ecard_irqexp_handler(unsigned int irq, struct irqdesc *desc)
 {
        const unsigned int statusmask = 15;
        unsigned int status;
@@ -633,7 +633,7 @@ ecard_irqexp_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *reg
                         * 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, regs);
+                       desc_handle_irq(ec->irq, d);
                } else {
                        printk(KERN_WARNING "card%d: interrupt from unclaimed "
                               "card???\n", slot);
index 2e1bf830fe11bf0523b2e37cbefaa32d50db4d55..e999b11de2c610e1299790d343efdab5b15cf3db 100644 (file)
@@ -122,7 +122,8 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
 
        irq_enter();
 
-       desc_handle_irq(irq, desc, regs);
+       set_irq_regs(regs);
+       desc_handle_irq(irq, desc);
 
        /* AT91 specific workaround */
        irq_finish(irq);
index b030320b17c7eef06e1a66ddd084b67867aa235f..b094e3e81981c72148b2fd23736df66b633b6186 100644 (file)
@@ -324,8 +324,9 @@ EXPORT_SYMBOL(restore_time_delta);
 /*
  * Kernel system timer support.
  */
-void timer_tick(struct pt_regs *regs)
+void timer_tick(void)
 {
+       struct pt_regs *regs = get_irq_regs();
        profile_tick(CPU_PROFILING, regs);
        do_leds();
        do_set_rtc();
index baa997c857dc938afd3353cd1616a57fdc622451..fe3d297d682d2ba19fd224f9c7cf9ce3ad63eeef 100644 (file)
@@ -127,12 +127,12 @@ static unsigned long aaec2000_gettimeoffset(void)
 
 /* We enter here with IRQs enabled */
 static irqreturn_t
-aaec2000_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+aaec2000_timer_interrupt(int irq, void *dev_id)
 {
        /* TODO: Check timer accuracy */
        write_seqlock(&xtime_lock);
 
-       timer_tick(regs);
+       timer_tick();
        TIMER1_CLEAR = 1;
 
        write_sequnlock(&xtime_lock);
index a92a8622c78a04857712b34fc661cc7dd617c8ea..07c9cea8961d745742d83490802f2a4a05888120 100644 (file)
@@ -65,13 +65,13 @@ static unsigned long at91rm9200_gettimeoffset(void)
 /*
  * IRQ handler for the timer.
  */
-static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t at91rm9200_timer_interrupt(int irq, void *dev_id)
 {
        if (at91_sys_read(AT91_ST_SR) & AT91_ST_PITS) { /* This is a shared interrupt */
                write_seqlock(&xtime_lock);
 
                while (((read_CRTR() - last_crtr) & AT91_ST_ALMV) >= LATCH) {
-                       timer_tick(regs);
+                       timer_tick();
                        last_crtr = (last_crtr + LATCH) & AT91_ST_ALMV;
                }
 
index 58c9bf5e95205f1e4ecbed09d85b175f284a5a22..7467d644f0a3406c7ccc939d4f19e0f9ff8ab2aa 100644 (file)
@@ -332,7 +332,7 @@ static struct irq_chip gpio_irqchip = {
        .set_wake       = gpio_irq_set_wake,
 };
 
-static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs *regs)
+static void gpio_irq_handler(unsigned irq, struct irqdesc *desc)
 {
        unsigned        pin;
        struct irqdesc  *gpio;
@@ -363,7 +363,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
                                        gpio_irq_mask(pin);
                                }
                                else
-                                       desc_handle_irq(pin, gpio, regs);
+                                       desc_handle_irq(pin, gpio);
                        }
                        pin++;
                        gpio++;
index a071eac4a30a3cd5617b914a34b87bae00b54b09..428493dd4687a73c6512ba1a3ec4ed2716e8407a 100644 (file)
@@ -48,10 +48,10 @@ static unsigned long clps711x_gettimeoffset(void)
  * IRQ handler for the timer
  */
 static irqreturn_t
-p720t_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+p720t_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
        return IRQ_HANDLED;
 }
index 92eaebdd56061455fdfbb812e6b5cc3f4d861f57..fb10cf252588ac1174304095b3b1cf82d6aec710 100644 (file)
@@ -292,11 +292,11 @@ extern void ioctime_init(void);
 extern unsigned long ioc_timer_gettimeoffset(void);
 
 static irqreturn_t
-clps7500_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+clps7500_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
-       timer_tick(regs);
+       timer_tick();
 
        /* Why not using do_leds interface?? */
        {
index 70dd12ef3c40da46521d35a8bc527e8c546716b8..90103ab373a6ae8fbe830f5e96767ecbe197787c 100644 (file)
@@ -174,7 +174,7 @@ static unsigned long ebsa110_gettimeoffset(void)
 }
 
 static irqreturn_t
-ebsa110_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+ebsa110_timer_interrupt(int irq, void *dev_id)
 {
        u32 count;
 
@@ -190,7 +190,7 @@ ebsa110_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
        __raw_writeb(count & 0xff, PIT_T1);
        __raw_writeb(count >> 8, PIT_T1);
 
-       timer_tick(regs);
+       timer_tick();
 
        write_sequnlock(&xtime_lock);
 
index a87a784b9201519db7e5138b68aa34b305c08f0b..e3fd1ab6adccfa4ca051a76a5a31a675b75c11a7 100644 (file)
@@ -97,7 +97,7 @@ static unsigned int last_jiffy_time;
 
 #define TIMER4_TICKS_PER_JIFFY         ((CLOCK_TICK_RATE + (HZ/2)) / HZ)
 
-static int ep93xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static int ep93xx_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
@@ -106,7 +106,7 @@ static int ep93xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
                (__raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time)
                                                >= TIMER4_TICKS_PER_JIFFY) {
                last_jiffy_time += TIMER4_TICKS_PER_JIFFY;
-               timer_tick(regs);
+               timer_tick();
        }
 
        write_sequnlock(&xtime_lock);
@@ -245,7 +245,7 @@ EXPORT_SYMBOL(gpio_line_set);
  * EP93xx IRQ handling
  *************************************************************************/
 static void ep93xx_gpio_ab_irq_handler(unsigned int irq,
-               struct irqdesc *desc, struct pt_regs *regs)
+               struct irqdesc *desc)
 {
        unsigned char status;
        int i;
@@ -254,7 +254,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq,
        for (i = 0; i < 8; i++) {
                if (status & (1 << i)) {
                        desc = irq_desc + IRQ_EP93XX_GPIO(0) + i;
-                       desc_handle_irq(IRQ_EP93XX_GPIO(0) + i, desc, regs);
+                       desc_handle_irq(IRQ_EP93XX_GPIO(0) + i, desc);
                }
        }
 
@@ -262,7 +262,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq,
        for (i = 0; i < 8; i++) {
                if (status & (1 << i)) {
                        desc = irq_desc + IRQ_EP93XX_GPIO(8) + i;
-                       desc_handle_irq(IRQ_EP93XX_GPIO(8) + i, desc, regs);
+                       desc_handle_irq(IRQ_EP93XX_GPIO(8) + i, desc);
                }
        }
 }
index 2af610811ca4247bda63c9a885163ba4891911e4..fa6be870c6c20cac3896bacfda7f52cbd93d6b85 100644 (file)
@@ -28,13 +28,13 @@ static unsigned long timer1_gettimeoffset (void)
 }
 
 static irqreturn_t
-timer1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+timer1_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
        *CSR_TIMER1_CLR = 0;
 
-       timer_tick(regs);
+       timer_tick();
 
        write_sequnlock(&xtime_lock);
 
index a1ae49df5c3be95c6ba23070a7369ee56b173a4c..fa5d4976f514e6b8469813452da1c79b7a10527f 100644 (file)
@@ -154,7 +154,7 @@ static void dc21285_enable_error(unsigned long __data)
 /*
  * Warn on PCI errors.
  */
-static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_abort_irq(int irq, void *dev_id)
 {
        unsigned int cmd;
        unsigned int status;
@@ -165,7 +165,7 @@ static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs
 
        if (status & PCI_STATUS_REC_MASTER_ABORT) {
                printk(KERN_DEBUG "PCI: master abort, pc=0x%08lx\n",
-                       instruction_pointer(regs));
+                       instruction_pointer(get_irq_regs()));
                cmd |= PCI_STATUS_REC_MASTER_ABORT << 16;
        }
 
@@ -184,7 +184,7 @@ static irqreturn_t dc21285_abort_irq(int irq, void *dev_id, struct pt_regs *regs
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_serr_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_serr_irq(int irq, void *dev_id)
 {
        struct timer_list *timer = dev_id;
        unsigned int cntl;
@@ -206,7 +206,7 @@ static irqreturn_t dc21285_serr_irq(int irq, void *dev_id, struct pt_regs *regs)
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_discard_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_discard_irq(int irq, void *dev_id)
 {
        printk(KERN_DEBUG "PCI: discard timer expired\n");
        *CSR_SA110_CNTL &= 0xffffde07;
@@ -214,7 +214,7 @@ static irqreturn_t dc21285_discard_irq(int irq, void *dev_id, struct pt_regs *re
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id)
 {
        unsigned int cmd;
 
@@ -228,7 +228,7 @@ static irqreturn_t dc21285_dparity_irq(int irq, void *dev_id, struct pt_regs *re
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dc21285_parity_irq(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dc21285_parity_irq(int irq, void *dev_id)
 {
        struct timer_list *timer = dev_id;
        unsigned int cmd;
index 87448c2d6baa192fb621047ee47d1b0e3e1133d4..888dedd501b9b94ce4a7bef35e98b9f9868a28fa 100644 (file)
@@ -85,17 +85,17 @@ static struct irqchip isa_hi_chip = {
 };
 
 static void
-isa_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+isa_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned int isa_irq = *(unsigned char *)PCIIACK_BASE;
 
        if (isa_irq < _ISA_IRQ(0) || isa_irq >= _ISA_IRQ(16)) {
-               do_bad_IRQ(isa_irq, desc, regs);
+               do_bad_IRQ(isa_irq, desc);
                return;
        }
 
        desc = irq_desc + isa_irq;
-       desc_handle_irq(isa_irq, desc, regs);
+       desc_handle_irq(isa_irq, desc);
 }
 
 static struct irqaction irq_cascade = {
index c4810a40c8e1275e9d63e1670d4db71d7876beb2..d884a3954fb4c843290e3cb08375adf24eea680e 100644 (file)
@@ -62,10 +62,10 @@ static unsigned long isa_gettimeoffset(void)
 }
 
 static irqreturn_t
-isa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+isa_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
        return IRQ_HANDLED;
 }
index c096b45693084f4bbab9a15ed3c20dadb32ce0c2..4719229a1a78555d1b61dbfe4b746f3e4b41fbc3 100644 (file)
@@ -101,14 +101,14 @@ static void inline unmask_gpio_irq(u32 irq)
 
 static void
 h720x_gpio_handler(unsigned int mask, unsigned int irq,
-                 struct irqdesc *desc, struct pt_regs *regs)
+                 struct irqdesc *desc)
 {
        IRQDBG("%s irq: %d\n",__FUNCTION__,irq);
        desc = irq_desc + irq;
        while (mask) {
                if (mask & 1) {
                        IRQDBG("handling irq %d\n", irq);
-                       desc_handle_irq(irq, desc, regs);
+                       desc_handle_irq(irq, desc);
                }
                irq++;
                desc++;
@@ -117,63 +117,58 @@ h720x_gpio_handler(unsigned int mask, unsigned int irq,
 }
 
 static void
-h720x_gpioa_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+h720x_gpioa_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = CPU_REG(GPIO_A_VIRT,GPIO_STAT);
        irq = IRQ_CHAINED_GPIOA(0);
        IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
-       h720x_gpio_handler(mask, irq, desc, regs);
+       h720x_gpio_handler(mask, irq, desc);
 }
 
 static void
-h720x_gpiob_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+h720x_gpiob_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
        mask = CPU_REG(GPIO_B_VIRT,GPIO_STAT);
        irq = IRQ_CHAINED_GPIOB(0);
        IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
-       h720x_gpio_handler(mask, irq, desc, regs);
+       h720x_gpio_handler(mask, irq, desc);
 }
 
 static void
-h720x_gpioc_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+h720x_gpioc_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = CPU_REG(GPIO_C_VIRT,GPIO_STAT);
        irq = IRQ_CHAINED_GPIOC(0);
        IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
-       h720x_gpio_handler(mask, irq, desc, regs);
+       h720x_gpio_handler(mask, irq, desc);
 }
 
 static void
-h720x_gpiod_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+h720x_gpiod_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = CPU_REG(GPIO_D_VIRT,GPIO_STAT);
        irq = IRQ_CHAINED_GPIOD(0);
        IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
-       h720x_gpio_handler(mask, irq, desc, regs);
+       h720x_gpio_handler(mask, irq, desc);
 }
 
 #ifdef CONFIG_CPU_H7202
 static void
-h720x_gpioe_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+h720x_gpioe_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = CPU_REG(GPIO_E_VIRT,GPIO_STAT);
        irq = IRQ_CHAINED_GPIOE(0);
        IRQDBG("%s mask: 0x%08x irq: %d\n",__FUNCTION__,mask,irq);
-       h720x_gpio_handler(mask, irq, desc, regs);
+       h720x_gpio_handler(mask, irq, desc);
 }
 #endif
 
index a9a8255a3a0397deaf698d46e5f4587ea0931db8..13f76bdb3d9d6ebacd029eb53d69dd8989de835a 100644 (file)
  * Timer interrupt handler
  */
 static irqreturn_t
-h7201_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+h7201_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
        CPU_REG (TIMER_VIRT, TIMER_TOPSTAT);
-       timer_tick(regs);
+       timer_tick();
 
        write_sequnlock(&xtime_lock);
 
index da678d163fd992487ba97ef48a1c6bb3247ac4dd..06fecaefd8dcaf249e1ba48bbc03aa672aed3a27 100644 (file)
@@ -106,8 +106,7 @@ static struct platform_device *devices[] __initdata = {
  * we have to handle all timer interrupts in one place.
  */
 static void
-h7202_timerx_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+h7202_timerx_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
@@ -115,7 +114,7 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
 
        if ( mask & TSTAT_T0INT ) {
                write_seqlock(&xtime_lock);
-               timer_tick(regs);
+               timer_tick();
                write_sequnlock(&xtime_lock);
                if( mask == TSTAT_T0INT )
                        return;
@@ -126,7 +125,7 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
        desc = irq_desc + irq;
        while (mask) {
                if (mask & 1)
-                       desc_handle_irq(irq, desc, regs);
+                       desc_handle_irq(irq, desc);
                irq++;
                desc++;
                mask >>= 1;
@@ -137,9 +136,9 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
  * Timer interrupt handler
  */
 static irqreturn_t
-h7202_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+h7202_timer_interrupt(int irq, void *dev_id)
 {
-       h7202_timerx_demux_handler(0, NULL, regs);
+       h7202_timerx_demux_handler(0, NULL);
        return IRQ_HANDLED;
 }
 
index 36578871ecc870de68eca19e96c4afce4bd21b99..6d50d85a618ca397b410ad1264a6485a43020de7 100644 (file)
@@ -279,8 +279,8 @@ imx_dma_setup_sg(imx_dmach_t dma_ch,
  */
 int
 imx_dma_setup_handlers(imx_dmach_t dma_ch,
-                      void (*irq_handler) (int, void *, struct pt_regs *),
-                      void (*err_handler) (int, void *, struct pt_regs *, int),
+                      void (*irq_handler) (int, void *),
+                      void (*err_handler) (int, void *, int),
                       void *data)
 {
        struct imx_dma_channel *imxdma = &imx_dma_channels[dma_ch];
@@ -461,7 +461,7 @@ imx_dma_request_by_prio(imx_dmach_t * pdma_ch, const char *name,
        return -ENODEV;
 }
 
-static irqreturn_t dma_err_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dma_err_handler(int irq, void *dev_id)
 {
        int i, disr = DISR;
        struct imx_dma_channel *channel;
@@ -500,7 +500,7 @@ static irqreturn_t dma_err_handler(int irq, void *dev_id, struct pt_regs *regs)
                /*imx_dma_channels[i].sg = NULL;*/
 
                if (channel->name && channel->err_handler) {
-                       channel->err_handler(i, channel->data, regs, errcode);
+                       channel->err_handler(i, channel->data, errcode);
                        continue;
                }
 
@@ -517,7 +517,7 @@ static irqreturn_t dma_err_handler(int irq, void *dev_id, struct pt_regs *regs)
        return IRQ_HANDLED;
 }
 
-static irqreturn_t dma_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dma_irq_handler(int irq, void *dev_id)
 {
        int i, disr = DISR;
 
@@ -536,7 +536,7 @@ static irqreturn_t dma_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
                                } else {
                                        if (channel->irq_handler)
                                                channel->irq_handler(i,
-                                                       channel->data, regs);
+                                                       channel->data);
                                }
                        } else {
                                /*
index 2688bd82c2a242addcc62822b90b461d509ec0f3..368b13b058ab1c8e3e852e45be97c59faf9faa51 100644 (file)
@@ -146,13 +146,13 @@ imx_gpio_unmask_irq(unsigned int irq)
 
 static void
 imx_gpio_handler(unsigned int mask, unsigned int irq,
-                 struct irqdesc *desc, struct pt_regs *regs)
+                 struct irqdesc *desc)
 {
        desc = irq_desc + irq;
        while (mask) {
                if (mask & 1) {
                        DEBUG_IRQ("handling irq %d\n", irq);
-                       desc_handle_irq(irq, desc, regs);
+                       desc_handle_irq(irq, desc);
                }
                irq++;
                desc++;
@@ -161,47 +161,43 @@ imx_gpio_handler(unsigned int mask, unsigned int irq,
 }
 
 static void
-imx_gpioa_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+imx_gpioa_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = ISR(0);
        irq = IRQ_GPIOA(0);
-       imx_gpio_handler(mask, irq, desc, regs);
+       imx_gpio_handler(mask, irq, desc);
 }
 
 static void
-imx_gpiob_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+imx_gpiob_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = ISR(1);
        irq = IRQ_GPIOB(0);
-       imx_gpio_handler(mask, irq, desc, regs);
+       imx_gpio_handler(mask, irq, desc);
 }
 
 static void
-imx_gpioc_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+imx_gpioc_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = ISR(2);
        irq = IRQ_GPIOC(0);
-       imx_gpio_handler(mask, irq, desc, regs);
+       imx_gpio_handler(mask, irq, desc);
 }
 
 static void
-imx_gpiod_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+imx_gpiod_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int mask, irq;
 
        mask = ISR(3);
        irq = IRQ_GPIOD(0);
-       imx_gpio_handler(mask, irq, desc, regs);
+       imx_gpio_handler(mask, irq, desc);
 }
 
 static struct irq_chip imx_internal_chip = {
index 6ed7523c65bb6f8bf51bb1de03afb398395ffa16..8ae4a2c5066fc2a55e7bec5c46377162aa119cc6 100644 (file)
@@ -56,7 +56,7 @@ static unsigned long imx_gettimeoffset(void)
  * IRQ handler for the timer
  */
 static irqreturn_t
-imx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+imx_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
@@ -64,7 +64,7 @@ imx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
        if (IMX_TSTAT(TIMER_BASE))
                IMX_TSTAT(TIMER_BASE) = 0;
 
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
 
        return IRQ_HANDLED;
index 42021fdfa0c67790634c22eac3df24a47c1b5b13..8d880cb9ba39f4795166274d961f7763b87a7083 100644 (file)
@@ -248,7 +248,7 @@ unsigned long integrator_gettimeoffset(void)
  * IRQ handler for the timer
  */
 static irqreturn_t
-integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+integrator_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
@@ -262,7 +262,7 @@ integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
         * primary CPU
         */
        if (hard_smp_processor_id() == 0) {
-               timer_tick(regs);
+               timer_tick();
 #ifdef CONFIG_SMP
                smp_send_timer();
 #endif
@@ -272,7 +272,7 @@ integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
        /*
         * this is the ARM equivalent of the APIC timer interrupt
         */
-       update_process_times(user_mode(regs));
+       update_process_times(user_mode(get_irq_regs()));
 #endif /* CONFIG_SMP */
 
        write_sequnlock(&xtime_lock);
index 678b6ba2b463ac020c9f9fc0edbd20dde4fcf7f3..771b65bffe69edd206f0e1de6bc1f34692c56e51 100644 (file)
@@ -202,12 +202,12 @@ static struct irq_chip sic_chip = {
 };
 
 static void
-sic_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+sic_handle_irq(unsigned int irq, struct irqdesc *desc)
 {
        unsigned long status = sic_readl(INTCP_VA_SIC_BASE + IRQ_STATUS);
 
        if (status == 0) {
-               do_bad_IRQ(irq, desc, regs);
+               do_bad_IRQ(irq, desc);
                return;
        }
 
@@ -218,7 +218,7 @@ sic_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
                irq += IRQ_SIC_START;
 
                desc = irq_desc + irq;
-               desc_handle_irq(irq, desc, regs);
+               desc_handle_irq(irq, desc);
        } while (status);
 }
 
index 4418f6d7572d015310b23626450a4b8cf88ba1d5..fb8c6d97b22b3c4975d3403606828331fb5ad13a 100644 (file)
@@ -440,9 +440,10 @@ v3_pci_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
        return 1;
 }
 
-static irqreturn_t v3_irq(int irq, void *devid, struct pt_regs *regs)
+static irqreturn_t v3_irq(int irq, void *devid)
 {
 #ifdef CONFIG_DEBUG_LL
+       struct pt_regs *regs = get_irq_regs();
        unsigned long pc = instruction_pointer(regs);
        unsigned long instr = *(unsigned long *)pc;
        char buf[128];
index ee49cf790dab5f2570366fa7b4cf789ffb770628..5278f589fcee29ea4204bc44be9adc9a8b41835b 100644 (file)
@@ -96,8 +96,7 @@ static struct rtc_ops rtc_ops = {
        .set_alarm      = integrator_rtc_set_alarm,
 };
 
-static irqreturn_t arm_rtc_interrupt(int irq, void *dev_id,
-                                    struct pt_regs *regs)
+static irqreturn_t arm_rtc_interrupt(int irq, void *dev_id)
 {
        writel(0, rtc_base + RTC_EOI);
        return IRQ_HANDLED;
index 7f91f689a04106c47cac822756d50dc946c5f185..22c98e9dad280aff426b4070a24a0a9ec5971ffd 100644 (file)
@@ -204,7 +204,7 @@ unsigned long ixp2000_gettimeoffset (void)
        return offset / ticks_per_usec;
 }
 
-static int ixp2000_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static int ixp2000_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
@@ -213,7 +213,7 @@ static int ixp2000_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 
        while ((signed long)(next_jiffy_time - *missing_jiffy_timer_csr)
                                                        >= ticks_per_jiffy) {
-               timer_tick(regs);
+               timer_tick();
                next_jiffy_time -= ticks_per_jiffy;
        }
 
@@ -308,7 +308,7 @@ EXPORT_SYMBOL(gpio_line_config);
 /*************************************************************************
  * IRQ handling IXP2000
  *************************************************************************/
-static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irqdesc *desc)
 {                               
        int i;
        unsigned long status = *IXP2000_GPIO_INST;
@@ -316,7 +316,7 @@ static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irqdesc *desc, str
        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, regs);
+                       desc_handle_irq(i + IRQ_IXP2000_GPIO0, desc);
                }
        }
 }
@@ -401,7 +401,7 @@ static void ixp2000_pci_irq_unmask(unsigned int irq)
 /*
  * Error interrupts. These are used extensively by the microengine drivers
  */
-static void ixp2000_err_irq_handler(unsigned int irq, struct irqdesc *desc,  struct pt_regs *regs)
+static void ixp2000_err_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        int i;
        unsigned long status = *IXP2000_IRQ_ERR_STATUS;
@@ -409,7 +409,7 @@ static void ixp2000_err_irq_handler(unsigned int irq, struct irqdesc *desc,  str
        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, regs);
+                       desc_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i, desc);
                }
        }
 }
index 40eef8b367407dd0a6ab61cb46d0484d8c54db60..af48cb52dfc47b48378308e37c2c41c9b542f520 100644 (file)
@@ -106,7 +106,7 @@ static void ixdp2x00_irq_unmask(unsigned int irq)
                ixp2000_release_slowport(&old_cfg);
 }
 
-static void ixdp2x00_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+static void ixdp2x00_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
         volatile u32 ex_interrupt = 0;
        static struct slowport_cfg old_cfg;
@@ -132,7 +132,7 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irqdesc *desc, struct
                        struct irqdesc *cpld_desc;
                        int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
                        cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc, regs);
+                       desc_handle_irq(cpld_irq, cpld_desc);
                }
        }
 
index 7f42366f60d165d11666666bf8593b8efa4f49ca..9ccae9e63f70deacdffc5fde976abd4d86677799 100644 (file)
@@ -63,7 +63,7 @@ static void ixdp2x01_irq_unmask(unsigned int irq)
 
 static u32 valid_irq_mask;
 
-static void ixdp2x01_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+static void ixdp2x01_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        u32 ex_interrupt;
        int i;
@@ -82,7 +82,7 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irqdesc *desc, struct
                        struct irqdesc *cpld_desc;
                        int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
                        cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc, regs);
+                       desc_handle_irq(cpld_irq, cpld_desc);
                }
        }
 
index 566a07821c77a939ea638677971c5f9a471e1bb5..a704a1820048404e8f6ef7e8fc8be68f7a18c5a3 100644 (file)
@@ -251,7 +251,7 @@ static void ixp23xx_pci_irq_unmask(unsigned int irq)
 /*
  * TODO: Should this just be done at ASM level?
  */
-static void pci_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+static void pci_handler(unsigned int irq, struct irqdesc *desc)
 {
        u32 pci_interrupt;
        unsigned int irqno;
@@ -271,7 +271,7 @@ static void pci_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *
        }
 
        int_desc = irq_desc + irqno;
-       desc_handle_irq(irqno, int_desc, regs);
+       desc_handle_irq(irqno, int_desc);
 
        desc->chip->unmask(irq);
 }
@@ -348,12 +348,12 @@ ixp23xx_gettimeoffset(void)
 }
 
 static irqreturn_t
-ixp23xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+ixp23xx_timer_interrupt(int irq, void *dev_id)
 {
        /* Clear Pending Interrupt by writing '1' to it */
        *IXP23XX_TIMER_STATUS = IXP23XX_TIMER1_INT_PEND;
        while ((signed long)(*IXP23XX_TIMER_CONT - next_jiffy_time) >= LATCH) {
-               timer_tick(regs);
+               timer_tick();
                next_jiffy_time += LATCH;
        }
 
index 37a32e6bcca2d1e52cb88128f091cd5858efdc57..b6ab0e8bb5e826c2ae861bb4781cde3d052579ee 100644 (file)
@@ -60,7 +60,7 @@ static void ixdp2351_inta_unmask(unsigned int irq)
        *IXDP2351_CPLD_INTA_MASK_CLR_REG = IXDP2351_INTA_IRQ_MASK(irq);
 }
 
-static void ixdp2351_inta_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+static void ixdp2351_inta_handler(unsigned int irq, struct irqdesc *desc)
 {
        u16 ex_interrupt =
                *IXDP2351_CPLD_INTA_STAT_REG & IXDP2351_INTA_IRQ_VALID;
@@ -74,7 +74,7 @@ static void ixdp2351_inta_handler(unsigned int irq, struct irqdesc *desc, struct
                        int cpld_irq =
                                IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i);
                        cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc, regs);
+                       desc_handle_irq(cpld_irq, cpld_desc);
                }
        }
 
@@ -97,7 +97,7 @@ static void ixdp2351_intb_unmask(unsigned int irq)
        *IXDP2351_CPLD_INTB_MASK_CLR_REG = IXDP2351_INTB_IRQ_MASK(irq);
 }
 
-static void ixdp2351_intb_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+static void ixdp2351_intb_handler(unsigned int irq, struct irqdesc *desc)
 {
        u16 ex_interrupt =
                *IXDP2351_CPLD_INTB_STAT_REG & IXDP2351_INTB_IRQ_VALID;
@@ -111,7 +111,7 @@ static void ixdp2351_intb_handler(unsigned int irq, struct irqdesc *desc, struct
                        int cpld_irq =
                                IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i);
                        cpld_desc = irq_desc + cpld_irq;
-                       desc_handle_irq(cpld_irq, cpld_desc, regs);
+                       desc_handle_irq(cpld_irq, cpld_desc);
                }
        }
 
index 35dd8b3824b0301a5d8fc9ecc4b849408c21324f..c7513f6eb50c3640e8e9562a72cd9163d1bfd276 100644 (file)
@@ -256,7 +256,7 @@ static unsigned volatile last_jiffy_time;
 
 #define CLOCK_TICKS_PER_USEC   ((CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
 
-static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
@@ -267,7 +267,7 @@ static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs
         * Catch up with the real idea of time
         */
        while ((signed long)(*IXP4XX_OSTS - last_jiffy_time) >= LATCH) {
-               timer_tick(regs);
+               timer_tick();
                last_jiffy_time += LATCH;
        }
 
index 81ffcae1f56ea4cdcff61191e367ed51f01c745a..29aa98d3a7faeb4993213e29aee093fe0f389f88 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <asm/mach-types.h>
 
-static irqreturn_t nas100d_reset_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t nas100d_reset_handler(int irq, void *dev_id)
 {
        /* Signal init to do the ctrlaltdel action, this will bypass init if
         * it hasn't started and do a kernel_restart.
index a29b3b2b61b63cfb085ff54d2af53c1251fe316a..acd71e9c38a703792cc08d739ba1f0db81a2909b 100644 (file)
@@ -25,7 +25,7 @@
 
 #include <asm/mach-types.h>
 
-static irqreturn_t nslu2_power_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t nslu2_power_handler(int irq, void *dev_id)
 {
        /* Signal init to do the ctrlaltdel action, this will bypass init if
         * it hasn't started and do a kernel_restart.
@@ -35,7 +35,7 @@ static irqreturn_t nslu2_power_handler(int irq, void *dev_id, struct pt_regs *re
        return IRQ_HANDLED;
 }
 
-static irqreturn_t nslu2_reset_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t nslu2_reset_handler(int irq, void *dev_id)
 {
        /* This is the paper-clip reset, it shuts the machine down directly.
         */
index 4f2ab48800a50eb6ba15f8c1a2e6b4c72af5bcd2..15fbcc911fe76da4fa97a3bb1f68fbd2fc189b06 100644 (file)
@@ -71,14 +71,13 @@ static struct irq_chip kev7a400_cpld_chip = {
 };
 
 
-static void kev7a400_cpld_handler (unsigned int irq, struct irqdesc *desc,
-                                 struct pt_regs *regs)
+static void kev7a400_cpld_handler (unsigned int irq, struct irqdesc *desc)
 {
        u32 mask = CPLD_LATCHED_INTS;
        irq = IRQ_KEV7A400_CPLD;
        for (; mask; mask >>= 1, ++irq) {
                if (mask & 1)
-                       desc[irq].handle (irq, desc, regs);
+                       desc[irq].handle (irq, desc);
        }
 }
 
index a21b12f06c6b3aa2be8bf6ed66809212b036d6a4..8441e0a156cb2f28555c4eab291d6bd0af2c74c6 100644 (file)
@@ -207,8 +207,7 @@ static struct irq_chip lpd7a40x_cpld_chip = {
        .unmask = lh7a40x_unmask_cpld_irq,
 };
 
-static void lpd7a40x_cpld_handler (unsigned int irq, struct irqdesc *desc,
-                                 struct pt_regs *regs)
+static void lpd7a40x_cpld_handler (unsigned int irq, struct irqdesc *desc)
 {
        unsigned int mask = CPLD_INTERRUPTS;
 
index f9b3fe9174a5e1dadcd82f91e626f8d22270053f..646071334b8f107a2ee0b72620cefd33e02ff06c 100644 (file)
@@ -51,14 +51,13 @@ irq_chip lh7a400_cpld_chip = {
 };
 
 static void
-lh7a400_cpld_handler (unsigned int irq, struct irqdesc *desc,
-                     struct pt_regs *regs)
+lh7a400_cpld_handler (unsigned int irq, struct irqdesc *desc)
 {
        u32 mask = CPLD_LATCHED_INTS;
        irq = IRQ_KEV_7A400_CPLD;
        for (; mask; mask >>= 1, ++irq) {
                if (mask & 1)
-                       desc[irq].handle (irq, desc, regs);
+                       desc[irq].handle (irq, desc);
        }
 }
 
index d6055dde646877a1d304827863ec2b06482d421a..b20376804bbb19849bafdb7348143f6f3a4a60f1 100644 (file)
@@ -57,8 +57,7 @@ static struct irq_chip lh7a40x_cpld_chip = {
        .unmask = lh7a40x_unmask_cpld_irq,
 };
 
-static void lh7a40x_cpld_handler (unsigned int irq, struct irqdesc *desc,
-                                 struct pt_regs *regs)
+static void lh7a40x_cpld_handler (unsigned int irq, struct irqdesc *desc)
 {
        unsigned int mask = CPLD_INTERRUPTS;
 
index ad5652e0150719e7776a81c1b90afbdea5e6142f..bef3c4b68d3bb3e028521f3c140fb91e4f80f1eb 100644 (file)
 #endif
 
 static irqreturn_t
-lh7a40x_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+lh7a40x_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
        TIMER_EOI = 0;
-       timer_tick(regs);
+       timer_tick();
 
        write_sequnlock(&xtime_lock);
 
index af0b13534cfd5521430d02d158f8683e0c407cb9..edbbbdc3b06be2b50e0c40a46f92cc7b10bfdb64 100644 (file)
@@ -69,8 +69,7 @@ static struct platform_device *devices[] __initdata = {
 #endif
 
 static void
-netx_hif_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
-                       struct pt_regs *regs)
+netx_hif_demux_handler(unsigned int irq_unused, struct irqdesc *desc)
 {
        unsigned int irq = NETX_IRQ_HIF_CHAINED(0);
        unsigned int stat;
@@ -83,7 +82,7 @@ netx_hif_demux_handler(unsigned int irq_unused, struct irqdesc *desc,
        while (stat) {
                if (stat & 1) {
                        DEBUG_IRQ("handling irq %d\n", irq);
-                       desc_handle_irq(irq, desc, regs);
+                       desc_handle_irq(irq, desc);
                }
                irq++;
                desc++;
index 6d72c81b7d9f3c67ea9a696559fa683b0a5e78f9..0993336c0b556aa837cdc8cb35989fc888b3268e 100644 (file)
@@ -38,11 +38,11 @@ static unsigned long netx_gettimeoffset(void)
  * IRQ handler for the timer
  */
 static irqreturn_t
-netx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+netx_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
 
        /* acknowledge interrupt */
index 6b05647a6c01743504650c1021013b19dc367f51..3a622801d7b0f1548a98056250860a5cea4bac37 100644 (file)
@@ -327,7 +327,7 @@ static struct spi_board_info __initdata mistral_boardinfo[] = { {
 
 #ifdef CONFIG_PM
 static irqreturn_t
-osk_mistral_wake_interrupt(int irq, void *ignored, struct pt_regs *regs)
+osk_mistral_wake_interrupt(int irq, void *ignored)
 {
        return IRQ_HANDLED;
 }
index efe9bfc6e55f694c7c40921e0037e09be0e663be..8e40208b10bbf6f0c61f0c451ac92a3d51a800ab 100644 (file)
@@ -84,8 +84,7 @@ static void fpga_mask_ack_irq(unsigned int irq)
        fpga_ack_irq(irq);
 }
 
-void innovator_fpga_IRQ_demux(unsigned int irq, struct irqdesc *desc,
-                             struct pt_regs *regs)
+void innovator_fpga_IRQ_demux(unsigned int irq, struct irqdesc *desc)
 {
        struct irqdesc *d;
        u32 stat;
@@ -101,7 +100,7 @@ void innovator_fpga_IRQ_demux(unsigned int irq, struct irqdesc *desc,
             fpga_irq++, stat >>= 1) {
                if (stat & 1) {
                        d = irq_desc + fpga_irq;
-                       desc_handle_irq(fpga_irq, d, regs);
+                       desc_handle_irq(fpga_irq, d);
                }
        }
 }
index cd76185bab7478a03eeb08a572a64fc006adbb38..4834758d340c60a9bdec5b349a780443d9893e52 100644 (file)
@@ -682,8 +682,7 @@ static int omap_pm_finish(suspend_state_t state)
 }
 
 
-static irqreturn_t  omap_wakeup_interrupt(int  irq, void *  dev,
-                                    struct pt_regs *  regs)
+static irqreturn_t  omap_wakeup_interrupt(int irq, void *dev)
 {
        return IRQ_HANDLED;
 }
index c4b790217a5b0ab259ac8289d4a415ef578e81ed..4cc98a578e4bf5ed98ac048f702f2c519ae7a22d 100644 (file)
@@ -204,8 +204,7 @@ void __init omap_serial_init(void)
 
 #ifdef CONFIG_OMAP_SERIAL_WAKE
 
-static irqreturn_t omap_serial_wake_interrupt(int irq, void *dev_id,
-                                             struct pt_regs *regs)
+static irqreturn_t omap_serial_wake_interrupt(int irq, void *dev_id)
 {
        /* Need to do something with serial port right after wake-up? */
        return IRQ_HANDLED;
index 4d91b9f510843fa1ce45b441d30387637075df10..1b7e4a506c2646e66788aaa47f8056147ba4da4a 100644 (file)
@@ -160,8 +160,7 @@ static unsigned long omap_mpu_timer_gettimeoffset(void)
  * Latency during the interrupt is calculated using timer1.
  * Both timer0 and timer1 are counting at 6MHz (P2 6.5MHz).
  */
-static irqreturn_t omap_mpu_timer_interrupt(int irq, void *dev_id,
-                                       struct pt_regs *regs)
+static irqreturn_t omap_mpu_timer_interrupt(int irq, void *dev_id)
 {
        unsigned long now, latency;
 
@@ -169,7 +168,7 @@ static irqreturn_t omap_mpu_timer_interrupt(int irq, void *dev_id,
        now = 0 - omap_mpu_timer_read(0);
        latency = MPU_TICKS_PER_SEC / HZ - omap_mpu_timer_read(1);
        omap_mpu_timer_last = now - latency;
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
 
        return IRQ_HANDLED;
@@ -182,8 +181,7 @@ static struct irqaction omap_mpu_timer_irq = {
 };
 
 static unsigned long omap_mpu_timer1_overflows;
-static irqreturn_t omap_mpu_timer1_interrupt(int irq, void *dev_id,
-                                            struct pt_regs *regs)
+static irqreturn_t omap_mpu_timer1_interrupt(int irq, void *dev_id)
 {
        omap_mpu_timer1_overflows++;
        return IRQ_HANDLED;
index c37b0e6d12481388335b96992845132dc7f32925..03d6905ba490ce1ac7e93e3e146f4ac5ecf30e16 100644 (file)
@@ -203,7 +203,7 @@ static void __init apollon_led_init(void)
        omap_set_gpio_dataout(LED2_GPIO15, 0);
 }
 
-static irqreturn_t apollon_sw_interrupt(int irq, void *ignored, struct pt_regs *regs)
+static irqreturn_t apollon_sw_interrupt(int irq, void *ignored)
 {
        static unsigned int led0, led1, led2;
 
index fe5fd6d42dea8def5e4c8a8a0e93919830263e26..973189cd97665c7aee22f2a51439e5745eb4a630 100644 (file)
@@ -37,13 +37,12 @@ static inline void omap2_gp_timer_start(unsigned long load_val)
        omap_dm_timer_start(gptimer);
 }
 
-static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id,
-                                           struct pt_regs *regs)
+static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
        omap_dm_timer_write_status(gptimer, OMAP_TIMER_INT_OVERFLOW);
-       timer_tick(regs);
+       timer_tick();
 
        write_sequnlock(&xtime_lock);
 
index ec01574f88ac995e5a72b19be62baf5e6e2eb2e7..d6a279e4b52416213281fbb6bdd8f73ad8f7208e 100644 (file)
@@ -32,7 +32,7 @@
 
 static struct dma_channel {
        char *name;
-       void (*irq_handler) (int, int, void *, struct pt_regs *);
+       void (*irq_handler) (int, int, void *);
        void *data;
        struct pnx4008_dma_ll *ll;
        u32 ll_dma;
@@ -150,8 +150,7 @@ static inline void pnx4008_dma_unlock(void)
 #define VALID_CHANNEL(c)       (((c) >= 0) && ((c) < MAX_DMA_CHANNELS))
 
 int pnx4008_request_channel(char *name, int ch,
-                           void (*irq_handler) (int, int, void *,
-                                                struct pt_regs *), void *data)
+                           void (*irq_handler) (int, int, void *), void *data)
 {
        int i, found = 0;
 
@@ -1033,7 +1032,7 @@ int pnx4008_dma_ch_enabled(int ch)
 
 EXPORT_SYMBOL_GPL(pnx4008_dma_ch_enabled);
 
-static irqreturn_t dma_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dma_irq_handler(int irq, void *dev_id)
 {
        int i;
        unsigned long dint = __raw_readl(DMAC_INT_STAT);
@@ -1053,8 +1052,7 @@ static irqreturn_t dma_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
                                        cause |= DMA_ERR_INT;
                                if (tcint & i_bit)
                                        cause |= DMA_TC_INT;
-                               channel->irq_handler(i, cause, channel->data,
-                                                    regs);
+                               channel->irq_handler(i, cause, channel->data);
                        } else {
                                /*
                                 * IRQ for an unregistered DMA channel
index b986065cd0f33c1f920aa534d9a499d78f031bf5..8621c206ac846d5ca6e61b07eea3efab060108b0 100644 (file)
@@ -47,15 +47,14 @@ static unsigned long pnx4008_gettimeoffset(void)
 /*!
  * IRQ handler for the timer
  */
-static irqreturn_t pnx4008_timer_interrupt(int irq, void *dev_id,
-                                          struct pt_regs *regs)
+static irqreturn_t pnx4008_timer_interrupt(int irq, void *dev_id)
 {
        if (__raw_readl(HSTIM_INT) & MATCH0_INT) {
 
                write_seqlock(&xtime_lock);
 
                do {
-                       timer_tick(regs);
+                       timer_tick();
 
                        /*
                         * this algorithm takes care of possible delay
index 337c01c4ac37194860c45f845a503686ecc0e6c4..74f8378d7bbce3b70b7f2a70f76553fb8e005d59 100644 (file)
@@ -212,7 +212,7 @@ static struct platform_device corgits_device = {
  */
 static struct pxamci_platform_data corgi_mci_platform_data;
 
-static int corgi_mci_init(struct device *dev, irqreturn_t (*corgi_detect_int)(int, void *, struct pt_regs *), void *data)
+static int corgi_mci_init(struct device *dev, irqreturn_t (*corgi_detect_int)(int, void *), void *data)
 {
        int err;
 
index 7d8c85486c669065554d1857b4359ce94ee9b6c8..4440babe7b97595dabe3330082ffd8aad9b6d674 100644 (file)
 
 static struct dma_channel {
        char *name;
-       void (*irq_handler)(int, void *, struct pt_regs *);
+       void (*irq_handler)(int, void *);
        void *data;
 } dma_channels[PXA_DMA_CHANNELS];
 
 
 int pxa_request_dma (char *name, pxa_dma_prio prio,
-                        void (*irq_handler)(int, void *, struct pt_regs *),
+                        void (*irq_handler)(int, void *),
                         void *data)
 {
        unsigned long flags;
@@ -87,7 +87,7 @@ void pxa_free_dma (int dma_ch)
        local_irq_restore(flags);
 }
 
-static irqreturn_t dma_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dma_irq_handler(int irq, void *dev_id)
 {
        int i, dint = DINT;
 
@@ -95,7 +95,7 @@ static irqreturn_t dma_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
                if (dint & (1 << i)) {
                        struct dma_channel *channel = &dma_channels[i];
                        if (channel->name && channel->irq_handler) {
-                               channel->irq_handler(i, channel->data, regs);
+                               channel->irq_handler(i, channel->data);
                        } else {
                                /*
                                 * IRQ for an unregistered DMA channel:
index 3e4b0ab71c66bbe40530ef03935d29126b3942e8..a4cb875b748d9f4d0f6468bca093496aba57281f 100644 (file)
@@ -125,7 +125,7 @@ static struct pxafb_mach_info sharp_lm8v31 = {
        .pxafb_lcd_power = &idp_lcd_power
 };
 
-static int idp_mci_init(struct device *dev, irqreturn_t (*idp_detect_int)(int, void *, struct pt_regs *), void *data)
+static int idp_mci_init(struct device *dev, irqreturn_t (*idp_detect_int)(int, void *), void *data)
 {
        /* setup GPIO for PXA25x MMC controller */
        pxa_gpio_mode(GPIO6_MMCCLK_MD);
index 12141e2a50cc35e1368f05b8fc10b93cb854f5bc..ab1a16025d51ccb1ec98db0d0eba019d20d5d894 100644 (file)
@@ -143,8 +143,7 @@ static struct irq_chip pxa_low_gpio_chip = {
  * Demux handler for GPIO>=2 edge detect interrupts
  */
 
-static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc,
-                                  struct pt_regs *regs)
+static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned int mask;
        int loop;
@@ -160,7 +159,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc,
                        mask >>= 2;
                        do {
                                if (mask & 1)
-                                       desc_handle_irq(irq, desc, regs);
+                                       desc_handle_irq(irq, desc);
                                irq++;
                                desc++;
                                mask >>= 1;
@@ -175,7 +174,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc,
                        desc = irq_desc + irq;
                        do {
                                if (mask & 1)
-                                       desc_handle_irq(irq, desc, regs);
+                                       desc_handle_irq(irq, desc);
                                irq++;
                                desc++;
                                mask >>= 1;
@@ -190,7 +189,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc,
                        desc = irq_desc + irq;
                        do {
                                if (mask & 1)
-                                       desc_handle_irq(irq, desc, regs);
+                                       desc_handle_irq(irq, desc);
                                irq++;
                                desc++;
                                mask >>= 1;
@@ -206,7 +205,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irqdesc *desc,
                        desc = irq_desc + irq;
                        do {
                                if (mask & 1)
-                                       desc_handle_irq(irq, desc, regs);
+                                       desc_handle_irq(irq, desc);
                                irq++;
                                desc++;
                                mask >>= 1;
index eff2a91b2565ee8b46d3673c6bbe5d12759e2c1f..5749f6b72e12646d733a447a9c4bb90e8198adae 100644 (file)
@@ -75,8 +75,7 @@ static struct irq_chip lpd270_irq_chip = {
        .unmask         = lpd270_unmask_irq,
 };
 
-static void lpd270_irq_handler(unsigned int irq, struct irqdesc *desc,
-                                 struct pt_regs *regs)
+static void lpd270_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned long pending;
 
@@ -86,7 +85,7 @@ static void lpd270_irq_handler(unsigned int irq, struct irqdesc *desc,
                if (likely(pending)) {
                        irq = LPD270_IRQ(0) + __ffs(pending);
                        desc = irq_desc + irq;
-                       desc_handle_irq(irq, desc, regs);
+                       desc_handle_irq(irq, desc);
 
                        pending = __raw_readw(LPD270_INT_STATUS) &
                                                lpd270_irq_enabled;
index 157cf47cbe6655e239cb7a0c78abe15b4df88788..b1e77bd85a33b01c697c62302569568897a20f5a 100644 (file)
@@ -85,8 +85,7 @@ static struct irq_chip lubbock_irq_chip = {
        .unmask         = lubbock_unmask_irq,
 };
 
-static void lubbock_irq_handler(unsigned int irq, struct irqdesc *desc,
-                               struct pt_regs *regs)
+static void lubbock_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned long pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled;
        do {
@@ -94,7 +93,7 @@ static void lubbock_irq_handler(unsigned int irq, struct irqdesc *desc,
                if (likely(pending)) {
                        irq = LUBBOCK_IRQ(0) + __ffs(pending);
                        desc = irq_desc + irq;
-                       desc_handle_irq(irq, desc, regs);
+                       desc_handle_irq(irq, desc);
                }
                pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled;
        } while (pending);
@@ -379,7 +378,7 @@ static struct pxafb_mach_info sharp_lm8v31 = {
 #define        MMC_POLL_RATE           msecs_to_jiffies(1000)
 
 static void lubbock_mmc_poll(unsigned long);
-static irqreturn_t (*mmc_detect_int)(int, void *, struct pt_regs *);
+static irqreturn_t (*mmc_detect_int)(int, void *);
 
 static struct timer_list mmc_timer = {
        .function       = lubbock_mmc_poll,
@@ -403,17 +402,17 @@ static void lubbock_mmc_poll(unsigned long data)
        }
 }
 
-static irqreturn_t lubbock_detect_int(int irq, void *data, struct pt_regs *regs)
+static irqreturn_t lubbock_detect_int(int irq, void *data)
 {
        /* IRQ is level triggered; disable, and poll for removal */
        disable_irq(irq);
        mod_timer(&mmc_timer, jiffies + MMC_POLL_RATE);
 
-       return mmc_detect_int(irq, data, regs);
+       return mmc_detect_int(irq, data);
 }
 
 static int lubbock_mci_init(struct device *dev,
-               irqreturn_t (*detect_int)(int, void *, struct pt_regs *),
+               irqreturn_t (*detect_int)(int, void *),
                void *data)
 {
        /* setup GPIO for PXA25x MMC controller */
index 7ba0447d6fa3dfbbb160f3c98e88daa97565dba9..8c30197849157288bb1f09fb5cc257c0d49f1f0c 100644 (file)
@@ -71,8 +71,7 @@ static struct irq_chip mainstone_irq_chip = {
        .unmask         = mainstone_unmask_irq,
 };
 
-static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc,
-                                 struct pt_regs *regs)
+static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned long pending = MST_INTSETCLR & mainstone_irq_enabled;
        do {
@@ -80,7 +79,7 @@ static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc,
                if (likely(pending)) {
                        irq = MAINSTONE_IRQ(0) + __ffs(pending);
                        desc = irq_desc + irq;
-                       desc_handle_irq(irq, desc, regs);
+                       desc_handle_irq(irq, desc);
                }
                pending = MST_INTSETCLR & mainstone_irq_enabled;
        } while (pending);
@@ -314,7 +313,7 @@ static struct pxafb_mach_info mainstone_pxafb_info = {
        .pxafb_backlight_power  = mainstone_backlight_power,
 };
 
-static int mainstone_mci_init(struct device *dev, irqreturn_t (*mstone_detect_int)(int, void *, struct pt_regs *), void *data)
+static int mainstone_mci_init(struct device *dev, irqreturn_t (*mstone_detect_int)(int, void *), void *data)
 {
        int err;
 
index 5e8c098ca13986125b15927bc9b8d2dc0eff1c52..9052a971c8acd62676bb747473e412eb03a17bf3 100644 (file)
@@ -197,7 +197,7 @@ static struct platform_device poodle_ts_device = {
  */
 static struct pxamci_platform_data poodle_mci_platform_data;
 
-static int poodle_mci_init(struct device *dev, irqreturn_t (*poodle_detect_int)(int, void *, struct pt_regs *), void *data)
+static int poodle_mci_init(struct device *dev, irqreturn_t (*poodle_detect_int)(int, void *), void *data)
 {
        int err;
 
index 401cdb850fbc2f014eec92a2a307290b99425eca..911452dd0b45dc9e60b37574de4738402f0ff15b 100644 (file)
@@ -291,7 +291,7 @@ static struct platform_device spitzts_device = {
 
 static struct pxamci_platform_data spitz_mci_platform_data;
 
-static int spitz_mci_init(struct device *dev, irqreturn_t (*spitz_detect_int)(int, void *, struct pt_regs *), void *data)
+static int spitz_mci_init(struct device *dev, irqreturn_t (*spitz_detect_int)(int, void *), void *data)
 {
        int err;
 
index 1fddfeaa630def3f09dfde30108605b82711b5bd..6cc202755fb46c6ded53a8fe16512687ceb57f49 100644 (file)
@@ -65,7 +65,7 @@ static const struct ssp_info_ ssp_info[PXA_SSP_PORTS] = {
 static DEFINE_MUTEX(mutex);
 static int use_count[PXA_SSP_PORTS] = {0, 0, 0};
 
-static irqreturn_t ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t ssp_interrupt(int irq, void *dev_id)
 {
        struct ssp_dev *dev = (struct ssp_dev*) dev_id;
        unsigned int status = SSSR_P(dev->port);
index 5dbd191c57c4e6980073ea58099282000b06d616..3ac268fa419b68ce81c04af8e5b369d7f1aae1ca 100644 (file)
@@ -75,7 +75,7 @@ static int match_posponed;
 #endif
 
 static irqreturn_t
-pxa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+pxa_timer_interrupt(int irq, void *dev_id)
 {
        int next_match;
 
@@ -105,7 +105,7 @@ pxa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
         * exactly one tick period which should be a pretty rare event.
         */
        do {
-               timer_tick(regs);
+               timer_tick();
                OSSR = OSSR_M0;  /* Clear match on timer 0 */
                next_match = (OSMR0 += LATCH);
        } while( (signed long)(next_match - OSCR) <= 8 );
@@ -157,13 +157,13 @@ static void pxa_dyn_tick_reprogram(unsigned long ticks)
 }
 
 static irqreturn_t
-pxa_dyn_tick_handler(int irq, void *dev_id, struct pt_regs *regs)
+pxa_dyn_tick_handler(int irq, void *dev_id)
 {
        if (match_posponed) {
                match_posponed = 0;
                OSMR0 = initial_match;
                if ( (signed long)(initial_match - OSCR) <= 8 )
-                       return pxa_timer_interrupt(irq, dev_id, regs);
+                       return pxa_timer_interrupt(irq, dev_id);
        }
        return IRQ_NONE;
 }
index 249353616aba519ecefbc3868c27aaab58f5d14d..17e46c1060bd5bde00fd2a83db928d500f586109 100644 (file)
@@ -174,7 +174,7 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = {
  */
 static struct pxamci_platform_data tosa_mci_platform_data;
 
-static int tosa_mci_init(struct device *dev, irqreturn_t (*tosa_detect_int)(int, void *, struct pt_regs *), void *data)
+static int tosa_mci_init(struct device *dev, irqreturn_t (*tosa_detect_int)(int, void *), void *data)
 {
        int err;
 
index 910571e9a190cba0597219ce523c7c97a7525e7d..a2c05a840a2fc2b493458a203c93725336c1671b 100644 (file)
@@ -270,7 +270,7 @@ void board_pcmcia_power(int power)  {;}
 #endif         /* CONFIG_MACH_TRIZEPS4_CONXS */
 EXPORT_SYMBOL(board_pcmcia_power);
 
-static int trizeps4_mci_init(struct device *dev, irqreturn_t (*mci_detect_int)(int, void *, struct pt_regs *), void *data)
+static int trizeps4_mci_init(struct device *dev, irqreturn_t (*mci_detect_int)(int, void *), void *data)
 {
        int err;
        /* setup GPIO for PXA27x MMC controller */
index da0286973823a0be4f7431a38adfdd4294ed186f..68c67053f47990b4477ba4f4328d870920123ad3 100644 (file)
@@ -515,18 +515,18 @@ static unsigned long realview_gettimeoffset(void)
 /*
  * IRQ handler for the timer
  */
-static irqreturn_t realview_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t realview_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
        // ...clear the interrupt
        writel(1, TIMER0_VA_BASE + TIMER_INTCLR);
 
-       timer_tick(regs);
+       timer_tick();
 
 #if defined(CONFIG_SMP) && !defined(CONFIG_LOCAL_TIMERS)
        smp_send_timer();
-       update_process_times(user_mode(regs));
+       update_process_times(user_mode(get_irq_regs()));
 #endif
 
        write_sequnlock(&xtime_lock);
index ac511d41d4d75d5a0f078a4c53caac9654e20185..596379a4cf82826fab9bd2f47bf05984ba8ef801 100644 (file)
@@ -83,7 +83,7 @@ static void iomd_get_next_sg(struct scatterlist *sg, dma_t *dma)
        sg->length |= flags;
 }
 
-static irqreturn_t iomd_dma_handle(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t iomd_dma_handle(int irq, void *dev_id)
 {
        dma_t *dma = (dma_t *)dev_id;
        unsigned long base = dma->dma_base;
index 440e9aa0211abafad0585c93cc26e86463d72210..23d5beea55680bc04dc45a726945bb85b6f567c8 100644 (file)
@@ -112,8 +112,7 @@ static struct irqchip  bast_pc104_chip = {
 
 static void
 bast_irq_pc104_demux(unsigned int irq,
-                    struct irqdesc *desc,
-                    struct pt_regs *regs)
+                    struct irqdesc *desc)
 {
        unsigned int stat;
        unsigned int irqno;
@@ -133,7 +132,7 @@ bast_irq_pc104_demux(unsigned int irq,
                        if (stat & 1) {
                                irqno = bast_pc104_irqs[i];
                                desc = irq_desc + irqno;
-                               desc_handle_irq(irqno, desc, regs);
+                               desc_handle_irq(irqno, desc);
                        }
                }
        }
index d264bbbd8bef893fa660255fafbb88876f290b52..3d211dc2f2f90923136b55a8e814e842463e49d0 100644 (file)
@@ -595,7 +595,7 @@ s3c2410_dma_lastxfer(struct s3c2410_dma_chan *chan)
 #define dmadbg2(x...)
 
 static irqreturn_t
-s3c2410_dma_irq(int irq, void *devpw, struct pt_regs *regs)
+s3c2410_dma_irq(int irq, void *devpw)
 {
        struct s3c2410_dma_chan *chan = (struct s3c2410_dma_chan *)devpw;
        struct s3c2410_dma_buf  *buf;
index 3e9f3462c61b13f012eb5479228196e1f7405ad3..683b3491ba3c4ae4634aed2e7a217363dc03f45b 100644 (file)
@@ -480,8 +480,7 @@ static struct irqchip s3c_irq_adc = {
 
 /* irq demux for adc */
 static void s3c_irq_demux_adc(unsigned int irq,
-                             struct irqdesc *desc,
-                             struct pt_regs *regs)
+                             struct irqdesc *desc)
 {
        unsigned int subsrc, submsk;
        unsigned int offset = 9;
@@ -500,17 +499,16 @@ 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, regs);
+                       desc_handle_irq(IRQ_TC, mydesc);
                }
                if (subsrc & 2) {
                        mydesc = irq_desc + IRQ_ADC;
-                       desc_handle_irq(IRQ_ADC, mydesc, regs);
+                       desc_handle_irq(IRQ_ADC, mydesc);
                }
        }
 }
 
-static void s3c_irq_demux_uart(unsigned int start,
-                              struct pt_regs *regs)
+static void s3c_irq_demux_uart(unsigned int start)
 {
        unsigned int subsrc, submsk;
        unsigned int offset = start - IRQ_S3CUART_RX0;
@@ -533,17 +531,17 @@ static void s3c_irq_demux_uart(unsigned int start,
                desc = irq_desc + start;
 
                if (subsrc & 1)
-                       desc_handle_irq(start, desc, regs);
+                       desc_handle_irq(start, desc);
 
                desc++;
 
                if (subsrc & 2)
-                       desc_handle_irq(start+1, desc, regs);
+                       desc_handle_irq(start+1, desc);
 
                desc++;
 
                if (subsrc & 4)
-                       desc_handle_irq(start+2, desc, regs);
+                       desc_handle_irq(start+2, desc);
        }
 }
 
@@ -551,35 +549,31 @@ static void s3c_irq_demux_uart(unsigned int start,
 
 static void
 s3c_irq_demux_uart0(unsigned int irq,
-                   struct irqdesc *desc,
-                   struct pt_regs *regs)
+                   struct irqdesc *desc)
 {
        irq = irq;
-       s3c_irq_demux_uart(IRQ_S3CUART_RX0, regs);
+       s3c_irq_demux_uart(IRQ_S3CUART_RX0);
 }
 
 static void
 s3c_irq_demux_uart1(unsigned int irq,
-                   struct irqdesc *desc,
-                   struct pt_regs *regs)
+                   struct irqdesc *desc)
 {
        irq = irq;
-       s3c_irq_demux_uart(IRQ_S3CUART_RX1, regs);
+       s3c_irq_demux_uart(IRQ_S3CUART_RX1);
 }
 
 static void
 s3c_irq_demux_uart2(unsigned int irq,
-                   struct irqdesc *desc,
-                   struct pt_regs *regs)
+                   struct irqdesc *desc)
 {
        irq = irq;
-       s3c_irq_demux_uart(IRQ_S3CUART_RX2, regs);
+       s3c_irq_demux_uart(IRQ_S3CUART_RX2);
 }
 
 static void
 s3c_irq_demux_extint8(unsigned int irq,
-                     struct irqdesc *desc,
-                     struct pt_regs *regs)
+                     struct irqdesc *desc)
 {
        unsigned long eintpnd = __raw_readl(S3C24XX_EINTPEND);
        unsigned long eintmsk = __raw_readl(S3C24XX_EINTMASK);
@@ -594,15 +588,14 @@ s3c_irq_demux_extint8(unsigned int irq,
                eintpnd &= ~(1<<irq);
 
                irq += (IRQ_EINT4 - 4);
-               desc_handle_irq(irq, irq_desc + irq, regs);
+               desc_handle_irq(irq, irq_desc + irq);
        }
 
 }
 
 static void
 s3c_irq_demux_extint4t7(unsigned int irq,
-                       struct irqdesc *desc,
-                       struct pt_regs *regs)
+                       struct irqdesc *desc)
 {
        unsigned long eintpnd = __raw_readl(S3C24XX_EINTPEND);
        unsigned long eintmsk = __raw_readl(S3C24XX_EINTMASK);
@@ -618,7 +611,7 @@ s3c_irq_demux_extint4t7(unsigned int irq,
 
                irq += (IRQ_EINT4 - 4);
 
-               desc_handle_irq(irq, irq_desc + irq, regs);
+               desc_handle_irq(irq, irq_desc + irq);
        }
 }
 
index ba5109af40b4d407fbccd0d5f6c99b8e9ccea752..817e2c684410bce25eeae0d383f296bad14cb644 100644 (file)
@@ -226,7 +226,7 @@ static struct s3c2410fb_mach_info __initdata amlm5900_lcd_info = {
 #endif
 
 static irqreturn_t
-amlm5900_wake_interrupt(int irq, void *ignored, struct pt_regs *regs)
+amlm5900_wake_interrupt(int irq, void *ignored)
 {
        return IRQ_HANDLED;
 }
index fc08febe2e543891cd2b0599a0dcb403e8f32cdf..39db0752d53b1b67573dcb4f227a06411b312b80 100644 (file)
@@ -42,8 +42,7 @@
 /* WDT/AC97 */
 
 static void s3c_irq_demux_wdtac97(unsigned int irq,
-                                 struct irqdesc *desc,
-                                 struct pt_regs *regs)
+                                 struct irqdesc *desc)
 {
        unsigned int subsrc, submsk;
        struct irqdesc *mydesc;
@@ -61,11 +60,11 @@ 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, regs);
+                       desc_handle_irq(IRQ_S3C2440_WDT, mydesc);
                }
                if (subsrc & 2) {
                        mydesc = irq_desc + IRQ_S3C2440_AC97;
-                       desc_handle_irq(IRQ_S3C2440_AC97, mydesc, regs);
+                       desc_handle_irq(IRQ_S3C2440_AC97, mydesc);
                }
        }
 }
index ec702f88b299f051f65e87d7d3f3f7011455bca2..146f2109dd905bcff124151fea8573428a8a68a3 100644 (file)
@@ -42,8 +42,7 @@
 /* camera irq */
 
 static void s3c_irq_demux_cam(unsigned int irq,
-                             struct irqdesc *desc,
-                             struct pt_regs *regs)
+                             struct irqdesc *desc)
 {
        unsigned int subsrc, submsk;
        struct irqdesc *mydesc;
@@ -61,11 +60,11 @@ 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, regs);
+                       desc_handle_irq(IRQ_S3C2440_CAM_C, mydesc);
                }
                if (subsrc & 2) {
                        mydesc = irq_desc + IRQ_S3C2440_CAM_P;
-                       desc_handle_irq(IRQ_S3C2440_CAM_P, mydesc, regs);
+                       desc_handle_irq(IRQ_S3C2440_CAM_P, mydesc);
                }
        }
 }
index 00d1cfca971287f175bc27ed60ff76a121fe6153..9910bf0f2cea63c3fab5e53e79a9a6398762b418 100644 (file)
@@ -128,10 +128,10 @@ static unsigned long s3c2410_gettimeoffset (void)
  * IRQ handler for the timer
  */
 static irqreturn_t
-s3c2410_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+s3c2410_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
        return IRQ_HANDLED;
 }
index c635efa7cd3189cf97f1ec4550d4b987d6a2b870..22b0e1cdd4bf3d4e584588b4399c54646c673847 100644 (file)
@@ -58,7 +58,7 @@ usb_simtec_powercontrol(int port, int to)
 }
 
 static irqreturn_t
-usb_simtec_ocirq(int irq, void *pw, struct pt_regs *regs)
+usb_simtec_ocirq(int irq, void *pw)
 {
        struct s3c2410_hcd_info *info = (struct s3c2410_hcd_info *)pw;
 
index 2ea2a657a0346c06a2bf293814cf7e7ef95079bb..1fbe053e8b5998cd46216d9ba445fb26849a3a4e 100644 (file)
@@ -42,7 +42,7 @@ static sa1100_dma_t dma_chan[SA1100_DMA_CHANNELS];
 static spinlock_t dma_list_lock;
 
 
-static irqreturn_t dma_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t dma_irq_handler(int irq, void *dev_id)
 {
        dma_regs_t *dma_regs = dev_id;
        sa1100_dma_t *dma = dma_chan + (((u_int)dma_regs >> 5) & 7);
index 7364478cec12167425d5b9a1953b7b44232446bc..fa6dc71bd6ad053bef39fffde07261f190ee5f50 100644 (file)
@@ -702,7 +702,7 @@ static u32 gpio_irq_mask[] = {
        GPIO2_SD_CON_SLT,
 };
 
-static void h3800_IRQ_demux(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+static void h3800_IRQ_demux(unsigned int irq, struct irqdesc *desc)
 {
        int i;
 
@@ -719,14 +719,14 @@ static void h3800_IRQ_demux(unsigned int irq, struct irqdesc *desc, struct pt_re
                if (0) printk("%s KPIO 0x%08X\n", __FUNCTION__, irq);
                for (j = 0; j < H3800_KPIO_IRQ_COUNT; j++)
                        if (irq & kpio_irq_mask[j])
-                               do_edge_IRQ(H3800_KPIO_IRQ_COUNT + j, irq_desc + H3800_KPIO_IRQ_COUNT + j, regs);
+                               do_edge_IRQ(H3800_KPIO_IRQ_COUNT + j, irq_desc + H3800_KPIO_IRQ_COUNT + j);
 
                /* GPIO2 */
                irq = H3800_ASIC2_GPIINTFLAG;
                if (0) printk("%s GPIO 0x%08X\n", __FUNCTION__, irq);
                for (j = 0; j < H3800_GPIO_IRQ_COUNT; j++)
                        if (irq & gpio_irq_mask[j])
-                               do_edge_IRQ(H3800_GPIO_IRQ_COUNT + j, irq_desc + H3800_GPIO_IRQ_COUNT + j , regs);
+                               do_edge_IRQ(H3800_GPIO_IRQ_COUNT + j, irq_desc + H3800_GPIO_IRQ_COUNT + j);
        }
 
        if (i >= MAX_ASIC_ISR_LOOPS)
index b55b90a2e8fe975faba29388a517b36cfcb400cd..f4c6322ca33eec90c58aab15ee990f9712c30eed 100644 (file)
@@ -110,8 +110,7 @@ static struct irq_chip sa1100_low_gpio_chip = {
  * and call the handler.
  */
 static void
-sa1100_high_gpio_handler(unsigned int irq, struct irqdesc *desc,
-                        struct pt_regs *regs)
+sa1100_high_gpio_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned int mask;
 
@@ -128,7 +127,7 @@ sa1100_high_gpio_handler(unsigned int irq, struct irqdesc *desc,
                mask >>= 11;
                do {
                        if (mask & 1)
-                               desc_handle_irq(irq, desc, regs);
+                               desc_handle_irq(irq, desc);
                        mask >>= 1;
                        irq++;
                        desc++;
index af6d2775cf8237e34aecd21f8039083acbabc5db..354d5e91da599f72a03750ac9b14c29a873cc573 100644 (file)
@@ -29,7 +29,7 @@
  * is rather unfortunate.
  */
 static void
-neponset_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+neponset_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        unsigned int irr;
 
@@ -69,12 +69,12 @@ neponset_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *reg
 
                        if (irr & IRR_ETHERNET) {
                                d = irq_desc + IRQ_NEPONSET_SMC9196;
-                               desc_handle_irq(IRQ_NEPONSET_SMC9196, d, regs);
+                               desc_handle_irq(IRQ_NEPONSET_SMC9196, d);
                        }
 
                        if (irr & IRR_USAR) {
                                d = irq_desc + IRQ_NEPONSET_USAR;
-                               desc_handle_irq(IRQ_NEPONSET_USAR, d, regs);
+                               desc_handle_irq(IRQ_NEPONSET_USAR, d);
                        }
 
                        desc->chip->unmask(irq);
@@ -82,7 +82,7 @@ neponset_irq_handler(unsigned int irq, struct irqdesc *desc, struct pt_regs *reg
 
                if (irr & IRR_SA1111) {
                        d = irq_desc + IRQ_NEPONSET_SA1111;
-                       desc_handle_irq(IRQ_NEPONSET_SA1111, d, regs);
+                       desc_handle_irq(IRQ_NEPONSET_SA1111, d);
                }
        }
 }
index 5eba5fbbb561757ceb6a267b05eceade86d6b865..59703c6fb29bc514a83a5d4135989758ad801db9 100644 (file)
@@ -25,7 +25,7 @@
 
 #define TIMEOUT 100000
 
-static irqreturn_t ssp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t ssp_interrupt(int irq, void *dev_id)
 {
        unsigned int status = Ser4SSSR;
 
index 49ae716e16c2ad1a12fd7e0336e5f2826519442f..4284bd6f7a1f583c2af51cc98be24f7e6f638e87 100644 (file)
@@ -77,7 +77,7 @@ static int match_posponed;
 #endif
 
 static irqreturn_t
-sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+sa1100_timer_interrupt(int irq, void *dev_id)
 {
        unsigned int next_match;
 
@@ -99,7 +99,7 @@ sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
         * handlers.
         */
        do {
-               timer_tick(regs);
+               timer_tick();
                OSSR = OSSR_M0;  /* Clear match on timer 0 */
                next_match = (OSMR0 += LATCH);
        } while ((signed long)(next_match - OSCR) <= 0);
@@ -151,13 +151,13 @@ static void sa1100_dyn_tick_reprogram(unsigned long ticks)
 }
 
 static irqreturn_t
-sa1100_dyn_tick_handler(int irq, void *dev_id, struct pt_regs *regs)
+sa1100_dyn_tick_handler(int irq, void *dev_id)
 {
        if (match_posponed) {
                match_posponed = 0;
                OSMR0 = initial_match;
                if ((signed long)(initial_match - OSCR) <= 0)
-                       return sa1100_timer_interrupt(irq, dev_id, regs);
+                       return sa1100_timer_interrupt(irq, dev_id);
        }
        return IRQ_NONE;
 }
index 1095df34fec072cfd76ab5ba77841e71f96174c3..0e480fae8ec51e0c4ca07706373681ce8c90448e 100644 (file)
@@ -80,10 +80,10 @@ static void __init shark_map_io(void)
 #define HZ_TIME ((1193180 + HZ/2) / HZ)
 
 static irqreturn_t
-shark_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+shark_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
-       timer_tick(regs);
+       timer_tick();
        write_sequnlock(&xtime_lock);
        return IRQ_HANDLED;
 }
index b227052296cff2be019ed69e8b5b4d2c0d2931e9..297ecf130650bae3916b6cd97e029af9d9c8bb88 100644 (file)
@@ -61,7 +61,7 @@ static void shark_enable_8259A_irq(unsigned int irq)
 
 static void shark_ack_8259A_irq(unsigned int irq){}
 
-static irqreturn_t bogus_int(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t bogus_int(int irq, void *dev_id)
 {
        printk("Got interrupt %i!\n",irq);
        return IRQ_NONE;
index f2bbef07b1e408e8a82b8f85c794ff59ee4fb672..2aa150b57ba109066c7c969170eacad562d0e554 100644 (file)
@@ -77,12 +77,12 @@ static struct irq_chip sic_chip = {
 };
 
 static void
-sic_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
+sic_handle_irq(unsigned int irq, struct irqdesc *desc)
 {
        unsigned long status = readl(VA_SIC_BASE + SIC_IRQ_STATUS);
 
        if (status == 0) {
-               do_bad_IRQ(irq, desc, regs);
+               do_bad_IRQ(irq, desc);
                return;
        }
 
@@ -93,7 +93,7 @@ sic_handle_irq(unsigned int irq, struct irqdesc *desc, struct pt_regs *regs)
                irq += IRQ_SIC_START;
 
                desc = irq_desc + irq;
-               desc_handle_irq(irq, desc, regs);
+               desc_handle_irq(irq, desc);
        } while (status);
 }
 
@@ -851,14 +851,14 @@ static unsigned long versatile_gettimeoffset(void)
 /*
  * IRQ handler for the timer
  */
-static irqreturn_t versatile_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t versatile_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
        // ...clear the interrupt
        writel(1, TIMER0_VA_BASE + TIMER_INTCLR);
 
-       timer_tick(regs);
+       timer_tick();
 
        write_sequnlock(&xtime_lock);
 
index 726ad2b3b435f25740790840f431988ea0f3ec99..7899d3ca75a367da1b3a61958668514900122d77 100644 (file)
@@ -341,7 +341,7 @@ static void inline __xsc2_check_ctrs(void)
        __asm__ __volatile__ ("mcr p14, 0, %0, c5, c1, 0" : : "r" (flag));
 }
 
-static irqreturn_t xscale_pmu_interrupt(int irq, void *arg, struct pt_regs *regs)
+static irqreturn_t xscale_pmu_interrupt(int irq, void *arg)
 {
        int i;
        u32 pmnc;
@@ -356,7 +356,7 @@ static irqreturn_t xscale_pmu_interrupt(int irq, void *arg, struct pt_regs *regs
                        continue;
 
                write_counter(i, -(u32)results[i].reset_counter);
-               oprofile_add_sample(regs, i);
+               oprofile_add_sample(get_irq_regs(), i);
                results[i].ovf--;
        }
 
index 06282dffbdc62c4eacff041c84131b86b857da46..f530abdaa7a1e7fb5bd16ea5e5a49263d39f8cad 100644 (file)
@@ -47,7 +47,7 @@ unsigned long iop3xx_gettimeoffset(void)
 }
 
 static irqreturn_t
-iop3xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+iop3xx_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
@@ -57,7 +57,7 @@ iop3xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 
        while ((signed long)(next_jiffy_time - *IOP3XX_TU_TCR1)
                                                        >= ticks_per_jiffy) {
-               timer_tick(regs);
+               timer_tick();
                next_jiffy_time -= ticks_per_jiffy;
        }
 
index 1bbb431843ce056ced668044bd5d71a43036a14e..bb045e5ddbd837e3906a90415e5800b383c6dd08 100644 (file)
@@ -899,8 +899,7 @@ static int omap1_dma_handle_ch(int ch)
        return 1;
 }
 
-static irqreturn_t omap1_dma_irq_handler(int irq, void *dev_id,
-                                        struct pt_regs *regs)
+static irqreturn_t omap1_dma_irq_handler(int irq, void *dev_id)
 {
        int ch = ((int) dev_id) - 1;
        int handled = 0;
@@ -962,8 +961,7 @@ static int omap2_dma_handle_ch(int ch)
 }
 
 /* STATUS register count is from 1-32 while our is 0-31 */
-static irqreturn_t omap2_dma_irq_handler(int irq, void *dev_id,
-                                        struct pt_regs *regs)
+static irqreturn_t omap2_dma_irq_handler(int irq, void *dev_id)
 {
        u32 val;
        int i;
@@ -1220,8 +1218,7 @@ static void set_b1_regs(void)
        omap_writew(fi, OMAP1610_DMA_LCD_SRC_FI_B1_L);
 }
 
-static irqreturn_t lcd_dma_irq_handler(int irq, void *dev_id,
-                                      struct pt_regs *regs)
+static irqreturn_t lcd_dma_irq_handler(int irq, void *dev_id)
 {
        u16 w;
 
index f55f99ae58aea6ab07402c2562ab00b84ff8c38e..8162eed8b500e697938fbc78e90bbb99392cfd24 100644 (file)
@@ -783,8 +783,7 @@ void omap_free_gpio(int gpio)
  * line's interrupt handler has been run, we may miss some nested
  * interrupts.
  */
-static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc,
-                            struct pt_regs *regs)
+static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc)
 {
        void __iomem *isr_reg = NULL;
        u32 isr;
@@ -882,7 +881,7 @@ static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc,
                                continue;
                        }
 
-                       desc_handle_irq(gpio_irq, d, regs);
+                       desc_handle_irq(gpio_irq, d);
 
                        if (unlikely((d->status & IRQ_PENDING) && !d->depth)) {
                                irq_mask = 1 <<
index ade9a0fa6ef678033ff2f17f6dd8446389e7ae21..ec50008a2df6421e46275d0ec022231bdf9a3b8f 100644 (file)
@@ -96,7 +96,7 @@ static void omap_mcbsp_dump_reg(u8 id)
        DBG("***********************\n");
 }
 
-static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)
 {
        struct omap_mcbsp * mcbsp_tx = (struct omap_mcbsp *)(dev_id);
 
@@ -106,7 +106,7 @@ static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id, struct pt_re
        return IRQ_HANDLED;
 }
 
-static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id)
 {
        struct omap_mcbsp * mcbsp_rx = (struct omap_mcbsp *)(dev_id);
 
index cf6df3378d3786d3bcaa2876f770b70db46cc6ca..2653106011618b2a2279eb894298b8390ff2c1ed 100644 (file)
@@ -194,8 +194,7 @@ unsigned long long sched_clock(void)
  * issues with dynamic tick. In the dynamic tick case, we need to lock
  * with irqsave.
  */
-static inline irqreturn_t _omap_32k_timer_interrupt(int irq, void *dev_id,
-                                       struct pt_regs *regs)
+static inline irqreturn_t _omap_32k_timer_interrupt(int irq, void *dev_id)
 {
        unsigned long now;
 
@@ -205,7 +204,7 @@ static inline irqreturn_t _omap_32k_timer_interrupt(int irq, void *dev_id,
        while ((signed long)(now - omap_32k_last_tick)
                                                >= OMAP_32K_TICKS_PER_HZ) {
                omap_32k_last_tick += OMAP_32K_TICKS_PER_HZ;
-               timer_tick(regs);
+               timer_tick();
        }
 
        /* Restart timer so we don't drift off due to modulo or dynamic tick.
@@ -218,19 +217,17 @@ static inline irqreturn_t _omap_32k_timer_interrupt(int irq, void *dev_id,
        return IRQ_HANDLED;
 }
 
-static irqreturn_t omap_32k_timer_handler(int irq, void *dev_id,
-                                       struct pt_regs *regs)
+static irqreturn_t omap_32k_timer_handler(int irq, void *dev_id)
 {
-       return _omap_32k_timer_interrupt(irq, dev_id, regs);
+       return _omap_32k_timer_interrupt(irq, dev_id);
 }
 
-static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id,
-                                           struct pt_regs *regs)
+static irqreturn_t omap_32k_timer_interrupt(int irq, void *dev_id)
 {
        unsigned long flags;
 
        write_seqlock_irqsave(&xtime_lock, flags);
-       _omap_32k_timer_interrupt(irq, dev_id, regs);
+       _omap_32k_timer_interrupt(irq, dev_id);
        write_sequnlock_irqrestore(&xtime_lock, flags);
 
        return IRQ_HANDLED;
index 0e4a3901d3b36b0afa8ea1acbff9165e1bf515db..5edaae1c61d315a4ee2f36a11c08c36a6423b0b8 100644 (file)
@@ -26,8 +26,9 @@ extern void clps711x_setup_timer(void);
  * IRQ handler for the timer
  */
 static irqreturn_t
-p720t_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+p720t_timer_interrupt(int irq, void *dev_id)
 {
+       struct pt_regs *regs = get_irq_regs();
        do_leds();
        do_timer(1);
 #ifndef CONFIG_SMP
index 599f03e5a9efa5782914126797a9714d16a92d56..5b1066da4e1ffa2b9586ad1f03406fdfadbde13c 100644 (file)
@@ -45,8 +45,8 @@
 
 struct imx_dma_channel {
        const char *name;
-       void (*irq_handler) (int, void *, struct pt_regs *);
-       void (*err_handler) (int, void *, struct pt_regs *, int errcode);
+       void (*irq_handler) (int, void *);
+       void (*err_handler) (int, void *, int errcode);
        void *data;
        dmamode_t  dma_mode;
        struct scatterlist *sg;
@@ -77,8 +77,8 @@ imx_dma_setup_sg(imx_dmach_t dma_ch,
 
 int
 imx_dma_setup_handlers(imx_dmach_t dma_ch,
-               void (*irq_handler) (int, void *, struct pt_regs *),
-               void (*err_handler) (int, void *, struct pt_regs *, int), void *data);
+               void (*irq_handler) (int, void *),
+               void (*err_handler) (int, void *, int), void *data);
 
 void imx_dma_enable(imx_dmach_t dma_ch);
 
index c69cb508735f74aed3db85f0d7e1e662eba0896e..ea22f7fff9cd7131401fa67695486dea82d4e6bc 100644 (file)
@@ -43,8 +43,9 @@
  * Handler for RTC timer interrupt
  */
 static irqreturn_t
-timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+timer_interrupt(int irq, void *dev_id)
 {
+       struct pt_regs *regs = get_irq_regs();
        do_timer(1);
 #ifndef CONFIG_SMP
        update_process_times(user_mode(regs));
index 3aee1204795bd367f0b301847a9ffeb22b1df606..418f15283ff1539efbaf564ac8ac42754e74c623 100644 (file)
@@ -137,7 +137,7 @@ extern void pnx4008_free_ll_entry(struct pnx4008_dma_ll *, dma_addr_t);
 extern void pnx4008_free_ll(u32 ll_dma, struct pnx4008_dma_ll *);
 
 extern int pnx4008_request_channel(char *, int,
-                                  void (*)(int, int, void *, struct pt_regs *),
+                                  void (*)(int, int, void *),
                                   void *);
 extern void pnx4008_free_channel(int);
 extern int pnx4008_config_dma(int, int, int);
index a008150abc59f2775e8ce25e03b3bb0f2b1476ec..bed042d71d68dd7154e5cf5ed0c4035230858706 100644 (file)
@@ -56,7 +56,7 @@ for (                                                                 \
 
 int pxa_request_dma (char *name,
                         pxa_dma_prio prio,
-                        void (*irq_handler)(int, void *, struct pt_regs *),
+                        void (*irq_handler)(int, void *),
                         void *data);
 
 void pxa_free_dma (int dma_ch);
index 88c17dd02ed2dc21366f02bd0ccbfa98ce966b67..b704c4f05f4ef390f8cc64c993151041c9668066 100644 (file)
@@ -10,7 +10,7 @@ struct mmc_host;
 struct pxamci_platform_data {
        unsigned int ocr_mask;                  /* available voltages */
        unsigned long detect_delay;             /* delay in jiffies before detecting cards after interrupt */
-       int (*init)(struct device *, irqreturn_t (*)(int, void *, struct pt_regs *), void *);
+       int (*init)(struct device *, irqreturn_t (*)(int, void *), void *);
        int (*get_ro)(struct device *);
        void (*setpower)(struct device *, unsigned int);
        void (*exit)(struct device *, void *);
index a836e76a14f7de1b8b8c8da0215304de6ad8801a..2d00db22b9818b7a9669ff9c9061437fddb9ad0c 100644 (file)
@@ -100,7 +100,7 @@ extern struct sharpsl_pm_status sharpsl_pm;
 
 void sharpsl_battery_kick(void);
 void sharpsl_pm_led(int val);
-irqreturn_t sharpsl_ac_isr(int irq, void *dev_id, struct pt_regs *fp);
-irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id, struct pt_regs *fp);
-irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id, struct pt_regs *fp);
+irqreturn_t sharpsl_ac_isr(int irq, void *dev_id);
+irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id);
+irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id);
 
diff --git a/include/asm-arm/irq_regs.h b/include/asm-arm/irq_regs.h
new file mode 100644 (file)
index 0000000..3dd9c0b
--- /dev/null
@@ -0,0 +1 @@
+#include <asm-generic/irq_regs.h>
index 131f33733d25597167f4d67462a032455920f5d4..0e017ecf20966f01a7a4d4abbb10926dc8c23c6f 100644 (file)
@@ -30,10 +30,9 @@ extern int show_fiq_list(struct seq_file *, void *);
 /*
  * Obsolete inline function for calling irq descriptor handlers.
  */
-static inline void desc_handle_irq(unsigned int irq, struct irq_desc *desc,
-                                  struct pt_regs *regs)
+static inline void desc_handle_irq(unsigned int irq, struct irq_desc *desc)
 {
-       desc->handle_irq(irq, desc, regs);
+       desc->handle_irq(irq, desc);
 }
 
 void set_irq_flags(unsigned int irq, unsigned int flags);
@@ -51,10 +50,10 @@ void set_irq_flags(unsigned int irq, unsigned int flags);
 #define irqdesc                irq_desc
 #define irqchip                irq_chip
 
-#define do_bad_IRQ(irq,desc,regs)                      \
+#define do_bad_IRQ(irq,desc)                           \
 do {                                                   \
        spin_lock(&desc->lock);                         \
-       handle_bad_irq(irq, desc, regs);                \
+       handle_bad_irq(irq, desc);                      \
        spin_unlock(&desc->lock);                       \
 } while(0)
 
index 1eb93f5c0d6cf921c6bfc3cf211bf84b654687c6..5dc357013b7943356c2ee7b09f147dbbde5273b6 100644 (file)
@@ -57,7 +57,7 @@ struct dyn_tick_timer {
        int             (*enable)(void);        /* Enables dynamic tick */
        int             (*disable)(void);       /* Disables dynamic tick */
        void            (*reprogram)(unsigned long); /* Reprograms the timer */
-       int             (*handler)(int, void *, struct pt_regs *);
+       int             (*handler)(int, void *);
 };
 
 void timer_dyn_reprogram(void);
@@ -66,7 +66,7 @@ void timer_dyn_reprogram(void);
 #endif
 
 extern struct sys_timer *system_timer;
-extern void timer_tick(struct pt_regs *);
+extern void timer_tick(void);
 
 /*
  * Kernel time keeping support.