linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 00/23] ARM: Final genirq cleanup
@ 2011-03-25 13:21 Thomas Gleixner
  2011-03-25 13:21 ` [patch 01/23] arm: Ns9xxx: Remove private irq flow handler Thomas Gleixner
                   ` (22 more replies)
  0 siblings, 23 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

The following series cleans up the reminding open coded access to
irq_desc and converts the newly merged (sigh) msm to the new irq chip
functions.

The final patches make use of the generic show_interrupts() and
convert the namespace to the new irq_* function names. That conversion
was done with coccinelle. The last patch folds irq_set_chip and
irq_set_handler pairs into irq_set_chip_and_handler with coccinelle.

The series depends on the irq/cleanup branch in

    git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git

which will go to Linus later today.

If there are no objections I can push the whole lot through tip.

Thanks,

	tglx

 Kconfig                               |    1 
 common/gic.c                          |   15 ++----
 common/it8152.c                       |    4 -
 common/locomo.c                       |   17 +++---
 common/sa1111.c                       |   24 ++++-----
 common/vic.c                          |    6 +-
 include/asm/hw_irq.h                  |    8 ---
 kernel/ecard.c                        |    6 +-
 kernel/irq.c                          |   70 ++++------------------------
 mach-at91/at91cap9_devices.c          |    6 +-
 mach-at91/gpio.c                      |   43 ++++++-----------
 mach-at91/irq.c                       |    3 -
 mach-bcmring/irq.c                    |   10 ++--
 mach-clps711x/irq.c                   |    8 +--
 mach-davinci/cp_intc.c                |    4 -
 mach-davinci/gpio.c                   |   49 ++++++++------------
 mach-davinci/irq.c                    |    6 +-
 mach-dove/irq.c                       |   20 +++-----
 mach-ebsa110/core.c                   |    4 -
 mach-ep93xx/gpio.c                    |   52 ++++++++++++---------
 mach-exynos4/irq-combiner.c           |   13 ++---
 mach-exynos4/irq-eint.c               |   15 +++---
 mach-footbridge/common.c              |    3 -
 mach-footbridge/isa-irq.c             |   10 ++--
 mach-gemini/gpio.c                    |   14 ++---
 mach-gemini/irq.c                     |    6 +-
 mach-h720x/common.c                   |   22 ++++-----
 mach-h720x/cpu-h7202.c                |    6 +-
 mach-integrator/integrator_ap.c       |    4 -
 mach-integrator/integrator_cp.c       |   11 +---
 mach-iop13xx/irq.c                    |   10 ++--
 mach-iop13xx/msi.c                    |    6 +-
 mach-iop32x/irq.c                     |    3 -
 mach-iop33x/irq.c                     |    5 +-
 mach-ixp2000/core.c                   |   20 ++++----
 mach-ixp2000/ixdp2x00.c               |    6 +-
 mach-ixp2000/ixdp2x01.c               |    6 +-
 mach-ixp23xx/core.c                   |   14 ++---
 mach-ixp23xx/ixdp2351.c               |   12 ++--
 mach-ixp23xx/roadrunner.c             |    4 -
 mach-ixp4xx/avila-pci.c               |    8 +--
 mach-ixp4xx/common.c                  |    4 -
 mach-ixp4xx/coyote-pci.c              |    4 -
 mach-ixp4xx/dsmg600-pci.c             |   12 ++--
 mach-ixp4xx/fsg-pci.c                 |    6 +-
 mach-ixp4xx/gateway7001-pci.c         |    4 -
 mach-ixp4xx/goramo_mlr.c              |   12 ++--
 mach-ixp4xx/gtwx5715-pci.c            |    4 -
 mach-ixp4xx/ixdp425-pci.c             |    8 +--
 mach-ixp4xx/ixdpg425-pci.c            |    4 -
 mach-ixp4xx/nas100d-pci.c             |   10 ++--
 mach-ixp4xx/nslu2-pci.c               |    6 +-
 mach-ixp4xx/vulcan-pci.c              |    4 -
 mach-ixp4xx/wg302v2-pci.c             |    4 -
 mach-kirkwood/irq.c                   |   15 +++---
 mach-ks8695/gpio.c                    |    2 
 mach-ks8695/irq.c                     |   18 ++++---
 mach-lpc32xx/irq.c                    |   10 ++--
 mach-mmp/irq-mmp2.c                   |   18 +++----
 mach-mmp/irq-pxa168.c                 |    3 -
 mach-msm/board-msm8960.c              |    2 
 mach-msm/board-msm8x60.c              |    2 
 mach-msm/board-trout-gpio.c           |   10 ++--
 mach-msm/board-trout-mmc.c            |    2 
 mach-msm/gpio-v2.c                    |   49 ++++++++++----------
 mach-msm/gpio.c                       |   18 +++----
 mach-msm/irq-vic.c                    |    7 +-
 mach-msm/irq.c                        |    7 +-
 mach-msm/sirc.c                       |   11 ++--
 mach-mv78xx0/irq.c                    |    8 +--
 mach-mx3/mach-mx31ads.c               |    7 +-
 mach-mx5/eukrea_mbimx51-baseboard.c   |    2 
 mach-mxs/gpio.c                       |   10 ++--
 mach-mxs/icoll.c                      |    3 -
 mach-netx/generic.c                   |    6 +-
 mach-ns9xxx/board-a9m9750dev.c        |    8 +--
 mach-ns9xxx/irq.c                     |   60 ++----------------------
 mach-nuc93x/irq.c                     |    4 -
 mach-omap1/board-osk.c                |    6 +-
 mach-omap1/board-palmz71.c            |    8 +--
 mach-omap1/board-voiceblue.c          |    8 +--
 mach-omap1/fpga.c                     |   10 ++--
 mach-omap1/irq.c                      |    4 -
 mach-omap2/gpmc.c                     |    2 
 mach-omap2/irq.c                      |    3 -
 mach-orion5x/db88f5281-setup.c        |    4 -
 mach-orion5x/irq.c                    |    8 +--
 mach-orion5x/rd88f5182-setup.c        |    4 -
 mach-orion5x/terastation_pro2-setup.c |    2 
 mach-orion5x/ts209-setup.c            |    4 -
 mach-pnx4008/irq.c                    |   10 ++--
 mach-pxa/balloon3.c                   |    8 +--
 mach-pxa/cm-x2xx-pci.c                |    5 +-
 mach-pxa/cm-x300.c                    |    2 
 mach-pxa/irq.c                        |   12 ++--
 mach-pxa/lpd270.c                     |    8 +--
 mach-pxa/lubbock.c                    |    8 +--
 mach-pxa/mainstone.c                  |    8 +--
 mach-pxa/pcm990-baseboard.c           |    8 +--
 mach-pxa/pxa3xx.c                     |    4 -
 mach-pxa/viper.c                      |    8 +--
 mach-pxa/zeus.c                       |   19 ++++---
 mach-rpc/irq.c                        |   14 ++---
 mach-s3c2410/bast-irq.c               |    6 +-
 mach-s3c2412/irq.c                    |   12 ++--
 mach-s3c2416/irq.c                    |    8 +--
 mach-s3c2440/irq.c                    |   10 ++--
 mach-s3c2440/s3c244x-irq.c            |   14 ++---
 mach-s3c2443/irq.c                    |    8 +--
 mach-s3c64xx/irq-eint.c               |   13 ++---
 mach-sa1100/cerf.c                    |    2 
 mach-sa1100/irq.c                     |   16 +++---
 mach-sa1100/neponset.c                |    8 +--
 mach-sa1100/pleb.c                    |    2 
 mach-shark/irq.c                      |    3 -
 mach-shmobile/board-ap4evb.c          |    4 -
 mach-shmobile/board-mackerel.c        |    6 +-
 mach-shmobile/intc-sh7367.c           |    6 +-
 mach-shmobile/intc-sh7372.c           |    6 +-
 mach-shmobile/intc-sh7377.c           |    6 +-
 mach-tcc8k/irq.c                      |    6 +-
 mach-tegra/gpio.c                     |   83 ++++------------------------------
 mach-tegra/include/mach/suspend.h     |    2 
 mach-tegra/irq.c                      |    5 --
 mach-ux500/modem-irq-db5500.c         |    3 -
 mach-versatile/core.c                 |    6 +-
 mach-vt8500/irq.c                     |   14 ++---
 mach-w90x900/irq.c                    |    4 -
 plat-mxc/3ds_debugboard.c             |   14 +----
 plat-mxc/avic.c                       |    4 -
 plat-mxc/gpio.c                       |   24 +++++----
 plat-mxc/irq-common.c                 |    4 -
 plat-mxc/tzic.c                       |    4 -
 plat-nomadik/gpio.c                   |   50 +++++++++++---------
 plat-omap/gpio.c                      |   31 ++++--------
 plat-orion/gpio.c                     |   31 +++++-------
 plat-orion/irq.c                      |    8 +--
 plat-pxa/gpio.c                       |    6 +-
 plat-s3c24xx/irq.c                    |   43 ++++++++---------
 plat-s5p/irq-eint.c                   |    7 +-
 plat-s5p/irq-gpioint.c                |   22 ++++-----
 plat-samsung/irq-uart.c               |   10 +---
 plat-samsung/irq-vic-timer.c          |   13 ++---
 plat-samsung/wakeup-mask.c            |    8 +--
 plat-spear/shirq.c                    |   12 ++--
 plat-stmp3xxx/irq.c                   |    3 -
 plat-stmp3xxx/pinmux.c                |   13 ++---
 147 files changed, 714 insertions(+), 941 deletions(-)


^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 01/23] arm: Ns9xxx: Remove private irq flow handler
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:21 ` [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc Thomas Gleixner
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML
  Cc: LAK, Russell King, Lennert Buytenhek, Peter Zijlstra, Uwe Kleine-Koenig

[-- Attachment #1: arm-ns9xxx-remove-private-irq-flow-handler.patch --]
[-- Type: text/plain, Size: 4141 bytes --]

handle_prio_irq is almost identical with handle_fasteoi_irq. The
subtle differences are

1) The handler checks for IRQ_DISABLED after the device handler has
   been called. In case it's set it masks the interrupt.

2) When the handler sees IRQ_DISABLED on entry it masks the interupt
   in the same way as handle_fastoei_irq, but does not set the
   IRQ_PENDING flag.

3) Instead of gracefully handling a recursive interrupt it crashes the
   kernel.

#1 is just relevant when a device handler calls disable_irq_nosync()
   and it does not matter whether we mask the interrupt right away or
   not. We handle lazy masking for disable_irq anyway, so there is no
   real reason to have this extra mask in place.

#2 will prevent the resend of a pending interrupt, which can result in
   lost interrupts for edge type interrupts. For level type interrupts
   the resend is a noop in the generic code. According to the
   datasheet all interrupts are level type, so marking them as such
   will result in the exact same behaviour as the private
   handle_prio_irq implementation.

#3 is just stupid. Crashing the kernel instead of handling a problem
   gracefully is just wrong. With the current semantics- all handlers
   run with interrupts disabled - this is even more wrong.

Rename ack to eoi, remove the unused mask_ack, switch to
handle_fasteoi_irq and remove the private function.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Acked-by: Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
Cc: linux-arm-kernel@lists.infradead.org
LKML-Reference: <20110202212552.299898447@linutronix.de>
---
 arch/arm/mach-ns9xxx/irq.c |   58 +++------------------------------------------
 1 file changed, 4 insertions(+), 54 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-ns9xxx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ns9xxx/irq.c
+++ linux-2.6-tip/arch/arm/mach-ns9xxx/irq.c
@@ -31,17 +31,11 @@ static void ns9xxx_mask_irq(struct irq_d
 	__raw_writel(ic, SYS_IC(prio / 4));
 }
 
-static void ns9xxx_ack_irq(struct irq_data *d)
+static void ns9xxx_eoi_irq(struct irq_data *d)
 {
 	__raw_writel(0, SYS_ISRADDR);
 }
 
-static void ns9xxx_maskack_irq(struct irq_data *d)
-{
-	ns9xxx_mask_irq(d);
-	ns9xxx_ack_irq(d);
-}
-
 static void ns9xxx_unmask_irq(struct irq_data *d)
 {
 	/* XXX: better use cpp symbols */
@@ -52,56 +46,11 @@ static void ns9xxx_unmask_irq(struct irq
 }
 
 static struct irq_chip ns9xxx_chip = {
-	.irq_ack	= ns9xxx_ack_irq,
+	.irq_eoi	= ns9xxx_eoi_irq,
 	.irq_mask	= ns9xxx_mask_irq,
-	.irq_mask_ack	= ns9xxx_maskack_irq,
 	.irq_unmask	= ns9xxx_unmask_irq,
 };
 
-#if 0
-#define handle_irq handle_level_irq
-#else
-static void handle_prio_irq(unsigned int irq, struct irq_desc *desc)
-{
-	struct irqaction *action;
-	irqreturn_t action_ret;
-
-	raw_spin_lock(&desc->lock);
-
-	BUG_ON(desc->status & IRQ_INPROGRESS);
-
-	desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
-	kstat_incr_irqs_this_cpu(irq, desc);
-
-	action = desc->action;
-	if (unlikely(!action || (desc->status & IRQ_DISABLED)))
-		goto out_mask;
-
-	desc->status |= IRQ_INPROGRESS;
-	raw_spin_unlock(&desc->lock);
-
-	action_ret = handle_IRQ_event(irq, action);
-
-	/* XXX: There is no direct way to access noirqdebug, so check
-	 * unconditionally for spurious irqs...
-	 * Maybe this function should go to kernel/irq/chip.c? */
-	note_interrupt(irq, desc, action_ret);
-
-	raw_spin_lock(&desc->lock);
-	desc->status &= ~IRQ_INPROGRESS;
-
-	if (desc->status & IRQ_DISABLED)
-out_mask:
-		desc->irq_data.chip->irq_mask(&desc->irq_data);
-
-	/* ack unconditionally to unmask lower prio irqs */
-	desc->irq_data.chip->irq_ack(&desc->irq_data);
-
-	raw_spin_unlock(&desc->lock);
-}
-#define handle_irq handle_prio_irq
-#endif
-
 void __init ns9xxx_init_irq(void)
 {
 	int i;
@@ -119,7 +68,8 @@ void __init ns9xxx_init_irq(void)
 
 	for (i = 0; i <= 31; ++i) {
 		set_irq_chip(i, &ns9xxx_chip);
-		set_irq_handler(i, handle_irq);
+		set_irq_handler(i, handle_fasteoi_irq);
 		set_irq_flags(i, IRQF_VALID);
+		irq_set_status_flags(i, IRQ_LEVEL);
 	}
 }



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
  2011-03-25 13:21 ` [patch 01/23] arm: Ns9xxx: Remove private irq flow handler Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-26 20:12   ` Varun Wadekar
  2011-03-25 13:21 ` [patch 03/23] arm: Use genirq lockdep helper to set lock class Thomas Gleixner
                   ` (20 subsequent siblings)
  22 siblings, 1 reply; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek, Colin Cross, linux-tegra

[-- Attachment #1: arm-tegra.patch --]
[-- Type: text/plain, Size: 3316 bytes --]

These functions are unused and in the way of cleanups in the core
code. If you have special requirements vs. irqs and PM then please
talk to me. Access to the generic core internals is going away.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Colin Cross <ccross@android.com>
Cc: linux-tegra@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
 arch/arm/mach-tegra/gpio.c                 |   63 -----------------------------
 arch/arm/mach-tegra/include/mach/suspend.h |    2 
 2 files changed, 65 deletions(-)

Index: linux-2.6/arch/arm/mach-tegra/gpio.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-tegra/gpio.c
+++ linux-2.6/arch/arm/mach-tegra/gpio.c
@@ -254,69 +254,6 @@ static void tegra_gpio_irq_handler(unsig
 }
 
 #ifdef CONFIG_PM
-void tegra_gpio_resume(void)
-{
-	unsigned long flags;
-	int b, p, i;
-
-	local_irq_save(flags);
-
-	for (b = 0; b < ARRAY_SIZE(tegra_gpio_banks); b++) {
-		struct tegra_gpio_bank *bank = &tegra_gpio_banks[b];
-
-		for (p = 0; p < ARRAY_SIZE(bank->oe); p++) {
-			unsigned int gpio = (b<<5) | (p<<3);
-			__raw_writel(bank->cnf[p], GPIO_CNF(gpio));
-			__raw_writel(bank->out[p], GPIO_OUT(gpio));
-			__raw_writel(bank->oe[p], GPIO_OE(gpio));
-			__raw_writel(bank->int_lvl[p], GPIO_INT_LVL(gpio));
-			__raw_writel(bank->int_enb[p], GPIO_INT_ENB(gpio));
-		}
-	}
-
-	local_irq_restore(flags);
-
-	for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
-		struct irq_desc *desc = irq_to_desc(i);
-		if (!desc || (desc->status & IRQ_WAKEUP))
-			continue;
-		enable_irq(i);
-	}
-}
-
-void tegra_gpio_suspend(void)
-{
-	unsigned long flags;
-	int b, p, i;
-
-	for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
-		struct irq_desc *desc = irq_to_desc(i);
-		if (!desc)
-			continue;
-		if (desc->status & IRQ_WAKEUP) {
-			int gpio = i - INT_GPIO_BASE;
-			pr_debug("gpio %d.%d is wakeup\n", gpio/8, gpio&7);
-			continue;
-		}
-		disable_irq(i);
-	}
-
-	local_irq_save(flags);
-	for (b = 0; b < ARRAY_SIZE(tegra_gpio_banks); b++) {
-		struct tegra_gpio_bank *bank = &tegra_gpio_banks[b];
-
-		for (p = 0; p < ARRAY_SIZE(bank->oe); p++) {
-			unsigned int gpio = (b<<5) | (p<<3);
-			bank->cnf[p] = __raw_readl(GPIO_CNF(gpio));
-			bank->out[p] = __raw_readl(GPIO_OUT(gpio));
-			bank->oe[p] = __raw_readl(GPIO_OE(gpio));
-			bank->int_enb[p] = __raw_readl(GPIO_INT_ENB(gpio));
-			bank->int_lvl[p] = __raw_readl(GPIO_INT_LVL(gpio));
-		}
-	}
-	local_irq_restore(flags);
-}
-
 static int tegra_gpio_wake_enable(struct irq_data *d, unsigned int enable)
 {
 	struct tegra_gpio_bank *bank = irq_data_get_irq_chip_data(d);
Index: linux-2.6/arch/arm/mach-tegra/include/mach/suspend.h
===================================================================
--- linux-2.6.orig/arch/arm/mach-tegra/include/mach/suspend.h
+++ linux-2.6/arch/arm/mach-tegra/include/mach/suspend.h
@@ -23,14 +23,12 @@
 
 void tegra_pinmux_suspend(void);
 void tegra_irq_suspend(void);
-void tegra_gpio_suspend(void);
 void tegra_clk_suspend(void);
 void tegra_dma_suspend(void);
 void tegra_timer_suspend(void);
 
 void tegra_pinmux_resume(void);
 void tegra_irq_resume(void);
-void tegra_gpio_resume(void);
 void tegra_clk_resume(void);
 void tegra_dma_resume(void);
 void tegra_timer_resume(void);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 03/23] arm: Use genirq lockdep helper to set lock class
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
  2011-03-25 13:21 ` [patch 01/23] arm: Ns9xxx: Remove private irq flow handler Thomas Gleixner
  2011-03-25 13:21 ` [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:21 ` [patch 04/23] arm: Use irq flag setter function Thomas Gleixner
                   ` (19 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: genirq-use-lockdep-helper.patch --]
[-- Type: text/plain, Size: 2106 bytes --]

Remove the open coded access to irq_desc which will fail on sparse irq
and use the proper wrappers.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-at91/gpio.c  |    2 +-
 arch/arm/mach-tegra/gpio.c |    2 +-
 arch/arm/plat-omap/gpio.c  |    4 +---
 3 files changed, 3 insertions(+), 5 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-at91/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-at91/gpio.c
+++ linux-2.6-tip/arch/arm/mach-at91/gpio.c
@@ -518,7 +518,7 @@ void __init at91_gpio_irq_setup(void)
 		__raw_writel(~0, this->regbase + PIO_IDR);
 
 		for (i = 0, pin = this->chip.base; i < 32; i++, pin++) {
-			lockdep_set_class(&irq_desc[pin].lock, &gpio_lock_class);
+			irq_set_lockdep_class(pin, &gpio_lock_class);
 
 			/*
 			 * Can use the "simple" and not "edge" handler since it's
Index: linux-2.6-tip/arch/arm/mach-tegra/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-tegra/gpio.c
+++ linux-2.6-tip/arch/arm/mach-tegra/gpio.c
@@ -296,7 +296,7 @@ static int __init tegra_gpio_init(void)
 	for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
 		bank = &tegra_gpio_banks[GPIO_BANK(irq_to_gpio(i))];
 
-		lockdep_set_class(&irq_desc[i].lock, &gpio_lock_class);
+		irq_set_lockdep_class(i, &gpio_lock_class);
 		set_irq_chip_data(i, bank);
 		set_irq_chip(i, &tegra_gpio_irq_chip);
 		set_irq_handler(i, handle_simple_irq);
Index: linux-2.6-tip/arch/arm/plat-omap/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-omap/gpio.c
+++ linux-2.6-tip/arch/arm/plat-omap/gpio.c
@@ -1672,9 +1672,7 @@ static void __init omap_gpio_chip_init(s
 
 	for (j = bank->virtual_irq_start;
 		     j < bank->virtual_irq_start + bank_width; j++) {
-		struct irq_desc *d = irq_to_desc(j);
-
-		lockdep_set_class(&d->lock, &gpio_lock_class);
+		irq_set_lockdep_class(j, &gpio_lock_class);
 		set_irq_chip_data(j, bank);
 		if (bank_is_mpuio(bank))
 			set_irq_chip(j, &mpuio_irq_chip);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 04/23] arm: Use irq flag setter function
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (2 preceding siblings ...)
  2011-03-25 13:21 ` [patch 03/23] arm: Use genirq lockdep helper to set lock class Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:21 ` [patch 05/23] arm: msm: Convert to new irq chip functions Thomas Gleixner
                   ` (18 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-use-wrapper.patch --]
[-- Type: text/plain, Size: 1412 bytes --]

Use the proper accessor function instead of fiddling in the status
bits directly.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arm-kernel@lists.infradead.org
---
 arch/arm/kernel/irq.c |   15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

Index: linux-2.6-tip/arch/arm/kernel/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/kernel/irq.c
+++ linux-2.6-tip/arch/arm/kernel/irq.c
@@ -144,24 +144,21 @@ asm_do_IRQ(unsigned int irq, struct pt_r
 
 void set_irq_flags(unsigned int irq, unsigned int iflags)
 {
-	struct irq_desc *desc;
-	unsigned long flags;
+	unsigned long clr = 0, set = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
 
 	if (irq >= nr_irqs) {
 		printk(KERN_ERR "Trying to set irq flags for IRQ%d\n", irq);
 		return;
 	}
 
-	desc = irq_to_desc(irq);
-	raw_spin_lock_irqsave(&desc->lock, flags);
-	desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;
 	if (iflags & IRQF_VALID)
-		desc->status &= ~IRQ_NOREQUEST;
+		clr |= IRQ_NOREQUEST;
 	if (iflags & IRQF_PROBE)
-		desc->status &= ~IRQ_NOPROBE;
+		clr |= IRQ_NOPROBE;
 	if (!(iflags & IRQF_NOAUTOEN))
-		desc->status &= ~IRQ_NOAUTOEN;
-	raw_spin_unlock_irqrestore(&desc->lock, flags);
+		clr |= IRQ_NOAUTOEN;
+	/* Order is clear bits in "clr" then set bits in "set" */
+	irq_modify_status(irq, clr, set & ~clr);
 }
 
 void __init init_IRQ(void)



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 05/23] arm: msm: Convert to new irq chip functions
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (3 preceding siblings ...)
  2011-03-25 13:21 ` [patch 04/23] arm: Use irq flag setter function Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:21 ` [patch 06/23] arm: Cleanup irq_desc access Thomas Gleixner
                   ` (17 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-msm-convert-chip-functions.patch --]
[-- Type: text/plain, Size: 3348 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-msm/gpio-v2.c |   33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/gpio-v2.c
+++ linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
@@ -230,18 +230,18 @@ static void msm_gpio_update_dual_edge_po
 	       val, val2);
 }
 
-static void msm_gpio_irq_ack(unsigned int irq)
+static void msm_gpio_irq_ack(struct irq_data *d)
 {
-	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, irq);
+	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq);
 
 	writel(BIT(INTR_STATUS), GPIO_INTR_STATUS(gpio));
 	if (test_bit(gpio, msm_gpio.dual_edge_irqs))
 		msm_gpio_update_dual_edge_pos(gpio);
 }
 
-static void msm_gpio_irq_mask(unsigned int irq)
+static void msm_gpio_irq_mask(struct irq_data *d)
 {
-	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, irq);
+	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq);
 	unsigned long irq_flags;
 
 	spin_lock_irqsave(&tlmm_lock, irq_flags);
@@ -251,9 +251,9 @@ static void msm_gpio_irq_mask(unsigned i
 	spin_unlock_irqrestore(&tlmm_lock, irq_flags);
 }
 
-static void msm_gpio_irq_unmask(unsigned int irq)
+static void msm_gpio_irq_unmask(struct irq_data *d)
 {
-	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, irq);
+	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq);
 	unsigned long irq_flags;
 
 	spin_lock_irqsave(&tlmm_lock, irq_flags);
@@ -263,9 +263,9 @@ static void msm_gpio_irq_unmask(unsigned
 	spin_unlock_irqrestore(&tlmm_lock, irq_flags);
 }
 
-static int msm_gpio_irq_set_type(unsigned int irq, unsigned int flow_type)
+static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int flow_type)
 {
-	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, irq);
+	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq);
 	unsigned long irq_flags;
 	uint32_t bits;
 
@@ -309,6 +309,7 @@ static int msm_gpio_irq_set_type(unsigne
  */
 static void msm_summary_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
+	struct irq_data *data = irq_desc_get_irq_data(desc);
 	unsigned long i;
 
 	for (i = find_first_bit(msm_gpio.enabled_irqs, NR_GPIO_IRQS);
@@ -318,12 +319,12 @@ static void msm_summary_irq_handler(unsi
 			generic_handle_irq(msm_gpio_to_irq(&msm_gpio.gpio_chip,
 							   i));
 	}
-	desc->chip->ack(irq);
+	data->chip->irq_ack(data);
 }
 
-static int msm_gpio_irq_set_wake(unsigned int irq, unsigned int on)
+static int msm_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
 {
-	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, irq);
+	int gpio = msm_irq_to_gpio(&msm_gpio.gpio_chip, d->irq);
 
 	if (on) {
 		if (bitmap_empty(msm_gpio.wake_irqs, NR_GPIO_IRQS))
@@ -340,11 +341,11 @@ static int msm_gpio_irq_set_wake(unsigne
 
 static struct irq_chip msm_gpio_irq_chip = {
 	.name		= "msmgpio",
-	.mask		= msm_gpio_irq_mask,
-	.unmask		= msm_gpio_irq_unmask,
-	.ack		= msm_gpio_irq_ack,
-	.set_type	= msm_gpio_irq_set_type,
-	.set_wake	= msm_gpio_irq_set_wake,
+	.irq_mask	= msm_gpio_irq_mask,
+	.irq_unmask	= msm_gpio_irq_unmask,
+	.irq_ack	= msm_gpio_irq_ack,
+	.irq_set_type	= msm_gpio_irq_set_type,
+	.irq_set_wake	= msm_gpio_irq_set_wake,
 };
 
 static int __devinit msm_gpio_probe(struct platform_device *dev)



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 06/23] arm: Cleanup irq_desc access
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (4 preceding siblings ...)
  2011-03-25 13:21 ` [patch 05/23] arm: msm: Convert to new irq chip functions Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:21 ` [patch 07/23] arm: plat-samsung: Use proper irq accessor functions Thomas Gleixner
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-orion.patch --]
[-- Type: text/plain, Size: 3970 bytes --]

Use the proper wrappers and use the flow type in irq_data.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/plat-orion/gpio.c |   25 ++++++++++---------------
 arch/arm/plat-orion/irq.c  |    2 +-
 2 files changed, 11 insertions(+), 16 deletions(-)

Index: linux-2.6-tip/arch/arm/plat-orion/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-orion/gpio.c
+++ linux-2.6-tip/arch/arm/plat-orion/gpio.c
@@ -324,9 +324,8 @@ EXPORT_SYMBOL(orion_gpio_set_blink);
 static void gpio_irq_ack(struct irq_data *d)
 {
 	struct orion_gpio_chip *ochip = irq_data_get_irq_chip_data(d);
-	int type;
+	int type = irqd_get_trigger_type(d);
 
-	type = irq_desc[d->irq].status & IRQ_TYPE_SENSE_MASK;
 	if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) {
 		int pin = d->irq - ochip->secondary_irq_base;
 
@@ -337,11 +336,10 @@ static void gpio_irq_ack(struct irq_data
 static void gpio_irq_mask(struct irq_data *d)
 {
 	struct orion_gpio_chip *ochip = irq_data_get_irq_chip_data(d);
-	int type;
+	int type = irqd_get_trigger_type(d);
 	void __iomem *reg;
 	int pin;
 
-	type = irq_desc[d->irq].status & IRQ_TYPE_SENSE_MASK;
 	if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING))
 		reg = GPIO_EDGE_MASK(ochip);
 	else
@@ -355,11 +353,10 @@ static void gpio_irq_mask(struct irq_dat
 static void gpio_irq_unmask(struct irq_data *d)
 {
 	struct orion_gpio_chip *ochip = irq_data_get_irq_chip_data(d);
-	int type;
+	int type = irqd_get_trigger_type(d);
 	void __iomem *reg;
 	int pin;
 
-	type = irq_desc[d->irq].status & IRQ_TYPE_SENSE_MASK;
 	if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING))
 		reg = GPIO_EDGE_MASK(ochip);
 	else
@@ -389,9 +386,9 @@ static int gpio_irq_set_type(struct irq_
 	 * Set edge/level type.
 	 */
 	if (type & (IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING)) {
-		set_irq_handler(d->irq, handle_edge_irq);
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 	} else if (type & (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) {
-		set_irq_handler(d->irq, handle_level_irq);
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 	} else {
 		printk(KERN_ERR "failed to set irq=%d (type=%d)\n",
 		       d->irq, type);
@@ -480,7 +477,7 @@ void __init orion_gpio_init(int gpio_bas
 		set_irq_chip(irq, &orion_gpio_irq_chip);
 		set_irq_handler(irq, handle_level_irq);
 		set_irq_chip_data(irq, ochip);
-		irq_desc[irq].status |= IRQ_LEVEL;
+		irq_set_status_flags(irq, IRQ_LEVEL);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }
@@ -488,7 +485,7 @@ void __init orion_gpio_init(int gpio_bas
 void orion_gpio_irq_handler(int pinoff)
 {
 	struct orion_gpio_chip *ochip;
-	u32 cause;
+	u32 cause, type;
 	int i;
 
 	ochip = orion_gpio_chip_find(pinoff);
@@ -500,15 +497,14 @@ void orion_gpio_irq_handler(int pinoff)
 
 	for (i = 0; i < ochip->chip.ngpio; i++) {
 		int irq;
-		struct irq_desc *desc;
 
 		irq = ochip->secondary_irq_base + i;
 
 		if (!(cause & (1 << i)))
 			continue;
 
-		desc = irq_desc + irq;
-		if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
+		type = irqd_get_trigger_type(irq_get_irq_data(irq));
+		if ((type & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
 			/* Swap polarity (race with GPIO line) */
 			u32 polarity;
 
@@ -516,7 +512,6 @@ void orion_gpio_irq_handler(int pinoff)
 			polarity ^= 1 << i;
 			writel(polarity, GPIO_IN_POL(ochip));
 		}
-
-		desc_handle_irq(irq, desc);
+		generic_handle_irq(irq);
 	}
 }
Index: linux-2.6-tip/arch/arm/plat-orion/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-orion/irq.c
+++ linux-2.6-tip/arch/arm/plat-orion/irq.c
@@ -59,7 +59,7 @@ void __init orion_irq_init(unsigned int 
 		set_irq_chip(irq, &orion_irq_chip);
 		set_irq_chip_data(irq, maskaddr);
 		set_irq_handler(irq, handle_level_irq);
-		irq_desc[irq].status |= IRQ_LEVEL;
+		irq_set_status_flags(irq, IRQ_LEVEL);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 07/23] arm: plat-samsung: Use proper irq accessor functions
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (5 preceding siblings ...)
  2011-03-25 13:21 ` [patch 06/23] arm: Cleanup irq_desc access Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:21 ` [patch 08/23] arm: stmp3xxx: Use generic_handle_irq() Thomas Gleixner
                   ` (15 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-samsung.patch --]
[-- Type: text/plain, Size: 3026 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/plat-samsung/irq-uart.c      |    5 ++---
 arch/arm/plat-samsung/irq-vic-timer.c |   13 +++++--------
 arch/arm/plat-samsung/wakeup-mask.c   |    8 ++++----
 3 files changed, 11 insertions(+), 15 deletions(-)

Index: linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-samsung/irq-uart.c
+++ linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
@@ -107,7 +107,6 @@ static struct irq_chip s3c_irq_uart = {
 
 static void __init s3c_init_uart_irq(struct s3c_uart_irq *uirq)
 {
-	struct irq_desc *desc = irq_to_desc(uirq->parent_irq);
 	void __iomem *reg_base = uirq->regs;
 	unsigned int irq;
 	int offs;
@@ -124,8 +123,8 @@ static void __init s3c_init_uart_irq(str
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
-	desc->irq_data.handler_data = uirq;
-	set_irq_chained_handler(uirq->parent_irq, s3c_irq_demux_uart);
+	irq_set_handler_data(uirq->parent_irq, uirq);
+	irq_set_chained_handler(uirq->parent_irq, s3c_irq_demux_uart);
 }
 
 /**
Index: linux-2.6-tip/arch/arm/plat-samsung/irq-vic-timer.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-samsung/irq-vic-timer.c
+++ linux-2.6-tip/arch/arm/plat-samsung/irq-vic-timer.c
@@ -77,14 +77,11 @@ static struct irq_chip s3c_irq_timer = {
 void __init s3c_init_vic_timer_irq(unsigned int parent_irq,
 				   unsigned int timer_irq)
 {
-	struct irq_desc *desc = irq_to_desc(parent_irq);
 
-	set_irq_chained_handler(parent_irq, s3c_irq_demux_vic_timer);
+	irq_set_chained_handler(parent_irq, s3c_irq_demux_vic_timer);
+	irq_set_irq_handler_data(parent_irq, (void *)timer_irq);
 
-	set_irq_chip(timer_irq, &s3c_irq_timer);
-	set_irq_chip_data(timer_irq, (void *)(1 << (timer_irq - IRQ_TIMER0)));
-	set_irq_handler(timer_irq, handle_level_irq);
-	set_irq_flags(timer_irq, IRQF_VALID);
-
-	desc->irq_data.handler_data = (void *)timer_irq;
+	irq_set_chip_and_handler(timer_irq, &s3c_irq_timer, handle_level_irq);
+	irq_set_chip_data(timer_irq, (void *)(1 << (timer_irq - IRQ_TIMER0)));
+	irq_set_flags(timer_irq, IRQF_VALID);
 }
Index: linux-2.6-tip/arch/arm/plat-samsung/wakeup-mask.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-samsung/wakeup-mask.c
+++ linux-2.6-tip/arch/arm/plat-samsung/wakeup-mask.c
@@ -22,7 +22,7 @@
 void samsung_sync_wakemask(void __iomem *reg,
 			   struct samsung_wakeup_mask *mask, int nr_mask)
 {
-	struct irq_desc *desc;
+	struct irq_data *data;
 	u32 val;
 
 	val = __raw_readl(reg);
@@ -33,10 +33,10 @@ void samsung_sync_wakemask(void __iomem 
 			continue;
 		}
 
-		desc = irq_to_desc(mask->irq);
+		data = irq_get_irq_data(mask->irq);
 
-		/* bit of a liberty to read this directly from irq_desc. */
-		if (desc->wake_depth > 0)
+		/* bit of a liberty to read this directly from irq_data. */
+		if (irqd_is_wakeup_set(d))
 			val &= ~mask->bit;
 		else
 			val |= mask->bit;



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 08/23] arm: stmp3xxx: Use generic_handle_irq()
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (6 preceding siblings ...)
  2011-03-25 13:21 ` [patch 07/23] arm: plat-samsung: Use proper irq accessor functions Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:21 ` [patch 09/23] arm: nomadik: Use local irq state Thomas Gleixner
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-stmp3.patch --]
[-- Type: text/plain, Size: 613 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/plat-stmp3xxx/pinmux.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Index: linux-2.6-tip/arch/arm/plat-stmp3xxx/pinmux.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-stmp3xxx/pinmux.c
+++ linux-2.6-tip/arch/arm/plat-stmp3xxx/pinmux.c
@@ -495,8 +495,7 @@ static void stmp3xxx_gpio_irq(u32 irq, s
 
 	while (stat) {
 		if (stat & 1)
-			irq_desc[gpio_irq].handle_irq(gpio_irq,
-				&irq_desc[gpio_irq]);
+			generic_handle_irq(gpio_irq);
 		gpio_irq++;
 		stat >>= 1;
 	}



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 09/23] arm: nomadik: Use local irq state
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (7 preceding siblings ...)
  2011-03-25 13:21 ` [patch 08/23] arm: stmp3xxx: Use generic_handle_irq() Thomas Gleixner
@ 2011-03-25 13:21 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 10/23] arm: plat-omap: Cleanup irq_desc access Thomas Gleixner
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:21 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-nomadik.patch --]
[-- Type: text/plain, Size: 2040 bytes --]

Store the enabled mask in the local state, so there is no need to
fiddle in the irq descriptor.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/plat-nomadik/gpio.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

Index: linux-2.6-tip/arch/arm/plat-nomadik/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-nomadik/gpio.c
+++ linux-2.6-tip/arch/arm/plat-nomadik/gpio.c
@@ -54,6 +54,7 @@ struct nmk_gpio_chip {
 	u32 rwimsc;
 	u32 fwimsc;
 	u32 slpm;
+	u32 enabled;
 };
 
 static struct nmk_gpio_chip *
@@ -564,6 +565,11 @@ static int nmk_gpio_irq_maskunmask(struc
 	if (!nmk_chip)
 		return -EINVAL;
 
+	if (enable)
+		nmk_chip->enabled |= bitmask;
+	else
+		nmk_chip->enabled &= ~bitmask;
+
 	spin_lock_irqsave(&nmk_gpio_slpm_lock, flags);
 	spin_lock(&nmk_chip->lock);
 
@@ -590,8 +596,6 @@ static void nmk_gpio_irq_unmask(struct i
 
 static int nmk_gpio_irq_set_wake(struct irq_data *d, unsigned int on)
 {
-	struct irq_desc *desc = irq_to_desc(d->irq);
-	bool enabled = !(desc->status & IRQ_DISABLED);
 	struct nmk_gpio_chip *nmk_chip;
 	unsigned long flags;
 	u32 bitmask;
@@ -606,7 +610,7 @@ static int nmk_gpio_irq_set_wake(struct 
 	spin_lock_irqsave(&nmk_gpio_slpm_lock, flags);
 	spin_lock(&nmk_chip->lock);
 
-	if (!enabled)
+	if (!(nmk_chip->enabled & bitmask))
 		__nmk_gpio_set_wake(nmk_chip, gpio, on);
 
 	if (on)
@@ -622,9 +626,7 @@ static int nmk_gpio_irq_set_wake(struct 
 
 static int nmk_gpio_irq_set_type(struct irq_data *d, unsigned int type)
 {
-	struct irq_desc *desc = irq_to_desc(d->irq);
-	bool enabled = !(desc->status & IRQ_DISABLED);
-	bool wake = desc->wake_depth;
+	bool enabled, wake = irqd_is_wakeup_set(d);
 	int gpio;
 	struct nmk_gpio_chip *nmk_chip;
 	unsigned long flags;
@@ -641,6 +643,8 @@ static int nmk_gpio_irq_set_type(struct 
 	if (type & IRQ_TYPE_LEVEL_LOW)
 		return -EINVAL;
 
+	enabled = nmk_chip->enabled & bitmask;
+
 	spin_lock_irqsave(&nmk_chip->lock, flags);
 
 	if (enabled)



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 10/23] arm: plat-omap: Cleanup irq_desc access
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (8 preceding siblings ...)
  2011-03-25 13:21 ` [patch 09/23] arm: nomadik: Use local irq state Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 11/23] arm: msm: Use proper irq accessor functions Thomas Gleixner
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-omap.patch --]
[-- Type: text/plain, Size: 1336 bytes --]

1) Core code stores the flow type already
2) Flow type is accessible in irq_data

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/plat-omap/gpio.c |    9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

Index: linux-2.6-tip/arch/arm/plat-omap/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-omap/gpio.c
+++ linux-2.6-tip/arch/arm/plat-omap/gpio.c
@@ -755,12 +755,6 @@ static int gpio_irq_type(struct irq_data
 	bank = irq_data_get_irq_chip_data(d);
 	spin_lock_irqsave(&bank->lock, flags);
 	retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type);
-	if (retval == 0) {
-		struct irq_desc *desc = irq_to_desc(d->irq);
-
-		desc->status &= ~IRQ_TYPE_SENSE_MASK;
-		desc->status |= type;
-	}
 	spin_unlock_irqrestore(&bank->lock, flags);
 
 	if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
@@ -1270,8 +1264,7 @@ static void gpio_unmask_irq(struct irq_d
 	unsigned int gpio = d->irq - IH_GPIO_BASE;
 	struct gpio_bank *bank = irq_data_get_irq_chip_data(d);
 	unsigned int irq_mask = 1 << get_gpio_index(gpio);
-	struct irq_desc *desc = irq_to_desc(d->irq);
-	u32 trigger = desc->status & IRQ_TYPE_SENSE_MASK;
+	u32 trigger = irqd_get_trigger_type(d);
 
 	if (trigger)
 		_set_gpio_triggering(bank, get_gpio_index(gpio), trigger);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 11/23] arm: msm: Use proper irq accessor functions
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (9 preceding siblings ...)
  2011-03-25 13:22 ` [patch 10/23] arm: plat-omap: Cleanup irq_desc access Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 12/23] arm: vt8500: Use proper irq accessors Thomas Gleixner
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-msm.patch --]
[-- Type: text/plain, Size: 4027 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-msm/gpio-v2.c |    4 ++--
 arch/arm/mach-msm/gpio.c    |    4 ++--
 arch/arm/mach-msm/irq-vic.c |    4 ++--
 arch/arm/mach-msm/irq.c     |    4 ++--
 arch/arm/mach-msm/sirc.c    |    4 ++--
 5 files changed, 10 insertions(+), 10 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/gpio-v2.c
+++ linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
@@ -275,14 +275,14 @@ static int msm_gpio_irq_set_type(struct 
 
 	if (flow_type & IRQ_TYPE_EDGE_BOTH) {
 		bits |= BIT(INTR_DECT_CTL);
-		irq_desc[irq].handle_irq = handle_edge_irq;
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 		if ((flow_type & IRQ_TYPE_EDGE_BOTH) == IRQ_TYPE_EDGE_BOTH)
 			__set_bit(gpio, msm_gpio.dual_edge_irqs);
 		else
 			__clear_bit(gpio, msm_gpio.dual_edge_irqs);
 	} else {
 		bits &= ~BIT(INTR_DECT_CTL);
-		irq_desc[irq].handle_irq = handle_level_irq;
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 		__clear_bit(gpio, msm_gpio.dual_edge_irqs);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-msm/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/gpio.c
+++ linux-2.6-tip/arch/arm/mach-msm/gpio.c
@@ -293,10 +293,10 @@ static int msm_gpio_irq_set_type(struct 
 	val = readl(msm_chip->regs.int_edge);
 	if (flow_type & IRQ_TYPE_EDGE_BOTH) {
 		writel(val | mask, msm_chip->regs.int_edge);
-		irq_desc[d->irq].handle_irq = handle_edge_irq;
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 	} else {
 		writel(val & ~mask, msm_chip->regs.int_edge);
-		irq_desc[d->irq].handle_irq = handle_level_irq;
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 	}
 	if ((flow_type & IRQ_TYPE_EDGE_BOTH) == IRQ_TYPE_EDGE_BOTH) {
 		msm_chip->both_edge_detect |= mask;
Index: linux-2.6-tip/arch/arm/mach-msm/irq-vic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/irq-vic.c
+++ linux-2.6-tip/arch/arm/mach-msm/irq-vic.c
@@ -313,11 +313,11 @@ static int msm_irq_set_type(struct irq_d
 	type = msm_irq_shadow_reg[index].int_type;
 	if (flow_type & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)) {
 		type |= b;
-		irq_desc[d->irq].handle_irq = handle_edge_irq;
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 	}
 	if (flow_type & (IRQF_TRIGGER_HIGH | IRQF_TRIGGER_LOW)) {
 		type &= ~b;
-		irq_desc[d->irq].handle_irq = handle_level_irq;
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 	}
 	writel(type, treg);
 	msm_irq_shadow_reg[index].int_type = type;
Index: linux-2.6-tip/arch/arm/mach-msm/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/irq.c
+++ linux-2.6-tip/arch/arm/mach-msm/irq.c
@@ -100,11 +100,11 @@ static int msm_irq_set_type(struct irq_d
 
 	if (flow_type & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)) {
 		writel(readl(treg) | b, treg);
-		irq_desc[d->irq].handle_irq = handle_edge_irq;
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 	}
 	if (flow_type & (IRQF_TRIGGER_HIGH | IRQF_TRIGGER_LOW)) {
 		writel(readl(treg) & (~b), treg);
-		irq_desc[d->irq].handle_irq = handle_level_irq;
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 	}
 	return 0;
 }
Index: linux-2.6-tip/arch/arm/mach-msm/sirc.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/sirc.c
+++ linux-2.6-tip/arch/arm/mach-msm/sirc.c
@@ -105,10 +105,10 @@ static int sirc_irq_set_type(struct irq_
 	val = readl(sirc_regs.int_type);
 	if (flow_type & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)) {
 		val |= mask;
-		irq_desc[d->irq].handle_irq = handle_edge_irq;
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 	} else {
 		val &= ~mask;
-		irq_desc[d->irq].handle_irq = handle_level_irq;
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 	}
 
 	writel(val, sirc_regs.int_type);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 12/23] arm: vt8500: Use proper irq accessors
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (10 preceding siblings ...)
  2011-03-25 13:22 ` [patch 11/23] arm: msm: Use proper irq accessor functions Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 13/23] arm: mxc: Use generic_handle_irq() Thomas Gleixner
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-vt8500.patch --]
[-- Type: text/plain, Size: 1030 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-vt8500/irq.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-vt8500/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-vt8500/irq.c
+++ linux-2.6-tip/arch/arm/mach-vt8500/irq.c
@@ -97,15 +97,15 @@ static int vt8500_irq_set_type(unsigned 
 		return -EINVAL;
 	case IRQF_TRIGGER_HIGH:
 		dctr |= VT8500_TRIGGER_HIGH;
-		irq_desc[orig_irq].handle_irq = handle_level_irq;
+		__irq_set_handler_locked(orig_irq, handle_level_irq);
 		break;
 	case IRQF_TRIGGER_FALLING:
 		dctr |= VT8500_TRIGGER_FALLING;
-		irq_desc[orig_irq].handle_irq = handle_edge_irq;
+		__irq_set_handler_locked(orig_irq, handle_edge_irq);
 		break;
 	case IRQF_TRIGGER_RISING:
 		dctr |= VT8500_TRIGGER_RISING;
-		irq_desc[orig_irq].handle_irq = handle_edge_irq;
+		__irq_set_handler_locked(orig_irq, handle_edge_irq);
 		break;
 	}
 	writeb(dctr, base + VT8500_IC_DCTR + irq);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 13/23] arm: mxc: Use generic_handle_irq()
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (11 preceding siblings ...)
  2011-03-25 13:22 ` [patch 12/23] arm: vt8500: Use proper irq accessors Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 14/23] arm: gemini: Use proper irq accessor functions Thomas Gleixner
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-mxc.patch --]
[-- Type: text/plain, Size: 863 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/plat-mxc/3ds_debugboard.c |    7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

Index: linux-2.6-tip/arch/arm/plat-mxc/3ds_debugboard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/3ds_debugboard.c
+++ linux-2.6-tip/arch/arm/plat-mxc/3ds_debugboard.c
@@ -100,14 +100,9 @@ static void mxc_expio_irq_handler(u32 ir
 
 	expio_irq = MXC_BOARD_IRQ_START;
 	for (; int_valid != 0; int_valid >>= 1, expio_irq++) {
-		struct irq_desc *d;
 		if ((int_valid & 1) == 0)
 			continue;
-		d = irq_desc + expio_irq;
-		if (unlikely(!(d->handle_irq)))
-			pr_err("\nEXPIO irq: %d unhandled\n", expio_irq);
-		else
-			d->handle_irq(expio_irq, d);
+		generic_handle_irq(expio_irq);
 	}
 
 	desc->irq_data.chip->irq_ack(&desc->irq_data);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 14/23] arm: gemini: Use proper irq accessor functions
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (12 preceding siblings ...)
  2011-03-25 13:22 ` [patch 13/23] arm: mxc: Use generic_handle_irq() Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 15/23] arm: ep93xx: " Thomas Gleixner
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-gemini.patch --]
[-- Type: text/plain, Size: 1004 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-gemini/gpio.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-gemini/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-gemini/gpio.c
+++ linux-2.6-tip/arch/arm/mach-gemini/gpio.c
@@ -127,8 +127,8 @@ static int gpio_set_irq_type(struct irq_
 
 static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
+	unsigned int port = (unsigned int)irq_desc_get_handler_data(desc);
 	unsigned int gpio_irq_no, irq_stat;
-	unsigned int port = (unsigned int)get_irq_data(irq);
 
 	irq_stat = __raw_readl(GPIO_BASE(port) + GPIO_INT_STAT);
 
@@ -138,9 +138,7 @@ static void gpio_irq_handler(unsigned in
 		if ((irq_stat & 1) == 0)
 			continue;
 
-		BUG_ON(!(irq_desc[gpio_irq_no].handle_irq));
-		irq_desc[gpio_irq_no].handle_irq(gpio_irq_no,
-				&irq_desc[gpio_irq_no]);
+		generic_handle_irq(gpio_irq_no);
 	}
 }
 



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 15/23] arm: ep93xx: Use proper irq accessor functions
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (13 preceding siblings ...)
  2011-03-25 13:22 ` [patch 14/23] arm: gemini: Use proper irq accessor functions Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 16/23] arm: davinci: Cleanup irq chip code Thomas Gleixner
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-ep93xx.patch --]
[-- Type: text/plain, Size: 3013 bytes --]

No need to write the flow type. Core code does already.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-ep93xx/gpio.c |   21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ep93xx/gpio.c
+++ linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
@@ -117,7 +117,7 @@ static void ep93xx_gpio_irq_ack(struct i
 	int port = line >> 3;
 	int port_mask = 1 << (line & 7);
 
-	if ((irq_desc[d->irq].status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH) {
+	if (irqd_get_trigger_type(d) == IRQ_TYPE_EDGE_BOTH) {
 		gpio_int_type2[port] ^= port_mask; /* switch edge direction */
 		ep93xx_gpio_update_int_params(port);
 	}
@@ -131,7 +131,7 @@ static void ep93xx_gpio_irq_mask_ack(str
 	int port = line >> 3;
 	int port_mask = 1 << (line & 7);
 
-	if ((irq_desc[d->irq].status & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
+	if (irqd_get_trigger_type(d) == IRQ_TYPE_EDGE_BOTH)
 		gpio_int_type2[port] ^= port_mask; /* switch edge direction */
 
 	gpio_int_unmasked[port] &= ~port_mask;
@@ -165,10 +165,10 @@ static void ep93xx_gpio_irq_unmask(struc
  */
 static int ep93xx_gpio_irq_type(struct irq_data *d, unsigned int type)
 {
-	struct irq_desc *desc = irq_desc + d->irq;
 	const int gpio = irq_to_gpio(d->irq);
 	const int port = gpio >> 3;
 	const int port_mask = 1 << (gpio & 7);
+	irq_flow_handler_t handler;
 
 	gpio_direction_input(gpio);
 
@@ -176,22 +176,22 @@ static int ep93xx_gpio_irq_type(struct i
 	case IRQ_TYPE_EDGE_RISING:
 		gpio_int_type1[port] |= port_mask;
 		gpio_int_type2[port] |= port_mask;
-		desc->handle_irq = handle_edge_irq;
+		handler = handle_edge_irq;
 		break;
 	case IRQ_TYPE_EDGE_FALLING:
 		gpio_int_type1[port] |= port_mask;
 		gpio_int_type2[port] &= ~port_mask;
-		desc->handle_irq = handle_edge_irq;
+		handler = handle_edge_irq;
 		break;
 	case IRQ_TYPE_LEVEL_HIGH:
 		gpio_int_type1[port] &= ~port_mask;
 		gpio_int_type2[port] |= port_mask;
-		desc->handle_irq = handle_level_irq;
+		handler = handle_level_irq;
 		break;
 	case IRQ_TYPE_LEVEL_LOW:
 		gpio_int_type1[port] &= ~port_mask;
 		gpio_int_type2[port] &= ~port_mask;
-		desc->handle_irq = handle_level_irq;
+		handler = handle_level_irq;
 		break;
 	case IRQ_TYPE_EDGE_BOTH:
 		gpio_int_type1[port] |= port_mask;
@@ -200,17 +200,16 @@ static int ep93xx_gpio_irq_type(struct i
 			gpio_int_type2[port] &= ~port_mask; /* falling */
 		else
 			gpio_int_type2[port] |= port_mask; /* rising */
-		desc->handle_irq = handle_edge_irq;
+		handler = handle_edge_irq;
 		break;
 	default:
 		pr_err("failed to set irq type %d for gpio %d\n", type, gpio);
 		return -EINVAL;
 	}
 
-	gpio_int_enabled[port] |= port_mask;
+	__set_irq_handler_locked(d->irq, handler);
 
-	desc->status &= ~IRQ_TYPE_SENSE_MASK;
-	desc->status |= type & IRQ_TYPE_SENSE_MASK;
+	gpio_int_enabled[port] |= port_mask;
 
 	ep93xx_gpio_update_int_params(port);
 



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 16/23] arm: davinci: Cleanup irq chip code
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (14 preceding siblings ...)
  2011-03-25 13:22 ` [patch 15/23] arm: ep93xx: " Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 17/23] arm: at91: Cleanup irq chip Thomas Gleixner
                   ` (6 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-davinci.patch --]
[-- Type: text/plain, Size: 2386 bytes --]

Make use of the new functionality which ensures that irq_set_type is
called with the chip masked. Unmask is only done when the interrupt is
not disabled.

Retrieve the trigger type from irq_data in unmask

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-davinci/gpio.c |   17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-davinci/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-davinci/gpio.c
+++ linux-2.6-tip/arch/arm/mach-davinci/gpio.c
@@ -218,7 +218,7 @@ static void gpio_irq_enable(struct irq_d
 {
 	struct davinci_gpio_regs __iomem *g = irq2regs(d->irq);
 	u32 mask = (u32) irq_data_get_irq_data(d);
-	unsigned status = irq_desc[d->irq].status;
+	unsigned status = irqd_get_trigger_type(d);
 
 	status &= IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING;
 	if (!status)
@@ -238,16 +238,6 @@ static int gpio_irq_type(struct irq_data
 	if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
 		return -EINVAL;
 
-	irq_desc[d->irq].status &= ~IRQ_TYPE_SENSE_MASK;
-	irq_desc[d->irq].status |= trigger;
-
-	/* don't enable the IRQ if it's currently disabled */
-	if (irq_desc[d->irq].depth == 0) {
-		__raw_writel(mask, (trigger & IRQ_TYPE_EDGE_FALLING)
-			     ? &g->set_falling : &g->clr_falling);
-		__raw_writel(mask, (trigger & IRQ_TYPE_EDGE_RISING)
-			     ? &g->set_rising : &g->clr_rising);
-	}
 	return 0;
 }
 
@@ -256,6 +246,7 @@ static struct irq_chip gpio_irqchip = {
 	.irq_enable	= gpio_irq_enable,
 	.irq_disable	= gpio_irq_disable,
 	.irq_set_type	= gpio_irq_type,
+	.flags		= IRQCHIP_SET_TYPE_MASKED,
 };
 
 static void
@@ -395,7 +386,7 @@ static int __init davinci_gpio_irq_setup
 
 		/* AINTC handles mask/unmask; GPIO handles triggering */
 		irq = bank_irq;
-		gpio_irqchip_unbanked = *get_irq_desc_chip(irq_to_desc(irq));
+		gpio_irqchip_unbanked = *irq_get_chip(irq);
 		gpio_irqchip_unbanked.name = "GPIO-AINTC";
 		gpio_irqchip_unbanked.irq_set_type = gpio_irq_type_unbanked;
 
@@ -409,7 +400,7 @@ static int __init davinci_gpio_irq_setup
 			set_irq_chip(irq, &gpio_irqchip_unbanked);
 			set_irq_data(irq, (void *) __gpio_mask(gpio));
 			set_irq_chip_data(irq, (__force void *) g);
-			irq_desc[irq].status |= IRQ_TYPE_EDGE_BOTH;
+			irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH);
 		}
 
 		goto done;



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 17/23] arm: at91: Cleanup irq chip
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (15 preceding siblings ...)
  2011-03-25 13:22 ` [patch 16/23] arm: davinci: Cleanup irq chip code Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 21:03   ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 18/23] arm: gic: Use proper accessor functions Thomas Gleixner
                   ` (5 subsequent siblings)
  22 siblings, 1 reply; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-at91.patch --]
[-- Type: text/plain, Size: 2297 bytes --]

Avoid the whole lazy disable dance in the demux handler by providing a
irq_disable() callback.

Use the proper accessor functions and tidy up gpio_irq_handler()

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/mach-at91/gpio.c |   31 +++++++++----------------------
 1 file changed, 9 insertions(+), 22 deletions(-)

Index: linux-2.6-tip/arch/arm/mach-at91/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-at91/gpio.c
+++ linux-2.6-tip/arch/arm/mach-at91/gpio.c
@@ -375,6 +375,7 @@ static int gpio_irq_type(struct irq_data
 
 static struct irq_chip gpio_irqchip = {
 	.name		= "GPIO",
+	.irq_disable	= gpio_irq_mask,
 	.irq_mask	= gpio_irq_mask,
 	.irq_unmask	= gpio_irq_unmask,
 	.irq_set_type	= gpio_irq_type,
@@ -384,16 +385,14 @@ static struct irq_chip gpio_irqchip = {
 static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 {
 	unsigned	pin;
-	struct irq_desc	*gpio;
-	struct at91_gpio_chip *at91_gpio;
-	void __iomem	*pio;
+	struct irq_data *idata = irq_desc_get_irq_data(desc);
+	struct irq_chip *chip = irq_data_get_chip(data);
+	struct at91_gpio_chip *at91_gpio = irq_data_get_chip_data(data);
+	void __iomem	*pio = at91_gpio->regbase;
 	u32		isr;
 
-	at91_gpio = get_irq_chip_data(irq);
-	pio = at91_gpio->regbase;
-
 	/* temporarily mask (level sensitive) parent IRQ */
-	desc->irq_data.chip->irq_ack(&desc->irq_data);
+	chip->irq_ack(idata);
 	for (;;) {
 		/* Reading ISR acks pending (edge triggered) GPIO interrupts.
 		 * When there none are pending, we're finished unless we need
@@ -409,27 +408,15 @@ static void gpio_irq_handler(unsigned ir
 		}
 
 		pin = at91_gpio->chip.base;
-		gpio = &irq_desc[pin];
 
 		while (isr) {
-			if (isr & 1) {
-				if (unlikely(gpio->depth)) {
-					/*
-					 * The core ARM interrupt handler lazily disables IRQs so
-					 * another IRQ must be generated before it actually gets
-					 * here to be disabled on the GPIO controller.
-					 */
-					gpio_irq_mask(irq_get_irq_data(pin));
-				}
-				else
-					generic_handle_irq(pin);
-			}
+			if (isr & 1)
+				generic_handle_irq(pin);
 			pin++;
-			gpio++;
 			isr >>= 1;
 		}
 	}
-	desc->irq_data.chip->irq_unmask(&desc->irq_data);
+	chip->irq_unmask(idata);
 	/* now it may re-trigger */
 }
 



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 18/23] arm: gic: Use proper accessor functions
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (16 preceding siblings ...)
  2011-03-25 13:22 ` [patch 17/23] arm: at91: Cleanup irq chip Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 19/23] arm: dove: Use proper irq " Thomas Gleixner
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-gic.patch --]
[-- Type: text/plain, Size: 603 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/common/gic.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6-tip/arch/arm/common/gic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/gic.c
+++ linux-2.6-tip/arch/arm/common/gic.c
@@ -382,7 +382,7 @@ void __cpuinit gic_enable_ppi(unsigned i
 	unsigned long flags;
 
 	local_irq_save(flags);
-	irq_to_desc(irq)->status |= IRQ_NOPROBE;
+	irq_set_status_flags(irq, IRQ_NOPROBE);
 	gic_unmask_irq(irq_get_irq_data(irq));
 	local_irq_restore(flags);
 }



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 19/23] arm: dove: Use proper irq accessor functions
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (17 preceding siblings ...)
  2011-03-25 13:22 ` [patch 18/23] arm: gic: Use proper accessor functions Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 20/23] arm: Use generic show_interrupts() Thomas Gleixner
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-mach-dove.patch --]
[-- Type: text/plain, Size: 1609 bytes --]

Remove the obsolete desc_handle_irq() helper.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/include/asm/hw_irq.h |    8 --------
 arch/arm/mach-dove/irq.c      |    5 ++---
 2 files changed, 2 insertions(+), 11 deletions(-)

Index: linux-2.6-tip/arch/arm/include/asm/hw_irq.h
===================================================================
--- linux-2.6-tip.orig/arch/arm/include/asm/hw_irq.h
+++ linux-2.6-tip/arch/arm/include/asm/hw_irq.h
@@ -10,14 +10,6 @@ static inline void ack_bad_irq(int irq)
 	irq_err_count++;
 }
 
-/*
- * Obsolete inline function for calling irq descriptor handlers.
- */
-static inline void desc_handle_irq(unsigned int irq, struct irq_desc *desc)
-{
-	desc->handle_irq(irq, desc);
-}
-
 void set_irq_flags(unsigned int irq, unsigned int flags);
 
 #define IRQF_VALID	(1 << 0)
Index: linux-2.6-tip/arch/arm/mach-dove/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-dove/irq.c
+++ linux-2.6-tip/arch/arm/mach-dove/irq.c
@@ -86,8 +86,7 @@ static void pmu_irq_handler(unsigned int
 		if (!(cause & (1 << irq)))
 			continue;
 		irq = pmu_to_irq(irq);
-		desc = irq_desc + irq;
-		desc_handle_irq(irq, desc);
+		generic_handle_irq(irq);
 	}
 }
 
@@ -124,7 +123,7 @@ void __init dove_init_irq(void)
 	for (i = IRQ_DOVE_PMU_START; i < NR_IRQS; i++) {
 		set_irq_chip(i, &pmu_irq_chip);
 		set_irq_handler(i, handle_level_irq);
-		irq_desc[i].status |= IRQ_LEVEL;
+		irq_set_status_flags(i, IRQ_LEVEL);
 		set_irq_flags(i, IRQF_VALID);
 	}
 	set_irq_chained_handler(IRQ_DOVE_PMU, pmu_irq_handler);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 20/23] arm: Use generic show_interrupts()
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (18 preceding siblings ...)
  2011-03-25 13:22 ` [patch 19/23] arm: dove: Use proper irq " Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 21/23] arm: Cleanup the irq namespace Thomas Gleixner
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-use-generic-show-interrupts.patch --]
[-- Type: text/plain, Size: 2568 bytes --]

Use the generic version and just keep the arch specific output.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/Kconfig      |    1 
 arch/arm/kernel/irq.c |   55 ++++----------------------------------------------
 2 files changed, 6 insertions(+), 50 deletions(-)

Index: linux-2.6-tip/arch/arm/Kconfig
===================================================================
--- linux-2.6-tip.orig/arch/arm/Kconfig
+++ linux-2.6-tip/arch/arm/Kconfig
@@ -28,6 +28,7 @@ config ARM
 	select HAVE_C_RECORDMCOUNT
 	select HAVE_GENERIC_HARDIRQS
 	select HAVE_SPARSE_IRQ
+	select GENERIC_IRQ_SHOW
 	help
 	  The ARM series is a line of low-power-consumption RISC chip designs
 	  licensed by ARM Ltd and targeted at embedded applications and
Index: linux-2.6-tip/arch/arm/kernel/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/kernel/irq.c
+++ linux-2.6-tip/arch/arm/kernel/irq.c
@@ -51,63 +51,18 @@
 
 unsigned long irq_err_count;
 
-int show_interrupts(struct seq_file *p, void *v)
+int arch_show_interrupts(struct seq_file *p, int prec)
 {
-	int i = *(loff_t *) v, cpu;
-	struct irq_desc *desc;
-	struct irqaction * action;
-	unsigned long flags;
-	int prec, n;
-
-	for (prec = 3, n = 1000; prec < 10 && n <= nr_irqs; prec++)
-		n *= 10;
-
-#ifdef CONFIG_SMP
-	if (prec < 4)
-		prec = 4;
-#endif
-
-	if (i == 0) {
-		char cpuname[12];
-
-		seq_printf(p, "%*s ", prec, "");
-		for_each_present_cpu(cpu) {
-			sprintf(cpuname, "CPU%d", cpu);
-			seq_printf(p, " %10s", cpuname);
-		}
-		seq_putc(p, '\n');
-	}
-
-	if (i < nr_irqs) {
-		desc = irq_to_desc(i);
-		raw_spin_lock_irqsave(&desc->lock, flags);
-		action = desc->action;
-		if (!action)
-			goto unlock;
-
-		seq_printf(p, "%*d: ", prec, i);
-		for_each_present_cpu(cpu)
-			seq_printf(p, "%10u ", kstat_irqs_cpu(i, cpu));
-		seq_printf(p, " %10s", desc->irq_data.chip->name ? : "-");
-		seq_printf(p, "  %s", action->name);
-		for (action = action->next; action; action = action->next)
-			seq_printf(p, ", %s", action->name);
-
-		seq_putc(p, '\n');
-unlock:
-		raw_spin_unlock_irqrestore(&desc->lock, flags);
-	} else if (i == nr_irqs) {
 #ifdef CONFIG_FIQ
-		show_fiq_list(p, prec);
+	show_fiq_list(p, prec);
 #endif
 #ifdef CONFIG_SMP
-		show_ipi_list(p, prec);
+	show_ipi_list(p, prec);
 #endif
 #ifdef CONFIG_LOCAL_TIMERS
-		show_local_irqs(p, prec);
+	show_local_irqs(p, prec);
 #endif
-		seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count);
-	}
+	seq_printf(p, "%*s: %10lu\n", prec, "Err", irq_err_count);
 	return 0;
 }
 



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 21/23] arm: Cleanup the irq namespace
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (19 preceding siblings ...)
  2011-03-25 13:22 ` [patch 20/23] arm: Use generic show_interrupts() Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-04-18 17:43   ` H Hartley Sweeten
  2011-03-25 13:22 ` [patch 22/23] arm: Reorder irq_set_ function calls Thomas Gleixner
  2011-03-25 13:22 ` [patch 23/23] arm: Fold irq_set_chip/irq_set_handler Thomas Gleixner
  22 siblings, 1 reply; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-genirq-namespace-cleanup.patch --]
[-- Type: text/plain, Size: 153181 bytes --]

Convert to the new function names. Automated with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/common/gic.c                          |   14 +++----
 arch/arm/common/it8152.c                       |    4 +-
 arch/arm/common/locomo.c                       |   18 +++++-----
 arch/arm/common/sa1111.c                       |   24 ++++++-------
 arch/arm/common/vic.c                          |    6 +--
 arch/arm/kernel/ecard.c                        |    6 +--
 arch/arm/mach-at91/at91cap9_devices.c          |    6 +--
 arch/arm/mach-at91/gpio.c                      |   10 ++---
 arch/arm/mach-at91/irq.c                       |    4 +-
 arch/arm/mach-bcmring/irq.c                    |   10 ++---
 arch/arm/mach-clps711x/irq.c                   |    8 ++--
 arch/arm/mach-davinci/cp_intc.c                |    4 +-
 arch/arm/mach-davinci/gpio.c                   |   32 +++++++++---------
 arch/arm/mach-davinci/irq.c                    |    6 +--
 arch/arm/mach-dove/irq.c                       |   16 ++++-----
 arch/arm/mach-ebsa110/core.c                   |    4 +-
 arch/arm/mach-ep93xx/gpio.c                    |   31 +++++++++++------
 arch/arm/mach-exynos4/irq-combiner.c           |   14 +++----
 arch/arm/mach-exynos4/irq-eint.c               |   15 ++++----
 arch/arm/mach-footbridge/common.c              |    4 +-
 arch/arm/mach-footbridge/isa-irq.c             |   10 ++---
 arch/arm/mach-gemini/gpio.c                    |    8 ++--
 arch/arm/mach-gemini/irq.c                     |    6 +--
 arch/arm/mach-h720x/common.c                   |   22 ++++++------
 arch/arm/mach-h720x/cpu-h7202.c                |    6 +--
 arch/arm/mach-integrator/integrator_ap.c       |    4 +-
 arch/arm/mach-integrator/integrator_cp.c       |   14 +++----
 arch/arm/mach-iop13xx/irq.c                    |   10 ++---
 arch/arm/mach-iop13xx/msi.c                    |    6 +--
 arch/arm/mach-iop32x/irq.c                     |    4 +-
 arch/arm/mach-iop33x/irq.c                     |    5 +-
 arch/arm/mach-ixp2000/core.c                   |   20 +++++------
 arch/arm/mach-ixp2000/ixdp2x00.c               |    6 +--
 arch/arm/mach-ixp2000/ixdp2x01.c               |    6 +--
 arch/arm/mach-ixp23xx/core.c                   |   14 +++----
 arch/arm/mach-ixp23xx/ixdp2351.c               |   12 +++---
 arch/arm/mach-ixp23xx/roadrunner.c             |    4 +-
 arch/arm/mach-ixp4xx/avila-pci.c               |    8 ++--
 arch/arm/mach-ixp4xx/common.c                  |    4 +-
 arch/arm/mach-ixp4xx/coyote-pci.c              |    4 +-
 arch/arm/mach-ixp4xx/dsmg600-pci.c             |   12 +++---
 arch/arm/mach-ixp4xx/fsg-pci.c                 |    6 +--
 arch/arm/mach-ixp4xx/gateway7001-pci.c         |    4 +-
 arch/arm/mach-ixp4xx/goramo_mlr.c              |   12 +++---
 arch/arm/mach-ixp4xx/gtwx5715-pci.c            |    4 +-
 arch/arm/mach-ixp4xx/ixdp425-pci.c             |    8 ++--
 arch/arm/mach-ixp4xx/ixdpg425-pci.c            |    4 +-
 arch/arm/mach-ixp4xx/nas100d-pci.c             |   10 ++---
 arch/arm/mach-ixp4xx/nslu2-pci.c               |    6 +--
 arch/arm/mach-ixp4xx/vulcan-pci.c              |    4 +-
 arch/arm/mach-ixp4xx/wg302v2-pci.c             |    4 +-
 arch/arm/mach-kirkwood/irq.c                   |   15 ++++----
 arch/arm/mach-ks8695/gpio.c                    |    2 -
 arch/arm/mach-ks8695/irq.c                     |   16 ++++-----
 arch/arm/mach-lpc32xx/irq.c                    |   10 ++---
 arch/arm/mach-mmp/irq-mmp2.c                   |   18 +++++-----
 arch/arm/mach-mmp/irq-pxa168.c                 |    4 +-
 arch/arm/mach-msm/board-msm8960.c              |    2 -
 arch/arm/mach-msm/board-msm8x60.c              |    2 -
 arch/arm/mach-msm/board-trout-gpio.c           |   10 ++---
 arch/arm/mach-msm/board-trout-mmc.c            |    2 -
 arch/arm/mach-msm/gpio-v2.c                    |   12 +++---
 arch/arm/mach-msm/gpio.c                       |   14 +++----
 arch/arm/mach-msm/irq-vic.c                    |    4 +-
 arch/arm/mach-msm/irq.c                        |    4 +-
 arch/arm/mach-msm/sirc.c                       |    8 ++--
 arch/arm/mach-mv78xx0/irq.c                    |    8 ++--
 arch/arm/mach-mx3/mach-mx31ads.c               |    8 ++--
 arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c   |    2 -
 arch/arm/mach-mxs/gpio.c                       |   10 ++---
 arch/arm/mach-mxs/icoll.c                      |    4 +-
 arch/arm/mach-netx/generic.c                   |    6 +--
 arch/arm/mach-ns9xxx/board-a9m9750dev.c        |    8 ++--
 arch/arm/mach-ns9xxx/irq.c                     |    4 +-
 arch/arm/mach-nuc93x/irq.c                     |    4 +-
 arch/arm/mach-omap1/board-osk.c                |    6 +--
 arch/arm/mach-omap1/board-palmz71.c            |    8 ++--
 arch/arm/mach-omap1/board-voiceblue.c          |    8 ++--
 arch/arm/mach-omap1/fpga.c                     |   10 ++---
 arch/arm/mach-omap1/irq.c                      |    4 +-
 arch/arm/mach-omap2/gpmc.c                     |    2 -
 arch/arm/mach-omap2/irq.c                      |    4 +-
 arch/arm/mach-orion5x/db88f5281-setup.c        |    4 +-
 arch/arm/mach-orion5x/irq.c                    |    8 ++--
 arch/arm/mach-orion5x/rd88f5182-setup.c        |    4 +-
 arch/arm/mach-orion5x/terastation_pro2-setup.c |    2 -
 arch/arm/mach-orion5x/ts209-setup.c            |    4 +-
 arch/arm/mach-pnx4008/irq.c                    |   10 ++---
 arch/arm/mach-pxa/balloon3.c                   |    8 ++--
 arch/arm/mach-pxa/cm-x2xx-pci.c                |    5 +-
 arch/arm/mach-pxa/cm-x300.c                    |    2 -
 arch/arm/mach-pxa/irq.c                        |   12 +++---
 arch/arm/mach-pxa/lpd270.c                     |    8 ++--
 arch/arm/mach-pxa/lubbock.c                    |    8 ++--
 arch/arm/mach-pxa/mainstone.c                  |    8 ++--
 arch/arm/mach-pxa/pcm990-baseboard.c           |    8 ++--
 arch/arm/mach-pxa/pxa3xx.c                     |    4 +-
 arch/arm/mach-pxa/viper.c                      |    8 ++--
 arch/arm/mach-pxa/zeus.c                       |   19 +++++-----
 arch/arm/mach-rpc/irq.c                        |   14 +++----
 arch/arm/mach-s3c2410/bast-irq.c               |    6 +--
 arch/arm/mach-s3c2412/irq.c                    |   12 +++---
 arch/arm/mach-s3c2416/irq.c                    |   10 ++---
 arch/arm/mach-s3c2440/irq.c                    |   10 ++---
 arch/arm/mach-s3c2440/s3c244x-irq.c            |   14 +++----
 arch/arm/mach-s3c2443/irq.c                    |   10 ++---
 arch/arm/mach-s3c64xx/irq-eint.c               |   14 +++----
 arch/arm/mach-sa1100/cerf.c                    |    2 -
 arch/arm/mach-sa1100/irq.c                     |   16 ++++-----
 arch/arm/mach-sa1100/neponset.c                |    8 ++--
 arch/arm/mach-sa1100/pleb.c                    |    2 -
 arch/arm/mach-shark/irq.c                      |    4 +-
 arch/arm/mach-shmobile/board-ap4evb.c          |    4 +-
 arch/arm/mach-shmobile/board-mackerel.c        |    6 +--
 arch/arm/mach-shmobile/intc-sh7367.c           |    6 +--
 arch/arm/mach-shmobile/intc-sh7372.c           |    6 +--
 arch/arm/mach-shmobile/intc-sh7377.c           |    6 +--
 arch/arm/mach-tcc8k/irq.c                      |    6 +--
 arch/arm/mach-tegra/gpio.c                     |   18 +++++-----
 arch/arm/mach-tegra/irq.c                      |    6 +--
 arch/arm/mach-ux500/modem-irq-db5500.c         |    4 +-
 arch/arm/mach-versatile/core.c                 |    6 +--
 arch/arm/mach-vt8500/irq.c                     |    8 ++--
 arch/arm/mach-w90x900/irq.c                    |    4 +-
 arch/arm/plat-mxc/3ds_debugboard.c             |    8 ++--
 arch/arm/plat-mxc/avic.c                       |    4 +-
 arch/arm/plat-mxc/gpio.c                       |   24 +++++++------
 arch/arm/plat-mxc/irq-common.c                 |    4 +-
 arch/arm/plat-mxc/tzic.c                       |    4 +-
 arch/arm/plat-nomadik/gpio.c                   |   34 +++++++++----------
 arch/arm/plat-omap/gpio.c                      |   18 +++++-----
 arch/arm/plat-orion/gpio.c                     |    6 +--
 arch/arm/plat-orion/irq.c                      |    6 +--
 arch/arm/plat-pxa/gpio.c                       |    6 +--
 arch/arm/plat-s3c24xx/irq.c                    |   44 ++++++++++++-------------
 arch/arm/plat-s5p/irq-eint.c                   |    8 ++--
 arch/arm/plat-s5p/irq-gpioint.c                |   22 ++++++------
 arch/arm/plat-samsung/irq-uart.c               |    6 +--
 arch/arm/plat-spear/shirq.c                    |   12 +++---
 arch/arm/plat-stmp3xxx/irq.c                   |    4 +-
 arch/arm/plat-stmp3xxx/pinmux.c                |   10 ++---
 141 files changed, 631 insertions(+), 615 deletions(-)

Index: linux-2.6-tip/arch/arm/common/gic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/gic.c
+++ linux-2.6-tip/arch/arm/common/gic.c
@@ -213,8 +213,8 @@ static int gic_set_wake(struct irq_data 
 
 static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
 {
-	struct gic_chip_data *chip_data = get_irq_data(irq);
-	struct irq_chip *chip = get_irq_chip(irq);
+	struct gic_chip_data *chip_data = irq_get_handler_data(irq);
+	struct irq_chip *chip = irq_get_chip(irq);
 	unsigned int cascade_irq, gic_irq;
 	unsigned long status;
 
@@ -257,9 +257,9 @@ void __init gic_cascade_irq(unsigned int
 {
 	if (gic_nr >= MAX_GIC_NR)
 		BUG();
-	if (set_irq_data(irq, &gic_data[gic_nr]) != 0)
+	if (irq_set_handler_data(irq, &gic_data[gic_nr]) != 0)
 		BUG();
-	set_irq_chained_handler(irq, gic_handle_cascade_irq);
+	irq_set_chained_handler(irq, gic_handle_cascade_irq);
 }
 
 static void __init gic_dist_init(struct gic_chip_data *gic,
@@ -319,9 +319,9 @@ static void __init gic_dist_init(struct 
 	 * Setup the Linux IRQ subsystem.
 	 */
 	for (i = irq_start; i < irq_limit; i++) {
-		set_irq_chip(i, &gic_chip);
-		set_irq_chip_data(i, gic);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &gic_chip);
+		irq_set_chip_data(i, gic);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/common/it8152.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/it8152.c
+++ linux-2.6-tip/arch/arm/common/it8152.c
@@ -88,8 +88,8 @@ void it8152_init_irq(void)
 	__raw_writel((0), IT8152_INTC_LDCNIRR);
 
 	for (irq = IT8152_IRQ(0); irq <= IT8152_LAST_IRQ; irq++) {
-		set_irq_chip(irq, &it8152_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &it8152_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/common/locomo.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/locomo.c
+++ linux-2.6-tip/arch/arm/common/locomo.c
@@ -140,7 +140,7 @@ static struct locomo_dev_info locomo_dev
 
 static void locomo_handler(unsigned int irq, struct irq_desc *desc)
 {
-	struct locomo *lchip = get_irq_chip_data(irq);
+	struct locomo *lchip = irq_get_chip_data(irq);
 	int req, i;
 
 	/* Acknowledge the parent IRQ */
@@ -197,15 +197,15 @@ static void locomo_setup_irq(struct loco
 	/*
 	 * Install handler for IRQ_LOCOMO_HW.
 	 */
-	set_irq_type(lchip->irq, IRQ_TYPE_EDGE_FALLING);
-	set_irq_chip_data(lchip->irq, lchip);
-	set_irq_chained_handler(lchip->irq, locomo_handler);
+	irq_set_irq_type(lchip->irq, IRQ_TYPE_EDGE_FALLING);
+	irq_set_chip_data(lchip->irq, lchip);
+	irq_set_chained_handler(lchip->irq, locomo_handler);
 
 	/* Install handlers for IRQ_LOCOMO_* */
 	for ( ; irq <= lchip->irq_base + 3; irq++) {
-		set_irq_chip(irq, &locomo_chip);
-		set_irq_chip_data(irq, lchip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &locomo_chip);
+		irq_set_chip_data(irq, lchip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
@@ -476,8 +476,8 @@ static void __locomo_remove(struct locom
 	device_for_each_child(lchip->dev, NULL, locomo_remove_child);
 
 	if (lchip->irq != NO_IRQ) {
-		set_irq_chained_handler(lchip->irq, NULL);
-		set_irq_data(lchip->irq, NULL);
+		irq_set_chained_handler(lchip->irq, NULL);
+		irq_set_handler_data(lchip->irq, NULL);
 	}
 
 	iounmap(lchip->base);
Index: linux-2.6-tip/arch/arm/common/sa1111.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/sa1111.c
+++ linux-2.6-tip/arch/arm/common/sa1111.c
@@ -202,7 +202,7 @@ static void
 sa1111_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
 	unsigned int stat0, stat1, i;
-	struct sa1111 *sachip = get_irq_data(irq);
+	struct sa1111 *sachip = irq_get_handler_data(irq);
 	void __iomem *mapbase = sachip->base + SA1111_INTC;
 
 	stat0 = sa1111_readl(mapbase + SA1111_INTSTATCLR0);
@@ -472,25 +472,25 @@ static void sa1111_setup_irq(struct sa11
 	sa1111_writel(~0, irqbase + SA1111_INTSTATCLR1);
 
 	for (irq = IRQ_GPAIN0; irq <= SSPROR; irq++) {
-		set_irq_chip(irq, &sa1111_low_chip);
-		set_irq_chip_data(irq, sachip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &sa1111_low_chip);
+		irq_set_chip_data(irq, sachip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	for (irq = AUDXMTDMADONEA; irq <= IRQ_S1_BVD1_STSCHG; irq++) {
-		set_irq_chip(irq, &sa1111_high_chip);
-		set_irq_chip_data(irq, sachip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &sa1111_high_chip);
+		irq_set_chip_data(irq, sachip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	/*
 	 * Register SA1111 interrupt
 	 */
-	set_irq_type(sachip->irq, IRQ_TYPE_EDGE_RISING);
-	set_irq_data(sachip->irq, sachip);
-	set_irq_chained_handler(sachip->irq, sa1111_irq_handler);
+	irq_set_irq_type(sachip->irq, IRQ_TYPE_EDGE_RISING);
+	irq_set_handler_data(sachip->irq, sachip);
+	irq_set_chained_handler(sachip->irq, sa1111_irq_handler);
 }
 
 /*
@@ -815,8 +815,8 @@ static void __sa1111_remove(struct sa111
 	clk_disable(sachip->clk);
 
 	if (sachip->irq != NO_IRQ) {
-		set_irq_chained_handler(sachip->irq, NULL);
-		set_irq_data(sachip->irq, NULL);
+		irq_set_chained_handler(sachip->irq, NULL);
+		irq_set_handler_data(sachip->irq, NULL);
 
 		release_mem_region(sachip->phys + SA1111_INTC, 512);
 	}
Index: linux-2.6-tip/arch/arm/common/vic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/vic.c
+++ linux-2.6-tip/arch/arm/common/vic.c
@@ -305,9 +305,9 @@ static void __init vic_set_irq_sources(v
 		if (vic_sources & (1 << i)) {
 			unsigned int irq = irq_start + i;
 
-			set_irq_chip(irq, &vic_chip);
-			set_irq_chip_data(irq, base);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &vic_chip);
+			irq_set_chip_data(irq, base);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 	}
Index: linux-2.6-tip/arch/arm/kernel/ecard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/kernel/ecard.c
+++ linux-2.6-tip/arch/arm/kernel/ecard.c
@@ -1043,8 +1043,8 @@ ecard_probe(int slot, card_type_t type)
 	 */
 	if (slot < 8) {
 		ec->irq = 32 + slot;
-		set_irq_chip(ec->irq, &ecard_chip);
-		set_irq_handler(ec->irq, handle_level_irq);
+		irq_set_chip(ec->irq, &ecard_chip);
+		irq_set_handler(ec->irq, handle_level_irq);
 		set_irq_flags(ec->irq, IRQF_VALID);
 	}
 
@@ -1103,7 +1103,7 @@ static int __init ecard_init(void)
 
 	irqhw = ecard_probeirqhw();
 
-	set_irq_chained_handler(IRQ_EXPANSIONCARD,
+	irq_set_chained_handler(IRQ_EXPANSIONCARD,
 				irqhw ? ecard_irqexp_handler : ecard_irq_handler);
 
 	ecard_proc_init();
Index: linux-2.6-tip/arch/arm/mach-at91/at91cap9_devices.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-at91/at91cap9_devices.c
+++ linux-2.6-tip/arch/arm/mach-at91/at91cap9_devices.c
@@ -72,7 +72,7 @@ void __init at91_add_device_usbh(struct 
 		return;
 
 	if (cpu_is_at91cap9_revB())
-		set_irq_type(AT91CAP9_ID_UHP, IRQ_TYPE_LEVEL_HIGH);
+		irq_set_irq_type(AT91CAP9_ID_UHP, IRQ_TYPE_LEVEL_HIGH);
 
 	/* Enable VBus control for UHP ports */
 	for (i = 0; i < data->ports; i++) {
@@ -157,7 +157,7 @@ static struct platform_device at91_usba_
 void __init at91_add_device_usba(struct usba_platform_data *data)
 {
 	if (cpu_is_at91cap9_revB()) {
-		set_irq_type(AT91CAP9_ID_UDPHS, IRQ_TYPE_LEVEL_HIGH);
+		irq_set_irq_type(AT91CAP9_ID_UDPHS, IRQ_TYPE_LEVEL_HIGH);
 		at91_sys_write(AT91_MATRIX_UDPHS, AT91_MATRIX_SELECT_UDPHS |
 						  AT91_MATRIX_UDPHS_BYPASS_LOCK);
 	}
@@ -861,7 +861,7 @@ void __init at91_add_device_lcdc(struct 
 		return;
 
 	if (cpu_is_at91cap9_revB())
-		set_irq_type(AT91CAP9_ID_LCDC, IRQ_TYPE_LEVEL_HIGH);
+		irq_set_irq_type(AT91CAP9_ID_LCDC, IRQ_TYPE_LEVEL_HIGH);
 
 	at91_set_A_periph(AT91_PIN_PC1, 0);	/* LCDHSYNC */
 	at91_set_A_periph(AT91_PIN_PC2, 0);	/* LCDDOTCK */
Index: linux-2.6-tip/arch/arm/mach-at91/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-at91/gpio.c
+++ linux-2.6-tip/arch/arm/mach-at91/gpio.c
@@ -287,7 +287,7 @@ static int gpio_irq_set_wake(struct irq_
 	else
 		wakeups[bank] &= ~mask;
 
-	set_irq_wake(gpio_chip[bank].bank->id, state);
+	irq_set_irq_wake(gpio_chip[bank].bank->id, state);
 
 	return 0;
 }
@@ -511,8 +511,8 @@ void __init at91_gpio_irq_setup(void)
 			 * Can use the "simple" and not "edge" handler since it's
 			 * shorter, and the AIC handles interrupts sanely.
 			 */
-			set_irq_chip(pin, &gpio_irqchip);
-			set_irq_handler(pin, handle_simple_irq);
+			irq_set_chip(pin, &gpio_irqchip);
+			irq_set_handler(pin, handle_simple_irq);
 			set_irq_flags(pin, IRQF_VALID);
 		}
 
@@ -523,8 +523,8 @@ void __init at91_gpio_irq_setup(void)
 		if (prev && prev->next == this)
 			continue;
 
-		set_irq_chip_data(id, this);
-		set_irq_chained_handler(id, gpio_irq_handler);
+		irq_set_chip_data(id, this);
+		irq_set_chained_handler(id, gpio_irq_handler);
 	}
 	pr_info("AT91: %d gpio irqs in %d banks\n", pin - PIN_BASE, gpio_banks);
 }
Index: linux-2.6-tip/arch/arm/mach-at91/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-at91/irq.c
+++ linux-2.6-tip/arch/arm/mach-at91/irq.c
@@ -143,8 +143,8 @@ void __init at91_aic_init(unsigned int p
 		/* Active Low interrupt, with the specified priority */
 		at91_sys_write(AT91_AIC_SMR(i), AT91_AIC_SRCTYPE_LOW | priority[i]);
 
-		set_irq_chip(i, &at91_aic_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &at91_aic_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 
 		/* Perform 8 End Of Interrupt Command to make sure AIC will not Lock out nIRQ */
Index: linux-2.6-tip/arch/arm/mach-bcmring/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-bcmring/irq.c
+++ linux-2.6-tip/arch/arm/mach-bcmring/irq.c
@@ -93,11 +93,11 @@ static void vic_init(void __iomem *base,
 	unsigned int i;
 	for (i = 0; i < 32; i++) {
 		unsigned int irq = irq_start + i;
-		set_irq_chip(irq, chip);
-		set_irq_chip_data(irq, base);
+		irq_set_chip(irq, chip);
+		irq_set_chip_data(irq, base);
 
 		if (vic_sources & (1 << i)) {
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 	}
@@ -119,9 +119,9 @@ void __init bcmring_init_irq(void)
 
 	/* special cases */
 	if (INTCHW_INTC1_GPIO0 & IRQ_INTC1_VALID_MASK) {
-		set_irq_handler(IRQ_GPIO0, handle_simple_irq);
+		irq_set_handler(IRQ_GPIO0, handle_simple_irq);
 	}
 	if (INTCHW_INTC1_GPIO1 & IRQ_INTC1_VALID_MASK) {
-		set_irq_handler(IRQ_GPIO1, handle_simple_irq);
+		irq_set_handler(IRQ_GPIO1, handle_simple_irq);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-clps711x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-clps711x/irq.c
+++ linux-2.6-tip/arch/arm/mach-clps711x/irq.c
@@ -112,13 +112,13 @@ void __init clps711x_init_irq(void)
 
 	for (i = 0; i < NR_IRQS; i++) {
 	        if (INT1_IRQS & (1 << i)) {
-	        	set_irq_handler(i, handle_level_irq);
-	        	set_irq_chip(i, &int1_chip);
+	        	irq_set_handler(i, handle_level_irq);
+	        	irq_set_chip(i, &int1_chip);
 	        	set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}
 		if (INT2_IRQS & (1 << i)) {
-			set_irq_handler(i, handle_level_irq);
-			set_irq_chip(i, &int2_chip);
+			irq_set_handler(i, handle_level_irq);
+			irq_set_chip(i, &int2_chip);
 			set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}			
 	}
Index: linux-2.6-tip/arch/arm/mach-davinci/cp_intc.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-davinci/cp_intc.c
+++ linux-2.6-tip/arch/arm/mach-davinci/cp_intc.c
@@ -167,9 +167,9 @@ void __init cp_intc_init(void)
 
 	/* Set up genirq dispatching for cp_intc */
 	for (i = 0; i < num_irq; i++) {
-		set_irq_chip(i, &cp_intc_irq_chip);
+		irq_set_chip(i, &cp_intc_irq_chip);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
-		set_irq_handler(i, handle_edge_irq);
+		irq_set_handler(i, handle_edge_irq);
 	}
 
 	/* Enable global interrupt */
Index: linux-2.6-tip/arch/arm/mach-davinci/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-davinci/gpio.c
+++ linux-2.6-tip/arch/arm/mach-davinci/gpio.c
@@ -62,7 +62,7 @@ static inline struct davinci_gpio_regs _
 {
 	struct davinci_gpio_regs __iomem *g;
 
-	g = (__force struct davinci_gpio_regs __iomem *)get_irq_chip_data(irq);
+	g = (__force struct davinci_gpio_regs __iomem *)irq_get_chip_data(irq);
 
 	return g;
 }
@@ -208,7 +208,7 @@ pure_initcall(davinci_gpio_setup);
 static void gpio_irq_disable(struct irq_data *d)
 {
 	struct davinci_gpio_regs __iomem *g = irq2regs(d->irq);
-	u32 mask = (u32) irq_data_get_irq_data(d);
+	u32 mask = (u32) irq_data_get_irq_handler_data(d);
 
 	__raw_writel(mask, &g->clr_falling);
 	__raw_writel(mask, &g->clr_rising);
@@ -217,7 +217,7 @@ static void gpio_irq_disable(struct irq_
 static void gpio_irq_enable(struct irq_data *d)
 {
 	struct davinci_gpio_regs __iomem *g = irq2regs(d->irq);
-	u32 mask = (u32) irq_data_get_irq_data(d);
+	u32 mask = (u32) irq_data_get_irq_handler_data(d);
 	unsigned status = irqd_get_trigger_type(d);
 
 	status &= IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING;
@@ -233,7 +233,7 @@ static void gpio_irq_enable(struct irq_d
 static int gpio_irq_type(struct irq_data *d, unsigned trigger)
 {
 	struct davinci_gpio_regs __iomem *g = irq2regs(d->irq);
-	u32 mask = (u32) irq_data_get_irq_data(d);
+	u32 mask = (u32) irq_data_get_irq_handler_data(d);
 
 	if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
 		return -EINVAL;
@@ -276,7 +276,7 @@ gpio_irq_handler(unsigned irq, struct ir
 			status >>= 16;
 
 		/* now demux them to the right lowlevel handler */
-		n = (int)get_irq_data(irq);
+		n = (int)irq_get_handler_data(irq);
 		while (status) {
 			res = ffs(status);
 			n += res;
@@ -314,7 +314,7 @@ static int gpio_to_irq_unbanked(struct g
 static int gpio_irq_type_unbanked(struct irq_data *d, unsigned trigger)
 {
 	struct davinci_gpio_regs __iomem *g = irq2regs(d->irq);
-	u32 mask = (u32) irq_data_get_irq_data(d);
+	u32 mask = (u32) irq_data_get_irq_handler_data(d);
 
 	if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
 		return -EINVAL;
@@ -397,9 +397,9 @@ static int __init davinci_gpio_irq_setup
 
 		/* set the direct IRQs up to use that irqchip */
 		for (gpio = 0; gpio < soc_info->gpio_unbanked; gpio++, irq++) {
-			set_irq_chip(irq, &gpio_irqchip_unbanked);
-			set_irq_data(irq, (void *) __gpio_mask(gpio));
-			set_irq_chip_data(irq, (__force void *) g);
+			irq_set_chip(irq, &gpio_irqchip_unbanked);
+			irq_set_handler_data(irq, (void *)__gpio_mask(gpio));
+			irq_set_chip_data(irq, (__force void *)g);
 			irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH);
 		}
 
@@ -421,15 +421,15 @@ static int __init davinci_gpio_irq_setup
 		__raw_writel(~0, &g->clr_rising);
 
 		/* set up all irqs in this bank */
-		set_irq_chained_handler(bank_irq, gpio_irq_handler);
-		set_irq_chip_data(bank_irq, (__force void *) g);
-		set_irq_data(bank_irq, (void *) irq);
+		irq_set_chained_handler(bank_irq, gpio_irq_handler);
+		irq_set_chip_data(bank_irq, (__force void *)g);
+		irq_set_handler_data(bank_irq, (void *)irq);
 
 		for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) {
-			set_irq_chip(irq, &gpio_irqchip);
-			set_irq_chip_data(irq, (__force void *) g);
-			set_irq_data(irq, (void *) __gpio_mask(gpio));
-			set_irq_handler(irq, handle_simple_irq);
+			irq_set_chip(irq, &gpio_irqchip);
+			irq_set_chip_data(irq, (__force void *)g);
+			irq_set_handler_data(irq, (void *)__gpio_mask(gpio));
+			irq_set_handler(irq, handle_simple_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		}
 
Index: linux-2.6-tip/arch/arm/mach-davinci/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-davinci/irq.c
+++ linux-2.6-tip/arch/arm/mach-davinci/irq.c
@@ -154,11 +154,11 @@ void __init davinci_irq_init(void)
 
 	/* set up genirq dispatch for ARM INTC */
 	for (i = 0; i < davinci_soc_info.intc_irq_num; i++) {
-		set_irq_chip(i, &davinci_irq_chip_0);
+		irq_set_chip(i, &davinci_irq_chip_0);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		if (i != IRQ_TINT1_TINT34)
-			set_irq_handler(i, handle_edge_irq);
+			irq_set_handler(i, handle_edge_irq);
 		else
-			set_irq_handler(i, handle_level_irq);
+			irq_set_handler(i, handle_level_irq);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-dove/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-dove/irq.c
+++ linux-2.6-tip/arch/arm/mach-dove/irq.c
@@ -102,14 +102,14 @@ void __init dove_init_irq(void)
 	 */
 	orion_gpio_init(0, 32, DOVE_GPIO_LO_VIRT_BASE, 0,
 			IRQ_DOVE_GPIO_START);
-	set_irq_chained_handler(IRQ_DOVE_GPIO_0_7, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_DOVE_GPIO_8_15, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_DOVE_GPIO_16_23, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_DOVE_GPIO_24_31, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_DOVE_GPIO_0_7, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_DOVE_GPIO_8_15, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_DOVE_GPIO_16_23, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_DOVE_GPIO_24_31, gpio_irq_handler);
 
 	orion_gpio_init(32, 32, DOVE_GPIO_HI_VIRT_BASE, 0,
 			IRQ_DOVE_GPIO_START + 32);
-	set_irq_chained_handler(IRQ_DOVE_HIGH_GPIO, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_DOVE_HIGH_GPIO, gpio_irq_handler);
 
 	orion_gpio_init(64, 8, DOVE_GPIO2_VIRT_BASE, 0,
 			IRQ_DOVE_GPIO_START + 64);
@@ -121,10 +121,10 @@ void __init dove_init_irq(void)
 	writel(0, PMU_INTERRUPT_CAUSE);
 
 	for (i = IRQ_DOVE_PMU_START; i < NR_IRQS; i++) {
-		set_irq_chip(i, &pmu_irq_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &pmu_irq_chip);
+		irq_set_handler(i, handle_level_irq);
 		irq_set_status_flags(i, IRQ_LEVEL);
 		set_irq_flags(i, IRQF_VALID);
 	}
-	set_irq_chained_handler(IRQ_DOVE_PMU, pmu_irq_handler);
+	irq_set_chained_handler(IRQ_DOVE_PMU, pmu_irq_handler);
 }
Index: linux-2.6-tip/arch/arm/mach-ebsa110/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ebsa110/core.c
+++ linux-2.6-tip/arch/arm/mach-ebsa110/core.c
@@ -66,8 +66,8 @@ static void __init ebsa110_init_irq(void
 	local_irq_restore(flags);
 
 	for (irq = 0; irq < NR_IRQS; irq++) {
-		set_irq_chip(irq, &ebsa110_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &ebsa110_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ep93xx/gpio.c
+++ linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
@@ -231,20 +231,29 @@ void __init ep93xx_gpio_init_irq(void)
 
 	for (gpio_irq = gpio_to_irq(0);
 	     gpio_irq <= gpio_to_irq(EP93XX_GPIO_LINE_MAX_IRQ); ++gpio_irq) {
-		set_irq_chip(gpio_irq, &ep93xx_gpio_irq_chip);
-		set_irq_handler(gpio_irq, handle_level_irq);
+		irq_set_chip(gpio_irq, &ep93xx_gpio_irq_chip);
+		irq_set_handler(gpio_irq, handle_level_irq);
 		set_irq_flags(gpio_irq, IRQF_VALID);
 	}
 
-	set_irq_chained_handler(IRQ_EP93XX_GPIO_AB, ep93xx_gpio_ab_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO0MUX, ep93xx_gpio_f_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO1MUX, ep93xx_gpio_f_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO2MUX, ep93xx_gpio_f_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO3MUX, ep93xx_gpio_f_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO4MUX, ep93xx_gpio_f_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO5MUX, ep93xx_gpio_f_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO6MUX, ep93xx_gpio_f_irq_handler);
-	set_irq_chained_handler(IRQ_EP93XX_GPIO7MUX, ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO_AB,
+				ep93xx_gpio_ab_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO0MUX,
+				ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO1MUX,
+				ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO2MUX,
+				ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO3MUX,
+				ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO4MUX,
+				ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO5MUX,
+				ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO6MUX,
+				ep93xx_gpio_f_irq_handler);
+	irq_set_chained_handler(IRQ_EP93XX_GPIO7MUX,
+				ep93xx_gpio_f_irq_handler);
 }
 
 
Index: linux-2.6-tip/arch/arm/mach-exynos4/irq-combiner.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-exynos4/irq-combiner.c
+++ linux-2.6-tip/arch/arm/mach-exynos4/irq-combiner.c
@@ -54,8 +54,8 @@ static void combiner_unmask_irq(struct i
 
 static void combiner_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
 {
-	struct combiner_chip_data *chip_data = get_irq_data(irq);
-	struct irq_chip *chip = get_irq_chip(irq);
+	struct combiner_chip_data *chip_data = irq_get_handler_data(irq);
+	struct irq_chip *chip = irq_get_chip(irq);
 	unsigned int cascade_irq, combiner_irq;
 	unsigned long status;
 
@@ -93,9 +93,9 @@ void __init combiner_cascade_irq(unsigne
 {
 	if (combiner_nr >= MAX_COMBINER_NR)
 		BUG();
-	if (set_irq_data(irq, &combiner_data[combiner_nr]) != 0)
+	if (irq_set_handler_data(irq, &combiner_data[combiner_nr]) != 0)
 		BUG();
-	set_irq_chained_handler(irq, combiner_handle_cascade_irq);
+	irq_set_chained_handler(irq, combiner_handle_cascade_irq);
 }
 
 void __init combiner_init(unsigned int combiner_nr, void __iomem *base,
@@ -119,9 +119,9 @@ void __init combiner_init(unsigned int c
 
 	for (i = irq_start; i < combiner_data[combiner_nr].irq_offset
 				+ MAX_IRQ_IN_COMBINER; i++) {
-		set_irq_chip(i, &combiner_chip);
-		set_irq_chip_data(i, &combiner_data[combiner_nr]);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &combiner_chip);
+		irq_set_chip_data(i, &combiner_data[combiner_nr]);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-exynos4/irq-eint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-exynos4/irq-eint.c
+++ linux-2.6-tip/arch/arm/mach-exynos4/irq-eint.c
@@ -190,8 +190,8 @@ static void exynos4_irq_demux_eint16_31(
 
 static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc)
 {
-	u32 *irq_data = get_irq_data(irq);
-	struct irq_chip *chip = get_irq_chip(irq);
+	u32 *irq_data = irq_get_handler_data(irq);
+	struct irq_chip *chip = irq_get_chip(irq);
 
 	chip->irq_mask(&desc->irq_data);
 
@@ -208,18 +208,19 @@ int __init exynos4_init_irq_eint(void)
 	int irq;
 
 	for (irq = 0 ; irq <= 31 ; irq++) {
-		set_irq_chip(IRQ_EINT(irq), &exynos4_irq_eint);
-		set_irq_handler(IRQ_EINT(irq), handle_level_irq);
+		irq_set_chip(IRQ_EINT(irq), &exynos4_irq_eint);
+		irq_set_handler(IRQ_EINT(irq), handle_level_irq);
 		set_irq_flags(IRQ_EINT(irq), IRQF_VALID);
 	}
 
-	set_irq_chained_handler(IRQ_EINT16_31, exynos4_irq_demux_eint16_31);
+	irq_set_chained_handler(IRQ_EINT16_31, exynos4_irq_demux_eint16_31);
 
 	for (irq = 0 ; irq <= 15 ; irq++) {
 		eint0_15_data[irq] = IRQ_EINT(irq);
 
-		set_irq_data(exynos4_get_irq_nr(irq), &eint0_15_data[irq]);
-		set_irq_chained_handler(exynos4_get_irq_nr(irq),
+		irq_set_handler_data(exynos4_get_irq_nr(irq),
+				     &eint0_15_data[irq]);
+		irq_set_chained_handler(exynos4_get_irq_nr(irq),
 					exynos4_irq_eint0_15);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-footbridge/common.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-footbridge/common.c
+++ linux-2.6-tip/arch/arm/mach-footbridge/common.c
@@ -102,8 +102,8 @@ static void __init __fb_init_irq(void)
 	*CSR_FIQ_DISABLE = -1;
 
 	for (irq = _DC21285_IRQ(0); irq < _DC21285_IRQ(20); irq++) {
-		set_irq_chip(irq, &fb_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &fb_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-footbridge/isa-irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-footbridge/isa-irq.c
+++ linux-2.6-tip/arch/arm/mach-footbridge/isa-irq.c
@@ -151,14 +151,14 @@ void __init isa_init_irq(unsigned int ho
 
 	if (host_irq != (unsigned int)-1) {
 		for (irq = _ISA_IRQ(0); irq < _ISA_IRQ(8); irq++) {
-			set_irq_chip(irq, &isa_lo_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &isa_lo_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 
 		for (irq = _ISA_IRQ(8); irq < _ISA_IRQ(16); irq++) {
-			set_irq_chip(irq, &isa_hi_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &isa_hi_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 
@@ -166,7 +166,7 @@ void __init isa_init_irq(unsigned int ho
 		request_resource(&ioport_resource, &pic2_resource);
 		setup_irq(IRQ_ISA_CASCADE, &irq_cascade);
 
-		set_irq_chained_handler(host_irq, isa_irq_handler);
+		irq_set_chained_handler(host_irq, isa_irq_handler);
 
 		/*
 		 * On the NetWinder, don't automatically
Index: linux-2.6-tip/arch/arm/mach-gemini/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-gemini/gpio.c
+++ linux-2.6-tip/arch/arm/mach-gemini/gpio.c
@@ -217,13 +217,13 @@ void __init gemini_gpio_init(void)
 
 		for (j = GPIO_IRQ_BASE + i * 32;
 		     j < GPIO_IRQ_BASE + (i + 1) * 32; j++) {
-			set_irq_chip(j, &gpio_irq_chip);
-			set_irq_handler(j, handle_edge_irq);
+			irq_set_chip(j, &gpio_irq_chip);
+			irq_set_handler(j, handle_edge_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 
-		set_irq_chained_handler(IRQ_GPIO(i), gpio_irq_handler);
-		set_irq_data(IRQ_GPIO(i), (void *)i);
+		irq_set_chained_handler(IRQ_GPIO(i), gpio_irq_handler);
+		irq_set_handler_data(IRQ_GPIO(i), (void *)i);
 	}
 
 	BUG_ON(gpiochip_add(&gemini_gpio_chip));
Index: linux-2.6-tip/arch/arm/mach-gemini/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-gemini/irq.c
+++ linux-2.6-tip/arch/arm/mach-gemini/irq.c
@@ -81,13 +81,13 @@ void __init gemini_init_irq(void)
 	request_resource(&iomem_resource, &irq_resource);
 
 	for (i = 0; i < NR_IRQS; i++) {
-		set_irq_chip(i, &gemini_irq_chip);
+		irq_set_chip(i, &gemini_irq_chip);
 		if((i >= IRQ_TIMER1 && i <= IRQ_TIMER3) || (i >= IRQ_SERIRQ0 && i <= IRQ_SERIRQ1)) {
-			set_irq_handler(i, handle_edge_irq);
+			irq_set_handler(i, handle_edge_irq);
 			mode |= 1 << i;
 			level |= 1 << i;
 		} else {			
-			set_irq_handler(i, handle_level_irq);
+			irq_set_handler(i, handle_level_irq);
 		}
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
Index: linux-2.6-tip/arch/arm/mach-h720x/common.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-h720x/common.c
+++ linux-2.6-tip/arch/arm/mach-h720x/common.c
@@ -199,29 +199,29 @@ void __init h720x_init_irq (void)
 
 	/* Initialize global IRQ's, fast path */
 	for (irq = 0; irq < NR_GLBL_IRQS; irq++) {
-		set_irq_chip(irq, &h720x_global_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &h720x_global_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	/* Initialize multiplexed IRQ's, slow path */
 	for (irq = IRQ_CHAINED_GPIOA(0) ; irq <= IRQ_CHAINED_GPIOD(31); irq++) {
-		set_irq_chip(irq, &h720x_gpio_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &h720x_gpio_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID );
 	}
-	set_irq_chained_handler(IRQ_GPIOA, h720x_gpioa_demux_handler);
-	set_irq_chained_handler(IRQ_GPIOB, h720x_gpiob_demux_handler);
-	set_irq_chained_handler(IRQ_GPIOC, h720x_gpioc_demux_handler);
-	set_irq_chained_handler(IRQ_GPIOD, h720x_gpiod_demux_handler);
+	irq_set_chained_handler(IRQ_GPIOA, h720x_gpioa_demux_handler);
+	irq_set_chained_handler(IRQ_GPIOB, h720x_gpiob_demux_handler);
+	irq_set_chained_handler(IRQ_GPIOC, h720x_gpioc_demux_handler);
+	irq_set_chained_handler(IRQ_GPIOD, h720x_gpiod_demux_handler);
 
 #ifdef CONFIG_CPU_H7202
 	for (irq = IRQ_CHAINED_GPIOE(0) ; irq <= IRQ_CHAINED_GPIOE(31); irq++) {
-		set_irq_chip(irq, &h720x_gpio_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &h720x_gpio_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID );
 	}
-	set_irq_chained_handler(IRQ_GPIOE, h720x_gpioe_demux_handler);
+	irq_set_chained_handler(IRQ_GPIOE, h720x_gpioe_demux_handler);
 #endif
 
 	/* Enable multiplexed irq's */
Index: linux-2.6-tip/arch/arm/mach-h720x/cpu-h7202.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-h720x/cpu-h7202.c
+++ linux-2.6-tip/arch/arm/mach-h720x/cpu-h7202.c
@@ -197,11 +197,11 @@ void __init h7202_init_irq (void)
 	for (irq = IRQ_TIMER1;
 	                  irq < IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS); irq++) {
 		mask_timerx_irq(irq);
-		set_irq_chip(irq, &h7202_timerx_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &h7202_timerx_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID );
 	}
-	set_irq_chained_handler(IRQ_TIMERX, h7202_timerx_demux_handler);
+	irq_set_chained_handler(IRQ_TIMERX, h7202_timerx_demux_handler);
 
 	h720x_init_irq();
 }
Index: linux-2.6-tip/arch/arm/mach-integrator/integrator_ap.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-integrator/integrator_ap.c
+++ linux-2.6-tip/arch/arm/mach-integrator/integrator_ap.c
@@ -187,8 +187,8 @@ static void __init ap_init_irq(void)
 
 	for (i = 0; i < NR_IRQS; i++) {
 		if (((1 << i) & INTEGRATOR_SC_VALID_INT) != 0) {
-			set_irq_chip(i, &sc_chip);
-			set_irq_handler(i, handle_level_irq);
+			irq_set_chip(i, &sc_chip);
+			irq_set_handler(i, handle_level_irq);
 			set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-integrator/integrator_cp.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-integrator/integrator_cp.c
+++ linux-2.6-tip/arch/arm/mach-integrator/integrator_cp.c
@@ -238,8 +238,8 @@ static void __init intcp_init_irq(void)
 			i = 22;
 		if (i == 29)
 			break;
-		set_irq_chip(i, &pic_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &pic_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
@@ -247,8 +247,8 @@ static void __init intcp_init_irq(void)
 	cic_writel(0xffffffff, INTCP_VA_CIC_BASE + FIQ_ENABLE_CLEAR);
 
 	for (i = IRQ_CIC_START; i <= IRQ_CIC_END; i++) {
-		set_irq_chip(i, &cic_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &cic_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
@@ -256,12 +256,12 @@ static void __init intcp_init_irq(void)
 	sic_writel(0x00000fff, INTCP_VA_SIC_BASE + FIQ_ENABLE_CLEAR);
 
 	for (i = IRQ_SIC_START; i <= IRQ_SIC_END; i++) {
-		set_irq_chip(i, &sic_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &sic_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
-	set_irq_chained_handler(IRQ_CP_CPPLDINT, sic_handle_irq);
+	irq_set_chained_handler(IRQ_CP_CPPLDINT, sic_handle_irq);
 }
 
 /*
Index: linux-2.6-tip/arch/arm/mach-iop13xx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-iop13xx/irq.c
+++ linux-2.6-tip/arch/arm/mach-iop13xx/irq.c
@@ -224,15 +224,15 @@ void __init iop13xx_init_irq(void)
 
 	for(i = 0; i <= IRQ_IOP13XX_HPI; i++) {
 		if (i < 32)
-			set_irq_chip(i, &iop13xx_irqchip1);
+			irq_set_chip(i, &iop13xx_irqchip1);
 		else if (i < 64)
-			set_irq_chip(i, &iop13xx_irqchip2);
+			irq_set_chip(i, &iop13xx_irqchip2);
 		else if (i < 96)
-			set_irq_chip(i, &iop13xx_irqchip3);
+			irq_set_chip(i, &iop13xx_irqchip3);
 		else
-			set_irq_chip(i, &iop13xx_irqchip4);
+			irq_set_chip(i, &iop13xx_irqchip4);
 
-		set_irq_handler(i, handle_level_irq);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-iop13xx/msi.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-iop13xx/msi.c
+++ linux-2.6-tip/arch/arm/mach-iop13xx/msi.c
@@ -118,7 +118,7 @@ static void iop13xx_msi_handler(unsigned
 
 void __init iop13xx_msi_init(void)
 {
-	set_irq_chained_handler(IRQ_IOP13XX_INBD_MSI, iop13xx_msi_handler);
+	irq_set_chained_handler(IRQ_IOP13XX_INBD_MSI, iop13xx_msi_handler);
 }
 
 /*
@@ -178,7 +178,7 @@ int arch_setup_msi_irq(struct pci_dev *p
 	if (irq < 0)
 		return irq;
 
-	set_irq_msi(irq, desc);
+	irq_set_msi_desc(irq, desc);
 
 	msg.address_hi = 0x0;
 	msg.address_lo = IOP13XX_MU_MIMR_PCI;
@@ -187,7 +187,7 @@ int arch_setup_msi_irq(struct pci_dev *p
 	msg.data = (id << IOP13XX_MU_MIMR_CORE_SELECT) | (irq & 0x7f);
 
 	write_msi_msg(irq, &msg);
-	set_irq_chip_and_handler(irq, &iop13xx_msi_chip, handle_simple_irq);
+	irq_set_chip_and_handler(irq, &iop13xx_msi_chip, handle_simple_irq);
 
 	return 0;
 }
Index: linux-2.6-tip/arch/arm/mach-iop32x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-iop32x/irq.c
+++ linux-2.6-tip/arch/arm/mach-iop32x/irq.c
@@ -68,8 +68,8 @@ void __init iop32x_init_irq(void)
 		*IOP3XX_PCIIRSR = 0x0f;
 
 	for (i = 0; i < NR_IRQS; i++) {
-		set_irq_chip(i, &ext_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &ext_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-iop33x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-iop33x/irq.c
+++ linux-2.6-tip/arch/arm/mach-iop33x/irq.c
@@ -110,8 +110,9 @@ void __init iop33x_init_irq(void)
 		*IOP3XX_PCIIRSR = 0x0f;
 
 	for (i = 0; i < NR_IRQS; i++) {
-		set_irq_chip(i, (i < 32) ? &iop33x_irqchip1 : &iop33x_irqchip2);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i,
+			     (i < 32) ? &iop33x_irqchip1 : &iop33x_irqchip2);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ixp2000/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp2000/core.c
+++ linux-2.6-tip/arch/arm/mach-ixp2000/core.c
@@ -476,8 +476,8 @@ void __init ixp2000_init_irq(void)
 	 */
 	for (irq = IRQ_IXP2000_SOFT_INT; irq <= IRQ_IXP2000_THDB3; irq++) {
 		if ((1 << irq) & IXP2000_VALID_IRQ_MASK) {
-			set_irq_chip(irq, &ixp2000_irq_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &ixp2000_irq_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		} else set_irq_flags(irq, 0);
 	}
@@ -485,21 +485,21 @@ void __init ixp2000_init_irq(void)
 	for (irq = IRQ_IXP2000_DRAM0_MIN_ERR; irq <= IRQ_IXP2000_SP_INT; irq++) {
 		if((1 << (irq - IRQ_IXP2000_DRAM0_MIN_ERR)) &
 				IXP2000_VALID_ERR_IRQ_MASK) {
-			set_irq_chip(irq, &ixp2000_err_irq_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &ixp2000_err_irq_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		}
 		else
 			set_irq_flags(irq, 0);
 	}
-	set_irq_chained_handler(IRQ_IXP2000_ERRSUM, ixp2000_err_irq_handler);
+	irq_set_chained_handler(IRQ_IXP2000_ERRSUM, ixp2000_err_irq_handler);
 
 	for (irq = IRQ_IXP2000_GPIO0; irq <= IRQ_IXP2000_GPIO7; irq++) {
-		set_irq_chip(irq, &ixp2000_GPIO_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &ixp2000_GPIO_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
-	set_irq_chained_handler(IRQ_IXP2000_GPIO, ixp2000_GPIO_irq_handler);
+	irq_set_chained_handler(IRQ_IXP2000_GPIO, ixp2000_GPIO_irq_handler);
 
 	/*
 	 * Enable PCI irqs.  The actual PCI[AB] decoding is done in
@@ -508,8 +508,8 @@ void __init ixp2000_init_irq(void)
 	 */
 	ixp2000_reg_write(IXP2000_IRQ_ENABLE_SET, (1 << IRQ_IXP2000_PCI));
 	for (irq = IRQ_IXP2000_PCIA; irq <= IRQ_IXP2000_PCIB; irq++) {
-		set_irq_chip(irq, &ixp2000_pci_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &ixp2000_pci_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x00.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp2000/ixdp2x00.c
+++ linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x00.c
@@ -158,13 +158,13 @@ void __init ixdp2x00_init_irq(volatile u
 	*board_irq_mask = 0xffffffff;
 
 	for(irq = IXP2000_BOARD_IRQ(0); irq < IXP2000_BOARD_IRQ(board_irq_count); irq++) {
-		set_irq_chip(irq, &ixdp2x00_cpld_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &ixdp2x00_cpld_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
 	/* Hook into PCI interrupt */
-	set_irq_chained_handler(IRQ_IXP2000_PCIB, ixdp2x00_irq_handler);
+	irq_set_chained_handler(IRQ_IXP2000_PCIB, ixdp2x00_irq_handler);
 }
 
 /*************************************************************************
Index: linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x01.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp2000/ixdp2x01.c
+++ linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x01.c
@@ -115,8 +115,8 @@ void __init ixdp2x01_init_irq(void)
 
 	for (irq = NR_IXP2000_IRQS; irq < NR_IXDP2X01_IRQS; irq++) {
 		if (irq & valid_irq_mask) {
-			set_irq_chip(irq, &ixdp2x01_irq_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &ixdp2x01_irq_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		} else {
 			set_irq_flags(irq, 0);
@@ -124,7 +124,7 @@ void __init ixdp2x01_init_irq(void)
 	}
 
 	/* Hook into PCI interrupts */
-	set_irq_chained_handler(IRQ_IXP2000_PCIB, ixdp2x01_irq_handler);
+	irq_set_chained_handler(IRQ_IXP2000_PCIB, ixdp2x01_irq_handler);
 }
 
 
Index: linux-2.6-tip/arch/arm/mach-ixp23xx/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp23xx/core.c
+++ linux-2.6-tip/arch/arm/mach-ixp23xx/core.c
@@ -289,12 +289,12 @@ static void ixp23xx_config_irq(unsigned 
 {
 	switch (type) {
 	case IXP23XX_IRQ_LEVEL:
-		set_irq_chip(irq, &ixp23xx_irq_level_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &ixp23xx_irq_level_chip);
+		irq_set_handler(irq, handle_level_irq);
 		break;
 	case IXP23XX_IRQ_EDGE:
-		set_irq_chip(irq, &ixp23xx_irq_edge_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &ixp23xx_irq_edge_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		break;
 	}
 	set_irq_flags(irq, IRQF_VALID);
@@ -324,12 +324,12 @@ void __init ixp23xx_init_irq(void)
 	}
 
 	for (irq = IRQ_IXP23XX_INTA; irq <= IRQ_IXP23XX_INTB; irq++) {
-		set_irq_chip(irq, &ixp23xx_pci_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &ixp23xx_pci_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
-	set_irq_chained_handler(IRQ_IXP23XX_PCI_INT_RPH, pci_handler);
+	irq_set_chained_handler(IRQ_IXP23XX_PCI_INT_RPH, pci_handler);
 }
 
 
Index: linux-2.6-tip/arch/arm/mach-ixp23xx/ixdp2351.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp23xx/ixdp2351.c
+++ linux-2.6-tip/arch/arm/mach-ixp23xx/ixdp2351.c
@@ -136,8 +136,8 @@ void __init ixdp2351_init_irq(void)
 	     irq++) {
 		if (IXDP2351_INTA_IRQ_MASK(irq) & IXDP2351_INTA_IRQ_VALID) {
 			set_irq_flags(irq, IRQF_VALID);
-			set_irq_handler(irq, handle_level_irq);
-			set_irq_chip(irq, &ixdp2351_inta_chip);
+			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &ixdp2351_inta_chip);
 		}
 	}
 
@@ -147,13 +147,13 @@ void __init ixdp2351_init_irq(void)
 	     irq++) {
 		if (IXDP2351_INTB_IRQ_MASK(irq) & IXDP2351_INTB_IRQ_VALID) {
 			set_irq_flags(irq, IRQF_VALID);
-			set_irq_handler(irq, handle_level_irq);
-			set_irq_chip(irq, &ixdp2351_intb_chip);
+			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &ixdp2351_intb_chip);
 		}
 	}
 
-	set_irq_chained_handler(IRQ_IXP23XX_INTA, ixdp2351_inta_handler);
-	set_irq_chained_handler(IRQ_IXP23XX_INTB, ixdp2351_intb_handler);
+	irq_set_chained_handler(IRQ_IXP23XX_INTA, ixdp2351_inta_handler);
+	irq_set_chained_handler(IRQ_IXP23XX_INTB, ixdp2351_intb_handler);
 }
 
 /*
Index: linux-2.6-tip/arch/arm/mach-ixp23xx/roadrunner.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp23xx/roadrunner.c
+++ linux-2.6-tip/arch/arm/mach-ixp23xx/roadrunner.c
@@ -110,8 +110,8 @@ static int __init roadrunner_map_irq(str
 
 static void __init roadrunner_pci_preinit(void)
 {
-	set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_ROADRUNNER_PCI_INTC, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_ROADRUNNER_PCI_INTD, IRQ_TYPE_LEVEL_LOW);
 
 	ixp23xx_pci_preinit();
 }
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/avila-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/avila-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/avila-pci.c
@@ -39,10 +39,10 @@
 
 void __init avila_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/common.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/common.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/common.c
@@ -252,8 +252,8 @@ void __init ixp4xx_init_irq(void)
 
         /* Default to all level triggered */
 	for(i = 0; i < NR_IRQS; i++) {
-		set_irq_chip(i, &ixp4xx_irq_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &ixp4xx_irq_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/coyote-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/coyote-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/coyote-pci.c
@@ -32,8 +32,8 @@
 
 void __init coyote_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(SLOT0_INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(SLOT1_INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(SLOT0_INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(SLOT1_INTA), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/dsmg600-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/dsmg600-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/dsmg600-pci.c
@@ -35,12 +35,12 @@
 
 void __init dsmg600_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTE), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTF), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTE), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTF), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/fsg-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/fsg-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/fsg-pci.c
@@ -32,9 +32,9 @@
 
 void __init fsg_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/gateway7001-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/gateway7001-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/gateway7001-pci.c
@@ -29,8 +29,8 @@
 
 void __init gateway7001_pci_preinit(void)
 {
-	set_irq_type(IRQ_IXP4XX_GPIO10, IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IRQ_IXP4XX_GPIO11, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_IXP4XX_GPIO10, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_IXP4XX_GPIO11, IRQ_TYPE_LEVEL_LOW);
 
 	ixp4xx_pci_preinit();
 }
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/goramo_mlr.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/goramo_mlr.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/goramo_mlr.c
@@ -420,8 +420,8 @@ static void __init gmlr_init(void)
 	gpio_line_config(GPIO_HSS1_RTS_N, IXP4XX_GPIO_OUT);
 	gpio_line_config(GPIO_HSS0_DCD_N, IXP4XX_GPIO_IN);
 	gpio_line_config(GPIO_HSS1_DCD_N, IXP4XX_GPIO_IN);
-	set_irq_type(IXP4XX_GPIO_IRQ(GPIO_HSS0_DCD_N), IRQ_TYPE_EDGE_BOTH);
-	set_irq_type(IXP4XX_GPIO_IRQ(GPIO_HSS1_DCD_N), IRQ_TYPE_EDGE_BOTH);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(GPIO_HSS0_DCD_N), IRQ_TYPE_EDGE_BOTH);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(GPIO_HSS1_DCD_N), IRQ_TYPE_EDGE_BOTH);
 
 	set_control(CONTROL_HSS0_DTR_N, 1);
 	set_control(CONTROL_HSS1_DTR_N, 1);
@@ -441,10 +441,10 @@ static void __init gmlr_init(void)
 #ifdef CONFIG_PCI
 static void __init gmlr_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_ETHA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_ETHB), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_NEC), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_MPCI), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_ETHA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_ETHB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_NEC), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(GPIO_IRQ_MPCI), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/gtwx5715-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/gtwx5715-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/gtwx5715-pci.c
@@ -43,8 +43,8 @@
  */
 void __init gtwx5715_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/ixdp425-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/ixdp425-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/ixdp425-pci.c
@@ -36,10 +36,10 @@
 
 void __init ixdp425_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/ixdpg425-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/ixdpg425-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/ixdpg425-pci.c
@@ -25,8 +25,8 @@
 
 void __init ixdpg425_pci_preinit(void)
 {
-	set_irq_type(IRQ_IXP4XX_GPIO6, IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IRQ_IXP4XX_GPIO7, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_IXP4XX_GPIO6, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_IXP4XX_GPIO7, IRQ_TYPE_LEVEL_LOW);
 
 	ixp4xx_pci_preinit();
 }
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/nas100d-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/nas100d-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/nas100d-pci.c
@@ -33,11 +33,11 @@
 
 void __init nas100d_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTE), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTD), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTE), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/nslu2-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/nslu2-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/nslu2-pci.c
@@ -32,9 +32,9 @@
 
 void __init nslu2_pci_preinit(void)
 {
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTC), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/vulcan-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/vulcan-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/vulcan-pci.c
@@ -38,8 +38,8 @@ void __init vulcan_pci_preinit(void)
 	pr_info("Vulcan PCI: limiting CardBus memory size to %dMB\n",
 		(int)(pci_cardbus_mem_size >> 20));
 #endif
-	set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTA), IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IXP4XX_GPIO_IRQ(INTB), IRQ_TYPE_LEVEL_LOW);
 	ixp4xx_pci_preinit();
 }
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/wg302v2-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/wg302v2-pci.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/wg302v2-pci.c
@@ -29,8 +29,8 @@
 
 void __init wg302v2_pci_preinit(void)
 {
-	set_irq_type(IRQ_IXP4XX_GPIO8, IRQ_TYPE_LEVEL_LOW);
-	set_irq_type(IRQ_IXP4XX_GPIO9, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_IXP4XX_GPIO8, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ_IXP4XX_GPIO9, IRQ_TYPE_LEVEL_LOW);
 
 	ixp4xx_pci_preinit();
 }
Index: linux-2.6-tip/arch/arm/mach-kirkwood/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-kirkwood/irq.c
+++ linux-2.6-tip/arch/arm/mach-kirkwood/irq.c
@@ -35,14 +35,15 @@ void __init kirkwood_init_irq(void)
 	 */
 	orion_gpio_init(0, 32, GPIO_LOW_VIRT_BASE, 0,
 			IRQ_KIRKWOOD_GPIO_START);
-	set_irq_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_0_7, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_8_15, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_16_23, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_24_31, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_0_7, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_8_15, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_16_23, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_KIRKWOOD_GPIO_LOW_24_31, gpio_irq_handler);
 
 	orion_gpio_init(32, 18, GPIO_HIGH_VIRT_BASE, 0,
 			IRQ_KIRKWOOD_GPIO_START + 32);
-	set_irq_chained_handler(IRQ_KIRKWOOD_GPIO_HIGH_0_7, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_KIRKWOOD_GPIO_HIGH_8_15, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_KIRKWOOD_GPIO_HIGH_16_23, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_KIRKWOOD_GPIO_HIGH_0_7, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_KIRKWOOD_GPIO_HIGH_8_15, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_KIRKWOOD_GPIO_HIGH_16_23,
+				gpio_irq_handler);
 }
Index: linux-2.6-tip/arch/arm/mach-ks8695/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ks8695/gpio.c
+++ linux-2.6-tip/arch/arm/mach-ks8695/gpio.c
@@ -80,7 +80,7 @@ int ks8695_gpio_interrupt(unsigned int p
 	local_irq_restore(flags);
 
 	/* Set IRQ triggering type */
-	set_irq_type(gpio_irq[pin], type);
+	irq_set_irq_type(gpio_irq[pin], type);
 
 	/* enable interrupt mode */
 	ks8695_gpio_mode(pin, 0);
Index: linux-2.6-tip/arch/arm/mach-ks8695/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ks8695/irq.c
+++ linux-2.6-tip/arch/arm/mach-ks8695/irq.c
@@ -115,12 +115,12 @@ static int ks8695_irq_set_type(struct ir
 	}
 
 	if (level_triggered) {
-		set_irq_chip(d->irq, &ks8695_irq_level_chip);
-		set_irq_handler(d->irq, handle_level_irq);
+		irq_set_chip(d->irq, &ks8695_irq_level_chip);
+		irq_set_handler(d->irq, handle_level_irq);
 	}
 	else {
-		set_irq_chip(d->irq, &ks8695_irq_edge_chip);
-		set_irq_handler(d->irq, handle_edge_irq);
+		irq_set_chip(d->irq, &ks8695_irq_edge_chip);
+		irq_set_handler(d->irq, handle_edge_irq);
 	}
 
 	__raw_writel(ctrl, KS8695_GPIO_VA + KS8695_IOPC);
@@ -158,16 +158,16 @@ void __init ks8695_init_irq(void)
 			case KS8695_IRQ_UART_RX:
 			case KS8695_IRQ_COMM_TX:
 			case KS8695_IRQ_COMM_RX:
-				set_irq_chip(irq, &ks8695_irq_level_chip);
-				set_irq_handler(irq, handle_level_irq);
+				irq_set_chip(irq, &ks8695_irq_level_chip);
+				irq_set_handler(irq, handle_level_irq);
 				break;
 
 			/* Edge-triggered interrupts */
 			default:
 				/* clear pending bit */
 				ks8695_irq_ack(irq_get_irq_data(irq));
-				set_irq_chip(irq, &ks8695_irq_edge_chip);
-				set_irq_handler(irq, handle_edge_irq);
+				irq_set_chip(irq, &ks8695_irq_edge_chip);
+				irq_set_handler(irq, handle_edge_irq);
 		}
 
 		set_irq_flags(irq, IRQF_VALID);
Index: linux-2.6-tip/arch/arm/mach-lpc32xx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-lpc32xx/irq.c
+++ linux-2.6-tip/arch/arm/mach-lpc32xx/irq.c
@@ -290,7 +290,7 @@ static int lpc32xx_set_irq_type(struct i
 	}
 
 	/* Ok to use the level handler for all types */
-	set_irq_handler(d->irq, handle_level_irq);
+	irq_set_handler(d->irq, handle_level_irq);
 
 	return 0;
 }
@@ -390,8 +390,8 @@ void __init lpc32xx_init_irq(void)
 
 	/* Configure supported IRQ's */
 	for (i = 0; i < NR_IRQS; i++) {
-		set_irq_chip(i, &lpc32xx_irq_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &lpc32xx_irq_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
@@ -406,8 +406,8 @@ void __init lpc32xx_init_irq(void)
 	__raw_writel(0, LPC32XX_INTC_MASK(LPC32XX_SIC2_BASE));
 
 	/* MIC SUBIRQx interrupts will route handling to the chain handlers */
-	set_irq_chained_handler(IRQ_LPC32XX_SUB1IRQ, lpc32xx_sic1_handler);
-	set_irq_chained_handler(IRQ_LPC32XX_SUB2IRQ, lpc32xx_sic2_handler);
+	irq_set_chained_handler(IRQ_LPC32XX_SUB1IRQ, lpc32xx_sic1_handler);
+	irq_set_chained_handler(IRQ_LPC32XX_SUB2IRQ, lpc32xx_sic2_handler);
 
 	/* Initially disable all wake events */
 	__raw_writel(0, LPC32XX_CLKPWR_P01_ER);
Index: linux-2.6-tip/arch/arm/mach-mmp/irq-mmp2.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mmp/irq-mmp2.c
+++ linux-2.6-tip/arch/arm/mach-mmp/irq-mmp2.c
@@ -110,9 +110,9 @@ static void init_mux_irq(struct irq_chip
 		if (chip->irq_ack)
 			chip->irq_ack(d);
 
-		set_irq_chip(irq, chip);
+		irq_set_chip(irq, chip);
 		set_irq_flags(irq, IRQF_VALID);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_handler(irq, handle_level_irq);
 	}
 }
 
@@ -122,7 +122,7 @@ void __init mmp2_init_icu(void)
 
 	for (irq = 0; irq < IRQ_MMP2_MUX_BASE; irq++) {
 		icu_mask_irq(irq_get_irq_data(irq));
-		set_irq_chip(irq, &icu_irq_chip);
+		irq_set_chip(irq, &icu_irq_chip);
 		set_irq_flags(irq, IRQF_VALID);
 
 		switch (irq) {
@@ -133,7 +133,7 @@ void __init mmp2_init_icu(void)
 		case IRQ_MMP2_SSP_MUX:
 			break;
 		default:
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_handler(irq, handle_level_irq);
 			break;
 		}
 	}
@@ -149,9 +149,9 @@ void __init mmp2_init_icu(void)
 	init_mux_irq(&misc_irq_chip, IRQ_MMP2_MISC_BASE, 15);
 	init_mux_irq(&ssp_irq_chip, IRQ_MMP2_SSP_BASE, 2);
 
-	set_irq_chained_handler(IRQ_MMP2_PMIC_MUX, pmic_irq_demux);
-	set_irq_chained_handler(IRQ_MMP2_RTC_MUX, rtc_irq_demux);
-	set_irq_chained_handler(IRQ_MMP2_TWSI_MUX, twsi_irq_demux);
-	set_irq_chained_handler(IRQ_MMP2_MISC_MUX, misc_irq_demux);
-	set_irq_chained_handler(IRQ_MMP2_SSP_MUX, ssp_irq_demux);
+	irq_set_chained_handler(IRQ_MMP2_PMIC_MUX, pmic_irq_demux);
+	irq_set_chained_handler(IRQ_MMP2_RTC_MUX, rtc_irq_demux);
+	irq_set_chained_handler(IRQ_MMP2_TWSI_MUX, twsi_irq_demux);
+	irq_set_chained_handler(IRQ_MMP2_MISC_MUX, misc_irq_demux);
+	irq_set_chained_handler(IRQ_MMP2_SSP_MUX, ssp_irq_demux);
 }
Index: linux-2.6-tip/arch/arm/mach-mmp/irq-pxa168.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mmp/irq-pxa168.c
+++ linux-2.6-tip/arch/arm/mach-mmp/irq-pxa168.c
@@ -48,8 +48,8 @@ void __init icu_init_irq(void)
 
 	for (irq = 0; irq < 64; irq++) {
 		icu_mask_irq(irq_get_irq_data(irq));
-		set_irq_chip(irq, &icu_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &icu_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-msm/board-msm8960.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/board-msm8960.c
+++ linux-2.6-tip/arch/arm/mach-msm/board-msm8960.c
@@ -53,7 +53,7 @@ static void __init msm8960_init_irq(void
 	 */
 	for (i = GIC_PPI_START; i < GIC_SPI_START; i++) {
 		if (i != AVS_SVICINT && i != AVS_SVICINTSWDONE)
-			set_irq_handler(i, handle_percpu_irq);
+			irq_set_handler(i, handle_percpu_irq);
 	}
 }
 
Index: linux-2.6-tip/arch/arm/mach-msm/board-msm8x60.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/board-msm8x60.c
+++ linux-2.6-tip/arch/arm/mach-msm/board-msm8x60.c
@@ -56,7 +56,7 @@ static void __init msm8x60_init_irq(void
 	 */
 	for (i = GIC_PPI_START; i < GIC_SPI_START; i++) {
 		if (i != AVS_SVICINT && i != AVS_SVICINTSWDONE)
-			set_irq_handler(i, handle_percpu_irq);
+			irq_set_handler(i, handle_percpu_irq);
 	}
 }
 
Index: linux-2.6-tip/arch/arm/mach-msm/board-trout-gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/board-trout-gpio.c
+++ linux-2.6-tip/arch/arm/mach-msm/board-trout-gpio.c
@@ -214,17 +214,17 @@ int __init trout_init_gpio(void)
 {
 	int i;
 	for(i = TROUT_INT_START; i <= TROUT_INT_END; i++) {
-		set_irq_chip(i, &trout_gpio_irq_chip);
-		set_irq_handler(i, handle_edge_irq);
+		irq_set_chip(i, &trout_gpio_irq_chip);
+		irq_set_handler(i, handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
 	for (i = 0; i < ARRAY_SIZE(msm_gpio_banks); i++)
 		gpiochip_add(&msm_gpio_banks[i].chip);
 
-	set_irq_type(MSM_GPIO_TO_INT(17), IRQF_TRIGGER_HIGH);
-	set_irq_chained_handler(MSM_GPIO_TO_INT(17), trout_gpio_irq_handler);
-	set_irq_wake(MSM_GPIO_TO_INT(17), 1);
+	irq_set_irq_type(MSM_GPIO_TO_INT(17), IRQF_TRIGGER_HIGH);
+	irq_set_chained_handler(MSM_GPIO_TO_INT(17), trout_gpio_irq_handler);
+	irq_set_irq_wake(MSM_GPIO_TO_INT(17), 1);
 
 	return 0;
 }
Index: linux-2.6-tip/arch/arm/mach-msm/board-trout-mmc.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/board-trout-mmc.c
+++ linux-2.6-tip/arch/arm/mach-msm/board-trout-mmc.c
@@ -174,7 +174,7 @@ int __init trout_init_mmc(unsigned int s
 	if (IS_ERR(vreg_sdslot))
 		return PTR_ERR(vreg_sdslot);
 
-	set_irq_wake(TROUT_GPIO_TO_INT(TROUT_GPIO_SDMC_CD_N), 1);
+	irq_set_irq_wake(TROUT_GPIO_TO_INT(TROUT_GPIO_SDMC_CD_N), 1);
 
 	if (!opt_disable_sdcard)
 		msm_add_sdcc(2, &trout_sdslot_data,
Index: linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/gpio-v2.c
+++ linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
@@ -328,12 +328,12 @@ static int msm_gpio_irq_set_wake(struct 
 
 	if (on) {
 		if (bitmap_empty(msm_gpio.wake_irqs, NR_GPIO_IRQS))
-			set_irq_wake(TLMM_SCSS_SUMMARY_IRQ, 1);
+			irq_set_irq_wake(TLMM_SCSS_SUMMARY_IRQ, 1);
 		set_bit(gpio, msm_gpio.wake_irqs);
 	} else {
 		clear_bit(gpio, msm_gpio.wake_irqs);
 		if (bitmap_empty(msm_gpio.wake_irqs, NR_GPIO_IRQS))
-			set_irq_wake(TLMM_SCSS_SUMMARY_IRQ, 0);
+			irq_set_irq_wake(TLMM_SCSS_SUMMARY_IRQ, 0);
 	}
 
 	return 0;
@@ -362,12 +362,12 @@ static int __devinit msm_gpio_probe(stru
 
 	for (i = 0; i < msm_gpio.gpio_chip.ngpio; ++i) {
 		irq = msm_gpio_to_irq(&msm_gpio.gpio_chip, i);
-		set_irq_chip(irq, &msm_gpio_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &msm_gpio_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
-	set_irq_chained_handler(TLMM_SCSS_SUMMARY_IRQ,
+	irq_set_chained_handler(TLMM_SCSS_SUMMARY_IRQ,
 				msm_summary_irq_handler);
 	return 0;
 }
@@ -379,7 +379,7 @@ static int __devexit msm_gpio_remove(str
 	if (ret < 0)
 		return ret;
 
-	set_irq_handler(TLMM_SCSS_SUMMARY_IRQ, NULL);
+	irq_set_handler(TLMM_SCSS_SUMMARY_IRQ, NULL);
 
 	return 0;
 }
Index: linux-2.6-tip/arch/arm/mach-msm/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/gpio.c
+++ linux-2.6-tip/arch/arm/mach-msm/gpio.c
@@ -354,9 +354,9 @@ static int __init msm_init_gpio(void)
 			msm_gpio_chips[j].chip.base +
 			msm_gpio_chips[j].chip.ngpio)
 			j++;
-		set_irq_chip_data(i, &msm_gpio_chips[j]);
-		set_irq_chip(i, &msm_gpio_irq_chip);
-		set_irq_handler(i, handle_edge_irq);
+		irq_set_chip_data(i, &msm_gpio_chips[j]);
+		irq_set_chip(i, &msm_gpio_irq_chip);
+		irq_set_handler(i, handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
@@ -366,10 +366,10 @@ static int __init msm_init_gpio(void)
 		gpiochip_add(&msm_gpio_chips[i].chip);
 	}
 
-	set_irq_chained_handler(INT_GPIO_GROUP1, msm_gpio_irq_handler);
-	set_irq_chained_handler(INT_GPIO_GROUP2, msm_gpio_irq_handler);
-	set_irq_wake(INT_GPIO_GROUP1, 1);
-	set_irq_wake(INT_GPIO_GROUP2, 2);
+	irq_set_chained_handler(INT_GPIO_GROUP1, msm_gpio_irq_handler);
+	irq_set_chained_handler(INT_GPIO_GROUP2, msm_gpio_irq_handler);
+	irq_set_irq_wake(INT_GPIO_GROUP1, 1);
+	irq_set_irq_wake(INT_GPIO_GROUP2, 2);
 	return 0;
 }
 
Index: linux-2.6-tip/arch/arm/mach-msm/irq-vic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/irq-vic.c
+++ linux-2.6-tip/arch/arm/mach-msm/irq-vic.c
@@ -357,8 +357,8 @@ void __init msm_init_irq(void)
 	writel(3, VIC_INT_MASTEREN);
 
 	for (n = 0; n < NR_MSM_IRQS; n++) {
-		set_irq_chip(n, &msm_irq_chip);
-		set_irq_handler(n, handle_level_irq);
+		irq_set_chip(n, &msm_irq_chip);
+		irq_set_handler(n, handle_level_irq);
 		set_irq_flags(n, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-msm/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/irq.c
+++ linux-2.6-tip/arch/arm/mach-msm/irq.c
@@ -145,8 +145,8 @@ void __init msm_init_irq(void)
 	writel(1, VIC_INT_MASTEREN);
 
 	for (n = 0; n < NR_MSM_IRQS; n++) {
-		set_irq_chip(n, &msm_irq_chip);
-		set_irq_handler(n, handle_level_irq);
+		irq_set_chip(n, &msm_irq_chip);
+		irq_set_handler(n, handle_level_irq);
 		set_irq_flags(n, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-msm/sirc.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/sirc.c
+++ linux-2.6-tip/arch/arm/mach-msm/sirc.c
@@ -158,15 +158,15 @@ void __init msm_init_sirc(void)
 	wake_enable = 0;
 
 	for (i = FIRST_SIRC_IRQ; i < LAST_SIRC_IRQ; i++) {
-		set_irq_chip(i, &sirc_irq_chip);
-		set_irq_handler(i, handle_edge_irq);
+		irq_set_chip(i, &sirc_irq_chip);
+		irq_set_handler(i, handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
 	for (i = 0; i < ARRAY_SIZE(sirc_reg_table); i++) {
-		set_irq_chained_handler(sirc_reg_table[i].cascade_irq,
+		irq_set_chained_handler(sirc_reg_table[i].cascade_irq,
 					sirc_irq_handler);
-		set_irq_wake(sirc_reg_table[i].cascade_irq, 1);
+		irq_set_irq_wake(sirc_reg_table[i].cascade_irq, 1);
 	}
 	return;
 }
Index: linux-2.6-tip/arch/arm/mach-mv78xx0/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mv78xx0/irq.c
+++ linux-2.6-tip/arch/arm/mach-mv78xx0/irq.c
@@ -38,8 +38,8 @@ void __init mv78xx0_init_irq(void)
 	orion_gpio_init(0, 32, GPIO_VIRT_BASE,
 			mv78xx0_core_index() ? 0x18 : 0,
 			IRQ_MV78XX0_GPIO_START);
-	set_irq_chained_handler(IRQ_MV78XX0_GPIO_0_7, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_MV78XX0_GPIO_8_15, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_MV78XX0_GPIO_16_23, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_MV78XX0_GPIO_24_31, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_MV78XX0_GPIO_0_7, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_MV78XX0_GPIO_8_15, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_MV78XX0_GPIO_16_23, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_MV78XX0_GPIO_24_31, gpio_irq_handler);
 }
Index: linux-2.6-tip/arch/arm/mach-mx3/mach-mx31ads.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mx3/mach-mx31ads.c
+++ linux-2.6-tip/arch/arm/mach-mx3/mach-mx31ads.c
@@ -199,12 +199,12 @@ static void __init mx31ads_init_expio(vo
 	__raw_writew(0xFFFF, PBC_INTSTATUS_REG);
 	for (i = MXC_EXP_IO_BASE; i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES);
 	     i++) {
-		set_irq_chip(i, &expio_irq_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &expio_irq_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
-	set_irq_type(EXPIO_PARENT_INT, IRQ_TYPE_LEVEL_HIGH);
-	set_irq_chained_handler(EXPIO_PARENT_INT, mx31ads_expio_irq_handler);
+	irq_set_irq_type(EXPIO_PARENT_INT, IRQ_TYPE_LEVEL_HIGH);
+	irq_set_chained_handler(EXPIO_PARENT_INT, mx31ads_expio_irq_handler);
 }
 
 #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
Index: linux-2.6-tip/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c
+++ linux-2.6-tip/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c
@@ -212,7 +212,7 @@ void __init eukrea_mbimx51_baseboard_ini
 
 	gpio_request(MBIMX51_TSC2007_GPIO, "tsc2007_irq");
 	gpio_direction_input(MBIMX51_TSC2007_GPIO);
-	set_irq_type(MBIMX51_TSC2007_IRQ, IRQF_TRIGGER_FALLING);
+	irq_set_irq_type(MBIMX51_TSC2007_IRQ, IRQF_TRIGGER_FALLING);
 	i2c_register_board_info(1, mbimx51_i2c_devices,
 				ARRAY_SIZE(mbimx51_i2c_devices));
 
Index: linux-2.6-tip/arch/arm/mach-mxs/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mxs/gpio.c
+++ linux-2.6-tip/arch/arm/mach-mxs/gpio.c
@@ -136,7 +136,7 @@ static int mxs_gpio_set_irq_type(struct 
 static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
 	u32 irq_stat;
-	struct mxs_gpio_port *port = (struct mxs_gpio_port *)get_irq_data(irq);
+	struct mxs_gpio_port *port = (struct mxs_gpio_port *)irq_get_handler_data(irq);
 	u32 gpio_irq_no_base = port->virtual_irq_start;
 
 	desc->irq_data.chip->irq_ack(&desc->irq_data);
@@ -265,14 +265,14 @@ int __init mxs_gpio_init(struct mxs_gpio
 
 		for (j = port[i].virtual_irq_start;
 			j < port[i].virtual_irq_start + 32; j++) {
-			set_irq_chip(j, &gpio_irq_chip);
-			set_irq_handler(j, handle_level_irq);
+			irq_set_chip(j, &gpio_irq_chip);
+			irq_set_handler(j, handle_level_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 
 		/* setup one handler for each entry */
-		set_irq_chained_handler(port[i].irq, mxs_gpio_irq_handler);
-		set_irq_data(port[i].irq, &port[i]);
+		irq_set_chained_handler(port[i].irq, mxs_gpio_irq_handler);
+		irq_set_handler_data(port[i].irq, &port[i]);
 
 		/* register gpio chip */
 		port[i].chip.direction_input = mxs_gpio_direction_input;
Index: linux-2.6-tip/arch/arm/mach-mxs/icoll.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mxs/icoll.c
+++ linux-2.6-tip/arch/arm/mach-mxs/icoll.c
@@ -74,8 +74,8 @@ void __init icoll_init_irq(void)
 	mxs_reset_block(icoll_base + HW_ICOLL_CTRL);
 
 	for (i = 0; i < MXS_INTERNAL_IRQS; i++) {
-		set_irq_chip(i, &mxs_icoll_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &mxs_icoll_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-netx/generic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-netx/generic.c
+++ linux-2.6-tip/arch/arm/mach-netx/generic.c
@@ -171,13 +171,13 @@ void __init netx_init_irq(void)
 	vic_init(__io(io_p2v(NETX_PA_VIC)), 0, ~0, 0);
 
 	for (irq = NETX_IRQ_HIF_CHAINED(0); irq <= NETX_IRQ_HIF_LAST; irq++) {
-		set_irq_chip(irq, &netx_hif_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &netx_hif_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
 	writel(NETX_DPMAS_INT_EN_GLB_EN, NETX_DPMAS_INT_EN);
-	set_irq_chained_handler(NETX_IRQ_HIF, netx_hif_demux_handler);
+	irq_set_chained_handler(NETX_IRQ_HIF, netx_hif_demux_handler);
 }
 
 static int __init netx_init(void)
Index: linux-2.6-tip/arch/arm/mach-ns9xxx/board-a9m9750dev.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ns9xxx/board-a9m9750dev.c
+++ linux-2.6-tip/arch/arm/mach-ns9xxx/board-a9m9750dev.c
@@ -107,8 +107,8 @@ void __init board_a9m9750dev_init_irq(vo
 				__func__);
 
 	for (i = FPGA_IRQ(0); i <= FPGA_IRQ(7); ++i) {
-		set_irq_chip(i, &a9m9750dev_fpga_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &a9m9750dev_fpga_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
@@ -118,8 +118,8 @@ void __init board_a9m9750dev_init_irq(vo
 	REGSET(eic, SYS_EIC, LVEDG, LEVEL);
 	__raw_writel(eic, SYS_EIC(2));
 
-	set_irq_chained_handler(IRQ_NS9XXX_EXT2,
-			a9m9750dev_fpga_demux_handler);
+	irq_set_chained_handler(IRQ_NS9XXX_EXT2,
+				a9m9750dev_fpga_demux_handler);
 }
 
 void __init board_a9m9750dev_init_machine(void)
Index: linux-2.6-tip/arch/arm/mach-ns9xxx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ns9xxx/irq.c
+++ linux-2.6-tip/arch/arm/mach-ns9xxx/irq.c
@@ -67,8 +67,8 @@ void __init ns9xxx_init_irq(void)
 		__raw_writel(prio2irq(i), SYS_IVA(i));
 
 	for (i = 0; i <= 31; ++i) {
-		set_irq_chip(i, &ns9xxx_chip);
-		set_irq_handler(i, handle_fasteoi_irq);
+		irq_set_chip(i, &ns9xxx_chip);
+		irq_set_handler(i, handle_fasteoi_irq);
 		set_irq_flags(i, IRQF_VALID);
 		irq_set_status_flags(i, IRQ_LEVEL);
 	}
Index: linux-2.6-tip/arch/arm/mach-nuc93x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-nuc93x/irq.c
+++ linux-2.6-tip/arch/arm/mach-nuc93x/irq.c
@@ -59,8 +59,8 @@ void __init nuc93x_init_irq(void)
 	__raw_writel(0xFFFFFFFE, REG_AIC_MDCR);
 
 	for (irqno = IRQ_WDT; irqno <= NR_IRQS; irqno++) {
-		set_irq_chip(irqno, &nuc93x_irq_chip);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &nuc93x_irq_chip);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-omap1/board-osk.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap1/board-osk.c
+++ linux-2.6-tip/arch/arm/mach-omap1/board-osk.c
@@ -276,7 +276,7 @@ static void __init osk_init_cf(void)
 		return;
 	}
 	/* the CF I/O IRQ is really active-low */
-	set_irq_type(gpio_to_irq(62), IRQ_TYPE_EDGE_FALLING);
+	irq_set_irq_type(gpio_to_irq(62), IRQ_TYPE_EDGE_FALLING);
 }
 
 static void __init osk_init_irq(void)
@@ -482,7 +482,7 @@ static void __init osk_mistral_init(void
 	omap_cfg_reg(P20_1610_GPIO4);	/* PENIRQ */
 	gpio_request(4, "ts_int");
 	gpio_direction_input(4);
-	set_irq_type(gpio_to_irq(4), IRQ_TYPE_EDGE_FALLING);
+	irq_set_irq_type(gpio_to_irq(4), IRQ_TYPE_EDGE_FALLING);
 
 	spi_register_board_info(mistral_boardinfo,
 			ARRAY_SIZE(mistral_boardinfo));
@@ -500,7 +500,7 @@ static void __init osk_mistral_init(void
 		int irq = gpio_to_irq(OMAP_MPUIO(2));
 
 		gpio_direction_input(OMAP_MPUIO(2));
-		set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
+		irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
 #ifdef	CONFIG_PM
 		/* share the IRQ in case someone wants to use the
 		 * button for more than wakeup from system sleep.
Index: linux-2.6-tip/arch/arm/mach-omap1/board-palmz71.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap1/board-palmz71.c
+++ linux-2.6-tip/arch/arm/mach-omap1/board-palmz71.c
@@ -256,12 +256,12 @@ palmz71_powercable(int irq, void *dev_id
 {
 	if (gpio_get_value(PALMZ71_USBDETECT_GPIO)) {
 		printk(KERN_INFO "PM: Power cable connected\n");
-		set_irq_type(gpio_to_irq(PALMZ71_USBDETECT_GPIO),
-				IRQ_TYPE_EDGE_FALLING);
+		irq_set_irq_type(gpio_to_irq(PALMZ71_USBDETECT_GPIO),
+				 IRQ_TYPE_EDGE_FALLING);
 	} else {
 		printk(KERN_INFO "PM: Power cable disconnected\n");
-		set_irq_type(gpio_to_irq(PALMZ71_USBDETECT_GPIO),
-				IRQ_TYPE_EDGE_RISING);
+		irq_set_irq_type(gpio_to_irq(PALMZ71_USBDETECT_GPIO),
+				 IRQ_TYPE_EDGE_RISING);
 	}
 	return IRQ_HANDLED;
 }
Index: linux-2.6-tip/arch/arm/mach-omap1/board-voiceblue.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap1/board-voiceblue.c
+++ linux-2.6-tip/arch/arm/mach-omap1/board-voiceblue.c
@@ -279,10 +279,10 @@ static void __init voiceblue_init(void)
 	gpio_request(13, "16C554 irq");
 	gpio_request(14, "16C554 irq");
 	gpio_request(15, "16C554 irq");
-	set_irq_type(gpio_to_irq(12), IRQ_TYPE_EDGE_RISING);
-	set_irq_type(gpio_to_irq(13), IRQ_TYPE_EDGE_RISING);
-	set_irq_type(gpio_to_irq(14), IRQ_TYPE_EDGE_RISING);
-	set_irq_type(gpio_to_irq(15), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(12), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(13), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(14), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(15), IRQ_TYPE_EDGE_RISING);
 
 	platform_add_devices(voiceblue_devices, ARRAY_SIZE(voiceblue_devices));
 	omap_board_config = voiceblue_config;
Index: linux-2.6-tip/arch/arm/mach-omap1/fpga.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap1/fpga.c
+++ linux-2.6-tip/arch/arm/mach-omap1/fpga.c
@@ -156,17 +156,17 @@ void omap1510_fpga_init_irq(void)
 			 * The touchscreen interrupt is level-sensitive, so
 			 * we'll use the regular mask_ack routine for it.
 			 */
-			set_irq_chip(i, &omap_fpga_irq_ack);
+			irq_set_chip(i, &omap_fpga_irq_ack);
 		}
 		else {
 			/*
 			 * All FPGA interrupts except the touchscreen are
 			 * edge-sensitive, so we won't mask them.
 			 */
-			set_irq_chip(i, &omap_fpga_irq);
+			irq_set_chip(i, &omap_fpga_irq);
 		}
 
-		set_irq_handler(i, handle_edge_irq);
+		irq_set_handler(i, handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
@@ -183,6 +183,6 @@ void omap1510_fpga_init_irq(void)
 		return;
 	}
 	gpio_direction_input(13);
-	set_irq_type(gpio_to_irq(13), IRQ_TYPE_EDGE_RISING);
-	set_irq_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux);
+	irq_set_irq_type(gpio_to_irq(13), IRQ_TYPE_EDGE_RISING);
+	irq_set_chained_handler(OMAP1510_INT_FPGA, innovator_fpga_IRQ_demux);
 }
Index: linux-2.6-tip/arch/arm/mach-omap1/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap1/irq.c
+++ linux-2.6-tip/arch/arm/mach-omap1/irq.c
@@ -230,8 +230,8 @@ void __init omap_init_irq(void)
 			irq_trigger = irq_banks[i].trigger_map >> IRQ_BIT(j);
 			omap_irq_set_cfg(j, 0, 0, irq_trigger);
 
-			set_irq_chip(j, &omap_irq_chip);
-			set_irq_handler(j, handle_level_irq);
+			irq_set_chip(j, &omap_irq_chip);
+			irq_set_handler(j, handle_level_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-omap2/gpmc.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap2/gpmc.c
+++ linux-2.6-tip/arch/arm/mach-omap2/gpmc.c
@@ -739,7 +739,7 @@ static int __init gpmc_init(void)
 	/* initalize the irq_chained */
 	irq = OMAP_GPMC_IRQ_BASE;
 	for (cs = 0; cs < GPMC_CS_NUM; cs++) {
-		set_irq_handler(irq, handle_simple_irq);
+		irq_set_handler(irq, handle_simple_irq);
 		set_irq_flags(irq, IRQF_VALID);
 		irq++;
 	}
Index: linux-2.6-tip/arch/arm/mach-omap2/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap2/irq.c
+++ linux-2.6-tip/arch/arm/mach-omap2/irq.c
@@ -223,8 +223,8 @@ void __init omap_init_irq(void)
 	       nr_of_irqs, nr_banks, nr_banks > 1 ? "s" : "");
 
 	for (i = 0; i < nr_of_irqs; i++) {
-		set_irq_chip(i, &omap_irq_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &omap_irq_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-orion5x/db88f5281-setup.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-orion5x/db88f5281-setup.c
+++ linux-2.6-tip/arch/arm/mach-orion5x/db88f5281-setup.c
@@ -213,7 +213,7 @@ void __init db88f5281_pci_preinit(void)
 	pin = DB88F5281_PCI_SLOT0_IRQ_PIN;
 	if (gpio_request(pin, "PCI Int1") == 0) {
 		if (gpio_direction_input(pin) == 0) {
-			set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
+			irq_set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
 		} else {
 			printk(KERN_ERR "db88f5281_pci_preinit faield to "
 					"set_irq_type pin %d\n", pin);
@@ -226,7 +226,7 @@ void __init db88f5281_pci_preinit(void)
 	pin = DB88F5281_PCI_SLOT1_SLOT2_IRQ_PIN;
 	if (gpio_request(pin, "PCI Int2") == 0) {
 		if (gpio_direction_input(pin) == 0) {
-			set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
+			irq_set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
 		} else {
 			printk(KERN_ERR "db88f5281_pci_preinit faield "
 					"to set_irq_type pin %d\n", pin);
Index: linux-2.6-tip/arch/arm/mach-orion5x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-orion5x/irq.c
+++ linux-2.6-tip/arch/arm/mach-orion5x/irq.c
@@ -34,8 +34,8 @@ void __init orion5x_init_irq(void)
 	 * Initialize gpiolib for GPIOs 0-31.
 	 */
 	orion_gpio_init(0, 32, GPIO_VIRT_BASE, 0, IRQ_ORION5X_GPIO_START);
-	set_irq_chained_handler(IRQ_ORION5X_GPIO_0_7, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_ORION5X_GPIO_8_15, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_ORION5X_GPIO_16_23, gpio_irq_handler);
-	set_irq_chained_handler(IRQ_ORION5X_GPIO_24_31, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_ORION5X_GPIO_0_7, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_ORION5X_GPIO_8_15, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_ORION5X_GPIO_16_23, gpio_irq_handler);
+	irq_set_chained_handler(IRQ_ORION5X_GPIO_24_31, gpio_irq_handler);
 }
Index: linux-2.6-tip/arch/arm/mach-orion5x/rd88f5182-setup.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-orion5x/rd88f5182-setup.c
+++ linux-2.6-tip/arch/arm/mach-orion5x/rd88f5182-setup.c
@@ -148,7 +148,7 @@ void __init rd88f5182_pci_preinit(void)
 	pin = RD88F5182_PCI_SLOT0_IRQ_A_PIN;
 	if (gpio_request(pin, "PCI IntA") == 0) {
 		if (gpio_direction_input(pin) == 0) {
-			set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
+			irq_set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
 		} else {
 			printk(KERN_ERR "rd88f5182_pci_preinit faield to "
 					"set_irq_type pin %d\n", pin);
@@ -161,7 +161,7 @@ void __init rd88f5182_pci_preinit(void)
 	pin = RD88F5182_PCI_SLOT0_IRQ_B_PIN;
 	if (gpio_request(pin, "PCI IntB") == 0) {
 		if (gpio_direction_input(pin) == 0) {
-			set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
+			irq_set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
 		} else {
 			printk(KERN_ERR "rd88f5182_pci_preinit faield to "
 					"set_irq_type pin %d\n", pin);
Index: linux-2.6-tip/arch/arm/mach-orion5x/terastation_pro2-setup.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-orion5x/terastation_pro2-setup.c
+++ linux-2.6-tip/arch/arm/mach-orion5x/terastation_pro2-setup.c
@@ -88,7 +88,7 @@ void __init tsp2_pci_preinit(void)
 	pin = TSP2_PCI_SLOT0_IRQ_PIN;
 	if (gpio_request(pin, "PCI Int1") == 0) {
 		if (gpio_direction_input(pin) == 0) {
-			set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
+			irq_set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
 		} else {
 			printk(KERN_ERR "tsp2_pci_preinit failed "
 					"to set_irq_type pin %d\n", pin);
Index: linux-2.6-tip/arch/arm/mach-orion5x/ts209-setup.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-orion5x/ts209-setup.c
+++ linux-2.6-tip/arch/arm/mach-orion5x/ts209-setup.c
@@ -117,7 +117,7 @@ void __init qnap_ts209_pci_preinit(void)
 	pin = QNAP_TS209_PCI_SLOT0_IRQ_PIN;
 	if (gpio_request(pin, "PCI Int1") == 0) {
 		if (gpio_direction_input(pin) == 0) {
-			set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
+			irq_set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
 		} else {
 			printk(KERN_ERR "qnap_ts209_pci_preinit failed to "
 					"set_irq_type pin %d\n", pin);
@@ -131,7 +131,7 @@ void __init qnap_ts209_pci_preinit(void)
 	pin = QNAP_TS209_PCI_SLOT1_IRQ_PIN;
 	if (gpio_request(pin, "PCI Int2") == 0) {
 		if (gpio_direction_input(pin) == 0) {
-			set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
+			irq_set_irq_type(gpio_to_irq(pin), IRQ_TYPE_LEVEL_LOW);
 		} else {
 			printk(KERN_ERR "qnap_ts209_pci_preinit failed "
 					"to set_irq_type pin %d\n", pin);
Index: linux-2.6-tip/arch/arm/mach-pnx4008/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pnx4008/irq.c
+++ linux-2.6-tip/arch/arm/mach-pnx4008/irq.c
@@ -58,22 +58,22 @@ static int pnx4008_set_irq_type(struct i
 	case IRQ_TYPE_EDGE_RISING:
 		__raw_writel(__raw_readl(INTC_ATR(d->irq)) | INTC_BIT(d->irq), INTC_ATR(d->irq));	/*edge sensitive */
 		__raw_writel(__raw_readl(INTC_APR(d->irq)) | INTC_BIT(d->irq), INTC_APR(d->irq));	/*rising edge */
-		set_irq_handler(d->irq, handle_edge_irq);
+		irq_set_handler(d->irq, handle_edge_irq);
 		break;
 	case IRQ_TYPE_EDGE_FALLING:
 		__raw_writel(__raw_readl(INTC_ATR(d->irq)) | INTC_BIT(d->irq), INTC_ATR(d->irq));	/*edge sensitive */
 		__raw_writel(__raw_readl(INTC_APR(d->irq)) & ~INTC_BIT(d->irq), INTC_APR(d->irq));	/*falling edge */
-		set_irq_handler(d->irq, handle_edge_irq);
+		irq_set_handler(d->irq, handle_edge_irq);
 		break;
 	case IRQ_TYPE_LEVEL_LOW:
 		__raw_writel(__raw_readl(INTC_ATR(d->irq)) & ~INTC_BIT(d->irq), INTC_ATR(d->irq));	/*level sensitive */
 		__raw_writel(__raw_readl(INTC_APR(d->irq)) & ~INTC_BIT(d->irq), INTC_APR(d->irq));	/*low level */
-		set_irq_handler(d->irq, handle_level_irq);
+		irq_set_handler(d->irq, handle_level_irq);
 		break;
 	case IRQ_TYPE_LEVEL_HIGH:
 		__raw_writel(__raw_readl(INTC_ATR(d->irq)) & ~INTC_BIT(d->irq), INTC_ATR(d->irq));	/*level sensitive */
 		__raw_writel(__raw_readl(INTC_APR(d->irq)) | INTC_BIT(d->irq), INTC_APR(d->irq));	/* high level */
-		set_irq_handler(d->irq, handle_level_irq);
+		irq_set_handler(d->irq, handle_level_irq);
 		break;
 
 	/* IRQ_TYPE_EDGE_BOTH is not supported */
@@ -98,7 +98,7 @@ void __init pnx4008_init_irq(void)
 	/* configure IRQ's */
 	for (i = 0; i < NR_IRQS; i++) {
 		set_irq_flags(i, IRQF_VALID);
-		set_irq_chip(i, &pnx4008_irq_chip);
+		irq_set_chip(i, &pnx4008_irq_chip);
 		pnx4008_set_irq_type(irq_get_irq_data(i), pnx4008_irq_type[i]);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-pxa/balloon3.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/balloon3.c
+++ linux-2.6-tip/arch/arm/mach-pxa/balloon3.c
@@ -527,13 +527,13 @@ static void __init balloon3_init_irq(voi
 	pxa27x_init_irq();
 	/* setup extra Balloon3 irqs */
 	for (irq = BALLOON3_IRQ(0); irq <= BALLOON3_IRQ(7); irq++) {
-		set_irq_chip(irq, &balloon3_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &balloon3_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
-	set_irq_chained_handler(BALLOON3_AUX_NIRQ, balloon3_irq_handler);
-	set_irq_type(BALLOON3_AUX_NIRQ, IRQ_TYPE_EDGE_FALLING);
+	irq_set_chained_handler(BALLOON3_AUX_NIRQ, balloon3_irq_handler);
+	irq_set_irq_type(BALLOON3_AUX_NIRQ, IRQ_TYPE_EDGE_FALLING);
 
 	pr_debug("%s: chained handler installed - irq %d automatically "
 		"enabled\n", __func__, BALLOON3_AUX_NIRQ);
Index: linux-2.6-tip/arch/arm/mach-pxa/cm-x2xx-pci.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/cm-x2xx-pci.c
+++ linux-2.6-tip/arch/arm/mach-pxa/cm-x2xx-pci.c
@@ -70,9 +70,10 @@ void __cmx2xx_pci_init_irq(int irq_gpio)
 
 	cmx2xx_it8152_irq_gpio = irq_gpio;
 
-	set_irq_type(gpio_to_irq(irq_gpio), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(irq_gpio), IRQ_TYPE_EDGE_RISING);
 
-	set_irq_chained_handler(gpio_to_irq(irq_gpio), cmx2xx_it8152_irq_demux);
+	irq_set_chained_handler(gpio_to_irq(irq_gpio),
+				cmx2xx_it8152_irq_demux);
 }
 
 #ifdef CONFIG_PM
Index: linux-2.6-tip/arch/arm/mach-pxa/cm-x300.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/cm-x300.c
+++ linux-2.6-tip/arch/arm/mach-pxa/cm-x300.c
@@ -765,7 +765,7 @@ static void __init cm_x300_init_da9030(v
 {
 	pxa3xx_set_i2c_power_info(&cm_x300_pwr_i2c_info);
 	i2c_register_board_info(1, &cm_x300_pmic_info, 1);
-	set_irq_wake(IRQ_WAKEUP0, 1);
+	irq_set_irq_wake(IRQ_WAKEUP0, 1);
 }
 
 static void __init cm_x300_init_wi2wi(void)
Index: linux-2.6-tip/arch/arm/mach-pxa/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/irq.c
+++ linux-2.6-tip/arch/arm/mach-pxa/irq.c
@@ -137,9 +137,9 @@ static void __init pxa_init_low_gpio_irq
 	GEDR0 = 0x3;
 
 	for (irq = IRQ_GPIO0; irq <= IRQ_GPIO1; irq++) {
-		set_irq_chip(irq, &pxa_low_gpio_chip);
-		set_irq_chip_data(irq, irq_base(0));
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &pxa_low_gpio_chip);
+		irq_set_chip_data(irq, irq_base(0));
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
@@ -165,9 +165,9 @@ void __init pxa_init_irq(int irq_nr, set
 				__raw_writel(i | IPR_VALID, IRQ_BASE + IPR(i));
 
 			irq = PXA_IRQ(i);
-			set_irq_chip(irq, &pxa_internal_irq_chip);
-			set_irq_chip_data(irq, base);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &pxa_internal_irq_chip);
+			irq_set_chip_data(irq, base);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-pxa/lpd270.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/lpd270.c
+++ linux-2.6-tip/arch/arm/mach-pxa/lpd270.c
@@ -149,12 +149,12 @@ static void __init lpd270_init_irq(void)
 
 	/* setup extra LogicPD PXA270 irqs */
 	for (irq = LPD270_IRQ(2); irq <= LPD270_IRQ(4); irq++) {
-		set_irq_chip(irq, &lpd270_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &lpd270_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
-	set_irq_chained_handler(IRQ_GPIO(0), lpd270_irq_handler);
-	set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
+	irq_set_chained_handler(IRQ_GPIO(0), lpd270_irq_handler);
+	irq_set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
 }
 
 
Index: linux-2.6-tip/arch/arm/mach-pxa/lubbock.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/lubbock.c
+++ linux-2.6-tip/arch/arm/mach-pxa/lubbock.c
@@ -165,13 +165,13 @@ static void __init lubbock_init_irq(void
 
 	/* setup extra lubbock irqs */
 	for (irq = LUBBOCK_IRQ(0); irq <= LUBBOCK_LAST_IRQ; irq++) {
-		set_irq_chip(irq, &lubbock_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &lubbock_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
-	set_irq_chained_handler(IRQ_GPIO(0), lubbock_irq_handler);
-	set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
+	irq_set_chained_handler(IRQ_GPIO(0), lubbock_irq_handler);
+	irq_set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
 }
 
 #ifdef CONFIG_PM
Index: linux-2.6-tip/arch/arm/mach-pxa/mainstone.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/mainstone.c
+++ linux-2.6-tip/arch/arm/mach-pxa/mainstone.c
@@ -166,8 +166,8 @@ static void __init mainstone_init_irq(vo
 
 	/* setup extra Mainstone irqs */
 	for(irq = MAINSTONE_IRQ(0); irq <= MAINSTONE_IRQ(15); irq++) {
-		set_irq_chip(irq, &mainstone_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &mainstone_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		if (irq == MAINSTONE_IRQ(10) || irq == MAINSTONE_IRQ(14))
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE | IRQF_NOAUTOEN);
 		else
@@ -179,8 +179,8 @@ static void __init mainstone_init_irq(vo
 	MST_INTMSKENA = 0;
 	MST_INTSETCLR = 0;
 
-	set_irq_chained_handler(IRQ_GPIO(0), mainstone_irq_handler);
-	set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
+	irq_set_chained_handler(IRQ_GPIO(0), mainstone_irq_handler);
+	irq_set_irq_type(IRQ_GPIO(0), IRQ_TYPE_EDGE_FALLING);
 }
 
 #ifdef CONFIG_PM
Index: linux-2.6-tip/arch/arm/mach-pxa/pcm990-baseboard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/pcm990-baseboard.c
+++ linux-2.6-tip/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -281,16 +281,16 @@ static void __init pcm990_init_irq(void)
 
 	/* setup extra PCM990 irqs */
 	for (irq = PCM027_IRQ(0); irq <= PCM027_IRQ(3); irq++) {
-		set_irq_chip(irq, &pcm990_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &pcm990_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	PCM990_INTMSKENA = 0x00;	/* disable all Interrupts */
 	PCM990_INTSETCLR = 0xFF;
 
-	set_irq_chained_handler(PCM990_CTRL_INT_IRQ, pcm990_irq_handler);
-	set_irq_type(PCM990_CTRL_INT_IRQ, PCM990_CTRL_INT_IRQ_EDGE);
+	irq_set_chained_handler(PCM990_CTRL_INT_IRQ, pcm990_irq_handler);
+	irq_set_irq_type(PCM990_CTRL_INT_IRQ, PCM990_CTRL_INT_IRQ_EDGE);
 }
 
 static int pcm990_mci_init(struct device *dev, irq_handler_t mci_detect_int,
Index: linux-2.6-tip/arch/arm/mach-pxa/pxa3xx.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/pxa3xx.c
+++ linux-2.6-tip/arch/arm/mach-pxa/pxa3xx.c
@@ -362,8 +362,8 @@ static void __init pxa_init_ext_wakeup_i
 	int irq;
 
 	for (irq = IRQ_WAKEUP0; irq <= IRQ_WAKEUP1; irq++) {
-		set_irq_chip(irq, &pxa_ext_wakeup_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &pxa_ext_wakeup_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-pxa/viper.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/viper.c
+++ linux-2.6-tip/arch/arm/mach-pxa/viper.c
@@ -310,14 +310,14 @@ static void __init viper_init_irq(void)
 	/* setup ISA IRQs */
 	for (level = 0; level < ARRAY_SIZE(viper_isa_irqs); level++) {
 		isa_irq = viper_bit_to_irq(level);
-		set_irq_chip(isa_irq, &viper_irq_chip);
-		set_irq_handler(isa_irq, handle_edge_irq);
+		irq_set_chip(isa_irq, &viper_irq_chip);
+		irq_set_handler(isa_irq, handle_edge_irq);
 		set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE);
 	}
 
-	set_irq_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO),
+	irq_set_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO),
 				viper_irq_handler);
-	set_irq_type(gpio_to_irq(VIPER_CPLD_GPIO), IRQ_TYPE_EDGE_BOTH);
+	irq_set_irq_type(gpio_to_irq(VIPER_CPLD_GPIO), IRQ_TYPE_EDGE_BOTH);
 }
 
 /* Flat Panel */
Index: linux-2.6-tip/arch/arm/mach-pxa/zeus.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/zeus.c
+++ linux-2.6-tip/arch/arm/mach-pxa/zeus.c
@@ -136,22 +136,23 @@ static void __init zeus_init_irq(void)
 
 	/* Peripheral IRQs. It would be nice to move those inside driver
 	   configuration, but it is not supported at the moment. */
-	set_irq_type(gpio_to_irq(ZEUS_AC97_GPIO),	IRQ_TYPE_EDGE_RISING);
-	set_irq_type(gpio_to_irq(ZEUS_WAKEUP_GPIO),	IRQ_TYPE_EDGE_RISING);
-	set_irq_type(gpio_to_irq(ZEUS_PTT_GPIO),	IRQ_TYPE_EDGE_RISING);
-	set_irq_type(gpio_to_irq(ZEUS_EXTGPIO_GPIO),	IRQ_TYPE_EDGE_FALLING);
-	set_irq_type(gpio_to_irq(ZEUS_CAN_GPIO),	IRQ_TYPE_EDGE_FALLING);
+	irq_set_irq_type(gpio_to_irq(ZEUS_AC97_GPIO), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(ZEUS_WAKEUP_GPIO), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(ZEUS_PTT_GPIO), IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(gpio_to_irq(ZEUS_EXTGPIO_GPIO),
+			 IRQ_TYPE_EDGE_FALLING);
+	irq_set_irq_type(gpio_to_irq(ZEUS_CAN_GPIO), IRQ_TYPE_EDGE_FALLING);
 
 	/* Setup ISA IRQs */
 	for (level = 0; level < ARRAY_SIZE(zeus_isa_irqs); level++) {
 		isa_irq = zeus_bit_to_irq(level);
-		set_irq_chip(isa_irq, &zeus_irq_chip);
-		set_irq_handler(isa_irq, handle_edge_irq);
+		irq_set_chip(isa_irq, &zeus_irq_chip);
+		irq_set_handler(isa_irq, handle_edge_irq);
 		set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE);
 	}
 
-	set_irq_type(gpio_to_irq(ZEUS_ISA_GPIO), IRQ_TYPE_EDGE_RISING);
-	set_irq_chained_handler(gpio_to_irq(ZEUS_ISA_GPIO), zeus_irq_handler);
+	irq_set_irq_type(gpio_to_irq(ZEUS_ISA_GPIO), IRQ_TYPE_EDGE_RISING);
+	irq_set_chained_handler(gpio_to_irq(ZEUS_ISA_GPIO), zeus_irq_handler);
 }
 
 
Index: linux-2.6-tip/arch/arm/mach-rpc/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-rpc/irq.c
+++ linux-2.6-tip/arch/arm/mach-rpc/irq.c
@@ -133,25 +133,25 @@ void __init rpc_init_irq(void)
 
 		switch (irq) {
 		case 0 ... 7:
-			set_irq_chip(irq, &iomd_a_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &iomd_a_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, flags);
 			break;
 
 		case 8 ... 15:
-			set_irq_chip(irq, &iomd_b_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &iomd_b_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, flags);
 			break;
 
 		case 16 ... 21:
-			set_irq_chip(irq, &iomd_dma_chip);
-			set_irq_handler(irq, handle_level_irq);
+			irq_set_chip(irq, &iomd_dma_chip);
+			irq_set_handler(irq, handle_level_irq);
 			set_irq_flags(irq, flags);
 			break;
 
 		case 64 ... 71:
-			set_irq_chip(irq, &iomd_fiq_chip);
+			irq_set_chip(irq, &iomd_fiq_chip);
 			set_irq_flags(irq, IRQF_VALID);
 			break;
 		}
Index: linux-2.6-tip/arch/arm/mach-s3c2410/bast-irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2410/bast-irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2410/bast-irq.c
@@ -147,15 +147,15 @@ static __init int bast_irq_init(void)
 
 		__raw_writeb(0x0, BAST_VA_PC104_IRQMASK);
 
-		set_irq_chained_handler(IRQ_ISA, bast_irq_pc104_demux);
+		irq_set_chained_handler(IRQ_ISA, bast_irq_pc104_demux);
 
 		/* register our IRQs */
 
 		for (i = 0; i < 4; i++) {
 			unsigned int irqno = bast_pc104_irqs[i];
 
-			set_irq_chip(irqno, &bast_pc104_chip);
-			set_irq_handler(irqno, handle_level_irq);
+			irq_set_chip(irqno, &bast_pc104_chip);
+			irq_set_handler(irqno, handle_level_irq);
 			set_irq_flags(irqno, IRQF_VALID);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-s3c2412/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2412/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2412/irq.c
@@ -175,18 +175,18 @@ static int s3c2412_irq_add(struct sys_de
 	unsigned int irqno;
 
 	for (irqno = IRQ_EINT0; irqno <= IRQ_EINT3; irqno++) {
-		set_irq_chip(irqno, &s3c2412_irq_eint0t4);
-		set_irq_handler(irqno, handle_edge_irq);
+		irq_set_chip(irqno, &s3c2412_irq_eint0t4);
+		irq_set_handler(irqno, handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	/* add demux support for CF/SDI */
 
-	set_irq_chained_handler(IRQ_S3C2412_CFSDI, s3c2412_irq_demux_cfsdi);
+	irq_set_chained_handler(IRQ_S3C2412_CFSDI, s3c2412_irq_demux_cfsdi);
 
 	for (irqno = IRQ_S3C2412_SDI; irqno <= IRQ_S3C2412_CF; irqno++) {
-		set_irq_chip(irqno, &s3c2412_irq_cfsdi);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &s3c2412_irq_cfsdi);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
@@ -195,7 +195,7 @@ static int s3c2412_irq_add(struct sys_de
 	s3c2412_irq_rtc_chip = s3c_irq_chip;
 	s3c2412_irq_rtc_chip.irq_set_wake = s3c2412_irq_rtc_wake;
 
-	set_irq_chip(IRQ_RTC, &s3c2412_irq_rtc_chip);
+	irq_set_chip(IRQ_RTC, &s3c2412_irq_rtc_chip);
 
 	return 0;
 }
Index: linux-2.6-tip/arch/arm/mach-s3c2416/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2416/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2416/irq.c
@@ -202,13 +202,13 @@ static int __init s3c2416_add_sub(unsign
 {
 	unsigned int irqno;
 
-	set_irq_chip(base, &s3c_irq_level_chip);
-	set_irq_handler(base, handle_level_irq);
-	set_irq_chained_handler(base, demux);
+	irq_set_chip(base, &s3c_irq_level_chip);
+	irq_set_handler(base, handle_level_irq);
+	irq_set_chained_handler(base, demux);
 
 	for (irqno = start; irqno <= end; irqno++) {
-		set_irq_chip(irqno, chip);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, chip);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c2440/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2440/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2440/irq.c
@@ -100,13 +100,13 @@ static int s3c2440_irq_add(struct sys_de
 
 	/* add new chained handler for wdt, ac7 */
 
-	set_irq_chip(IRQ_WDT, &s3c_irq_level_chip);
-	set_irq_handler(IRQ_WDT, handle_level_irq);
-	set_irq_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97);
+	irq_set_chip(IRQ_WDT, &s3c_irq_level_chip);
+	irq_set_handler(IRQ_WDT, handle_level_irq);
+	irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97);
 
 	for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) {
-		set_irq_chip(irqno, &s3c_irq_wdtac97);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &s3c_irq_wdtac97);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c2440/s3c244x-irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2440/s3c244x-irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2440/s3c244x-irq.c
@@ -95,19 +95,19 @@ static int s3c244x_irq_add(struct sys_de
 {
 	unsigned int irqno;
 
-	set_irq_chip(IRQ_NFCON, &s3c_irq_level_chip);
-	set_irq_handler(IRQ_NFCON, handle_level_irq);
+	irq_set_chip(IRQ_NFCON, &s3c_irq_level_chip);
+	irq_set_handler(IRQ_NFCON, handle_level_irq);
 	set_irq_flags(IRQ_NFCON, IRQF_VALID);
 
 	/* add chained handler for camera */
 
-	set_irq_chip(IRQ_CAM, &s3c_irq_level_chip);
-	set_irq_handler(IRQ_CAM, handle_level_irq);
-	set_irq_chained_handler(IRQ_CAM, s3c_irq_demux_cam);
+	irq_set_chip(IRQ_CAM, &s3c_irq_level_chip);
+	irq_set_handler(IRQ_CAM, handle_level_irq);
+	irq_set_chained_handler(IRQ_CAM, s3c_irq_demux_cam);
 
 	for (irqno = IRQ_S3C2440_CAM_C; irqno <= IRQ_S3C2440_CAM_P; irqno++) {
-		set_irq_chip(irqno, &s3c_irq_cam);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &s3c_irq_cam);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c2443/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2443/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2443/irq.c
@@ -230,13 +230,13 @@ static int __init s3c2443_add_sub(unsign
 {
 	unsigned int irqno;
 
-	set_irq_chip(base, &s3c_irq_level_chip);
-	set_irq_handler(base, handle_level_irq);
-	set_irq_chained_handler(base, demux);
+	irq_set_chip(base, &s3c_irq_level_chip);
+	irq_set_handler(base, handle_level_irq);
+	irq_set_chained_handler(base, demux);
 
 	for (irqno = start; irqno <= end; irqno++) {
-		set_irq_chip(irqno, chip);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, chip);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c64xx/irq-eint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c64xx/irq-eint.c
+++ linux-2.6-tip/arch/arm/mach-s3c64xx/irq-eint.c
@@ -197,16 +197,16 @@ static int __init s3c64xx_init_irq_eint(
 	int irq;
 
 	for (irq = IRQ_EINT(0); irq <= IRQ_EINT(27); irq++) {
-		set_irq_chip(irq, &s3c_irq_eint);
-		set_irq_chip_data(irq, (void *)eint_irq_to_bit(irq));
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &s3c_irq_eint);
+		irq_set_chip_data(irq, (void *)eint_irq_to_bit(irq));
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
-	set_irq_chained_handler(IRQ_EINT0_3, s3c_irq_demux_eint0_3);
-	set_irq_chained_handler(IRQ_EINT4_11, s3c_irq_demux_eint4_11);
-	set_irq_chained_handler(IRQ_EINT12_19, s3c_irq_demux_eint12_19);
-	set_irq_chained_handler(IRQ_EINT20_27, s3c_irq_demux_eint20_27);
+	irq_set_chained_handler(IRQ_EINT0_3, s3c_irq_demux_eint0_3);
+	irq_set_chained_handler(IRQ_EINT4_11, s3c_irq_demux_eint4_11);
+	irq_set_chained_handler(IRQ_EINT12_19, s3c_irq_demux_eint12_19);
+	irq_set_chained_handler(IRQ_EINT20_27, s3c_irq_demux_eint20_27);
 
 	return 0;
 }
Index: linux-2.6-tip/arch/arm/mach-sa1100/cerf.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-sa1100/cerf.c
+++ linux-2.6-tip/arch/arm/mach-sa1100/cerf.c
@@ -96,7 +96,7 @@ static struct resource cerf_flash_resour
 static void __init cerf_init_irq(void)
 {
 	sa1100_init_irq();
-	set_irq_type(CERF_ETH_IRQ, IRQ_TYPE_EDGE_RISING);
+	irq_set_irq_type(CERF_ETH_IRQ, IRQ_TYPE_EDGE_RISING);
 }
 
 static struct map_desc cerf_io_desc[] __initdata = {
Index: linux-2.6-tip/arch/arm/mach-sa1100/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-sa1100/irq.c
+++ linux-2.6-tip/arch/arm/mach-sa1100/irq.c
@@ -323,28 +323,28 @@ void __init sa1100_init_irq(void)
 	ICCR = 1;
 
 	for (irq = 0; irq <= 10; irq++) {
-		set_irq_chip(irq, &sa1100_low_gpio_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &sa1100_low_gpio_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	for (irq = 12; irq <= 31; irq++) {
-		set_irq_chip(irq, &sa1100_normal_chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &sa1100_normal_chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
 	for (irq = 32; irq <= 48; irq++) {
-		set_irq_chip(irq, &sa1100_high_gpio_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &sa1100_high_gpio_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	/*
 	 * Install handler for GPIO 11-27 edge detect interrupts
 	 */
-	set_irq_chip(IRQ_GPIO11_27, &sa1100_normal_chip);
-	set_irq_chained_handler(IRQ_GPIO11_27, sa1100_high_gpio_handler);
+	irq_set_chip(IRQ_GPIO11_27, &sa1100_normal_chip);
+	irq_set_chained_handler(IRQ_GPIO11_27, sa1100_high_gpio_handler);
 
 	sa1100_init_gpio();
 }
Index: linux-2.6-tip/arch/arm/mach-sa1100/neponset.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-sa1100/neponset.c
+++ linux-2.6-tip/arch/arm/mach-sa1100/neponset.c
@@ -145,8 +145,8 @@ static int __devinit neponset_probe(stru
 	/*
 	 * Install handler for GPIO25.
 	 */
-	set_irq_type(IRQ_GPIO25, IRQ_TYPE_EDGE_RISING);
-	set_irq_chained_handler(IRQ_GPIO25, neponset_irq_handler);
+	irq_set_irq_type(IRQ_GPIO25, IRQ_TYPE_EDGE_RISING);
+	irq_set_chained_handler(IRQ_GPIO25, neponset_irq_handler);
 
 	/*
 	 * We would set IRQ_GPIO25 to be a wake-up IRQ, but
@@ -161,9 +161,9 @@ static int __devinit neponset_probe(stru
 	 * Setup other Neponset IRQs.  SA1111 will be done by the
 	 * generic SA1111 code.
 	 */
-	set_irq_handler(IRQ_NEPONSET_SMC9196, handle_simple_irq);
+	irq_set_handler(IRQ_NEPONSET_SMC9196, handle_simple_irq);
 	set_irq_flags(IRQ_NEPONSET_SMC9196, IRQF_VALID | IRQF_PROBE);
-	set_irq_handler(IRQ_NEPONSET_USAR, handle_simple_irq);
+	irq_set_handler(IRQ_NEPONSET_USAR, handle_simple_irq);
 	set_irq_flags(IRQ_NEPONSET_USAR, IRQF_VALID | IRQF_PROBE);
 
 	/*
Index: linux-2.6-tip/arch/arm/mach-sa1100/pleb.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-sa1100/pleb.c
+++ linux-2.6-tip/arch/arm/mach-sa1100/pleb.c
@@ -142,7 +142,7 @@ static void __init pleb_map_io(void)
 
 	GPDR &= ~GPIO_ETH0_IRQ;
 
-	set_irq_type(GPIO_ETH0_IRQ, IRQ_TYPE_EDGE_FALLING);
+	irq_set_irq_type(GPIO_ETH0_IRQ, IRQ_TYPE_EDGE_FALLING);
 }
 
 MACHINE_START(PLEB, "PLEB")
Index: linux-2.6-tip/arch/arm/mach-shark/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-shark/irq.c
+++ linux-2.6-tip/arch/arm/mach-shark/irq.c
@@ -80,8 +80,8 @@ void __init shark_init_irq(void)
 	int irq;
 
 	for (irq = 0; irq < NR_IRQS; irq++) {
-		set_irq_chip(irq, &fb_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &fb_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-shmobile/board-ap4evb.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-shmobile/board-ap4evb.c
+++ linux-2.6-tip/arch/arm/mach-shmobile/board-ap4evb.c
@@ -1254,7 +1254,7 @@ static void __init ap4evb_init(void)
 	gpio_request(GPIO_FN_KEYIN4,     NULL);
 
 	/* enable TouchScreen */
-	set_irq_type(IRQ28, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ28, IRQ_TYPE_LEVEL_LOW);
 
 	tsc_device.irq = IRQ28;
 	i2c_register_board_info(1, &tsc_device, 1);
@@ -1310,7 +1310,7 @@ static void __init ap4evb_init(void)
 	lcdc_info.ch[0].lcd_size_cfg.height	= 91;
 
 	/* enable TouchScreen */
-	set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW);
 
 	tsc_device.irq = IRQ7;
 	i2c_register_board_info(0, &tsc_device, 1);
Index: linux-2.6-tip/arch/arm/mach-shmobile/board-mackerel.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-shmobile/board-mackerel.c
+++ linux-2.6-tip/arch/arm/mach-shmobile/board-mackerel.c
@@ -1103,15 +1103,15 @@ static void __init mackerel_init(void)
 
 	/* enable Keypad */
 	gpio_request(GPIO_FN_IRQ9_42,	NULL);
-	set_irq_type(IRQ9, IRQ_TYPE_LEVEL_HIGH);
+	irq_set_irq_type(IRQ9, IRQ_TYPE_LEVEL_HIGH);
 
 	/* enable Touchscreen */
 	gpio_request(GPIO_FN_IRQ7_40,	NULL);
-	set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW);
+	irq_set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW);
 
 	/* enable Accelerometer */
 	gpio_request(GPIO_FN_IRQ21,	NULL);
-	set_irq_type(IRQ21, IRQ_TYPE_LEVEL_HIGH);
+	irq_set_irq_type(IRQ21, IRQ_TYPE_LEVEL_HIGH);
 
 	/* enable SDHI0 */
 	gpio_request(GPIO_FN_SDHICD0, NULL);
Index: linux-2.6-tip/arch/arm/mach-shmobile/intc-sh7367.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-shmobile/intc-sh7367.c
+++ linux-2.6-tip/arch/arm/mach-shmobile/intc-sh7367.c
@@ -421,7 +421,7 @@ static struct intc_desc intcs_desc __ini
 
 static void intcs_demux(unsigned int irq, struct irq_desc *desc)
 {
-	void __iomem *reg = (void *)get_irq_data(irq);
+	void __iomem *reg = (void *)irq_get_handler_data(irq);
 	unsigned int evtcodeas = ioread32(reg);
 
 	generic_handle_irq(intcs_evt2irq(evtcodeas));
@@ -435,6 +435,6 @@ void __init sh7367_init_irq(void)
 	register_intc_controller(&intcs_desc);
 
 	/* demux using INTEVTSA */
-	set_irq_data(evt2irq(0xf80), (void *)intevtsa);
-	set_irq_chained_handler(evt2irq(0xf80), intcs_demux);
+	irq_set_handler_data(evt2irq(0xf80), (void *)intevtsa);
+	irq_set_chained_handler(evt2irq(0xf80), intcs_demux);
 }
Index: linux-2.6-tip/arch/arm/mach-shmobile/intc-sh7372.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-shmobile/intc-sh7372.c
+++ linux-2.6-tip/arch/arm/mach-shmobile/intc-sh7372.c
@@ -601,7 +601,7 @@ static struct intc_desc intcs_desc __ini
 
 static void intcs_demux(unsigned int irq, struct irq_desc *desc)
 {
-	void __iomem *reg = (void *)get_irq_data(irq);
+	void __iomem *reg = (void *)irq_get_handler_data(irq);
 	unsigned int evtcodeas = ioread32(reg);
 
 	generic_handle_irq(intcs_evt2irq(evtcodeas));
@@ -615,6 +615,6 @@ void __init sh7372_init_irq(void)
 	register_intc_controller(&intcs_desc);
 
 	/* demux using INTEVTSA */
-	set_irq_data(evt2irq(0xf80), (void *)intevtsa);
-	set_irq_chained_handler(evt2irq(0xf80), intcs_demux);
+	irq_set_handler_data(evt2irq(0xf80), (void *)intevtsa);
+	irq_set_chained_handler(evt2irq(0xf80), intcs_demux);
 }
Index: linux-2.6-tip/arch/arm/mach-shmobile/intc-sh7377.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-shmobile/intc-sh7377.c
+++ linux-2.6-tip/arch/arm/mach-shmobile/intc-sh7377.c
@@ -626,7 +626,7 @@ static struct intc_desc intcs_desc __ini
 
 static void intcs_demux(unsigned int irq, struct irq_desc *desc)
 {
-	void __iomem *reg = (void *)get_irq_data(irq);
+	void __iomem *reg = (void *)irq_get_handler_data(irq);
 	unsigned int evtcodeas = ioread32(reg);
 
 	generic_handle_irq(intcs_evt2irq(evtcodeas));
@@ -641,6 +641,6 @@ void __init sh7377_init_irq(void)
 	register_intc_controller(&intcs_desc);
 
 	/* demux using INTEVTSA */
-	set_irq_data(evt2irq(INTCS_INTVECT), (void *)intevtsa);
-	set_irq_chained_handler(evt2irq(INTCS_INTVECT), intcs_demux);
+	irq_set_handler_data(evt2irq(INTCS_INTVECT), (void *)intevtsa);
+	irq_set_chained_handler(evt2irq(INTCS_INTVECT), intcs_demux);
 }
Index: linux-2.6-tip/arch/arm/mach-tcc8k/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-tcc8k/irq.c
+++ linux-2.6-tip/arch/arm/mach-tcc8k/irq.c
@@ -102,10 +102,10 @@ void __init tcc8k_init_irq(void)
 
 	for (irqno = 0; irqno < NR_IRQS; irqno++) {
 		if (irqno < 32)
-			set_irq_chip(irqno, &tcc8000_irq_chip0);
+			irq_set_chip(irqno, &tcc8000_irq_chip0);
 		else
-			set_irq_chip(irqno, &tcc8000_irq_chip1);
-		set_irq_handler(irqno, handle_level_irq);
+			irq_set_chip(irqno, &tcc8000_irq_chip1);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-tegra/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-tegra/gpio.c
+++ linux-2.6-tip/arch/arm/mach-tegra/gpio.c
@@ -208,9 +208,9 @@ static int tegra_gpio_irq_set_type(struc
 	spin_unlock_irqrestore(&bank->lvl_lock[port], flags);
 
 	if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
-		__set_irq_handler_unlocked(d->irq, handle_level_irq);
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 	else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
-		__set_irq_handler_unlocked(d->irq, handle_edge_irq);
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 
 	return 0;
 }
@@ -224,7 +224,7 @@ static void tegra_gpio_irq_handler(unsig
 
 	desc->irq_data.chip->irq_ack(&desc->irq_data);
 
-	bank = get_irq_data(irq);
+	bank = irq_get_handler_data(irq);
 
 	for (port = 0; port < 4; port++) {
 		int gpio = tegra_gpio_compose(bank->bank, port, 0);
@@ -257,7 +257,7 @@ static void tegra_gpio_irq_handler(unsig
 static int tegra_gpio_wake_enable(struct irq_data *d, unsigned int enable)
 {
 	struct tegra_gpio_bank *bank = irq_data_get_irq_chip_data(d);
-	return set_irq_wake(bank->irq, enable);
+	return irq_set_irq_wake(bank->irq, enable);
 }
 #endif
 
@@ -297,17 +297,17 @@ static int __init tegra_gpio_init(void)
 		bank = &tegra_gpio_banks[GPIO_BANK(irq_to_gpio(i))];
 
 		irq_set_lockdep_class(i, &gpio_lock_class);
-		set_irq_chip_data(i, bank);
-		set_irq_chip(i, &tegra_gpio_irq_chip);
-		set_irq_handler(i, handle_simple_irq);
+		irq_set_chip_data(i, bank);
+		irq_set_chip(i, &tegra_gpio_irq_chip);
+		irq_set_handler(i, handle_simple_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
 	for (i = 0; i < ARRAY_SIZE(tegra_gpio_banks); i++) {
 		bank = &tegra_gpio_banks[i];
 
-		set_irq_chained_handler(bank->irq, tegra_gpio_irq_handler);
-		set_irq_data(bank->irq, bank);
+		irq_set_chained_handler(bank->irq, tegra_gpio_irq_handler);
+		irq_set_handler_data(bank->irq, bank);
 
 		for (j = 0; j < 4; j++)
 			spin_lock_init(&bank->lvl_lock[j]);
Index: linux-2.6-tip/arch/arm/mach-tegra/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-tegra/irq.c
+++ linux-2.6-tip/arch/arm/mach-tegra/irq.c
@@ -144,7 +144,7 @@ void __init tegra_init_irq(void)
 	gic_init(0, 29, IO_ADDRESS(TEGRA_ARM_INT_DIST_BASE),
 		 IO_ADDRESS(TEGRA_ARM_PERIF_BASE + 0x100));
 
-	gic = get_irq_chip(29);
+	gic = irq_get_chip(29);
 	tegra_gic_unmask_irq = gic->irq_unmask;
 	tegra_gic_mask_irq = gic->irq_mask;
 	tegra_gic_ack_irq = gic->irq_ack;
@@ -154,8 +154,8 @@ void __init tegra_init_irq(void)
 
 	for (i = 0; i < INT_MAIN_NR; i++) {
 		irq = INT_PRI_BASE + i;
-		set_irq_chip(irq, &tegra_irq);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &tegra_irq);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ux500/modem-irq-db5500.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ux500/modem-irq-db5500.c
+++ linux-2.6-tip/arch/arm/mach-ux500/modem-irq-db5500.c
@@ -90,8 +90,8 @@ static irqreturn_t modem_cpu_irq_handler
 
 static void create_virtual_irq(int irq, struct irq_chip *modem_irq_chip)
 {
-	set_irq_chip(irq, modem_irq_chip);
-	set_irq_handler(irq, handle_simple_irq);
+	irq_set_chip(irq, modem_irq_chip);
+	irq_set_handler(irq, handle_simple_irq);
 	set_irq_flags(irq, IRQF_VALID);
 
 	pr_debug("modem_irq: Created virtual IRQ %d\n", irq);
Index: linux-2.6-tip/arch/arm/mach-versatile/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-versatile/core.c
+++ linux-2.6-tip/arch/arm/mach-versatile/core.c
@@ -122,15 +122,15 @@ void __init versatile_init_irq(void)
 
 	vic_init(VA_VIC_BASE, IRQ_VIC_START, ~0, 0);
 
-	set_irq_chained_handler(IRQ_VICSOURCE31, sic_handle_irq);
+	irq_set_chained_handler(IRQ_VICSOURCE31, sic_handle_irq);
 
 	/* Do second interrupt controller */
 	writel(~0, VA_SIC_BASE + SIC_IRQ_ENABLE_CLEAR);
 
 	for (i = IRQ_SIC_START; i <= IRQ_SIC_END; i++) {
 		if ((PIC_MASK & (1 << (i - IRQ_SIC_START))) == 0) {
-			set_irq_chip(i, &sic_chip);
-			set_irq_handler(i, handle_level_irq);
+			irq_set_chip(i, &sic_chip);
+			irq_set_handler(i, handle_level_irq);
 			set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-vt8500/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-vt8500/irq.c
+++ linux-2.6-tip/arch/arm/mach-vt8500/irq.c
@@ -136,8 +136,8 @@ void __init vt8500_init_irq(void)
 			/* Disable all interrupts and route them to IRQ */
 			writeb(0x00, ic_regbase + VT8500_IC_DCTR + i);
 
-			set_irq_chip(i, &vt8500_irq_chip);
-			set_irq_handler(i, handle_level_irq);
+			irq_set_chip(i, &vt8500_irq_chip);
+			irq_set_handler(i, handle_level_irq);
 			set_irq_flags(i, IRQF_VALID);
 		}
 	} else {
@@ -167,8 +167,8 @@ void __init wm8505_init_irq(void)
 				writeb(0x00, sic_regbase + VT8500_IC_DCTR
 								+ i - 64);
 
-			set_irq_chip(i, &vt8500_irq_chip);
-			set_irq_handler(i, handle_level_irq);
+			irq_set_chip(i, &vt8500_irq_chip);
+			irq_set_handler(i, handle_level_irq);
 			set_irq_flags(i, IRQF_VALID);
 		}
 	} else {
Index: linux-2.6-tip/arch/arm/mach-w90x900/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-w90x900/irq.c
+++ linux-2.6-tip/arch/arm/mach-w90x900/irq.c
@@ -207,8 +207,8 @@ void __init nuc900_init_irq(void)
 	__raw_writel(0xFFFFFFFE, REG_AIC_MDCR);
 
 	for (irqno = IRQ_WDT; irqno <= IRQ_ADC; irqno++) {
-		set_irq_chip(irqno, &nuc900_irq_chip);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &nuc900_irq_chip);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/plat-mxc/3ds_debugboard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/3ds_debugboard.c
+++ linux-2.6-tip/arch/arm/plat-mxc/3ds_debugboard.c
@@ -181,12 +181,12 @@ int __init mxc_expio_init(u32 base, u32 
 	__raw_writew(0x1F, brd_io + INTR_MASK_REG);
 	for (i = MXC_EXP_IO_BASE;
 	     i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES); i++) {
-		set_irq_chip(i, &expio_irq_chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &expio_irq_chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
-	set_irq_type(p_irq, IRQF_TRIGGER_LOW);
-	set_irq_chained_handler(p_irq, mxc_expio_irq_handler);
+	irq_set_irq_type(p_irq, IRQF_TRIGGER_LOW);
+	irq_set_chained_handler(p_irq, mxc_expio_irq_handler);
 
 	/* Register Lan device on the debugboard */
 	smsc911x_resources[0].start = LAN9217_BASE_ADDR(base);
Index: linux-2.6-tip/arch/arm/plat-mxc/avic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/avic.c
+++ linux-2.6-tip/arch/arm/plat-mxc/avic.c
@@ -139,8 +139,8 @@ void __init mxc_init_irq(void __iomem *i
 	__raw_writel(0, avic_base + AVIC_INTTYPEH);
 	__raw_writel(0, avic_base + AVIC_INTTYPEL);
 	for (i = 0; i < MXC_INTERNAL_IRQS; i++) {
-		set_irq_chip(i, &mxc_avic_chip.base);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &mxc_avic_chip.base);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-mxc/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/gpio.c
+++ linux-2.6-tip/arch/arm/plat-mxc/gpio.c
@@ -175,7 +175,7 @@ static void mxc_gpio_irq_handler(struct 
 static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
 	u32 irq_stat;
-	struct mxc_gpio_port *port = get_irq_data(irq);
+	struct mxc_gpio_port *port = irq_get_handler_data(irq);
 
 	irq_stat = __raw_readl(port->base + GPIO_ISR) &
 			__raw_readl(port->base + GPIO_IMR);
@@ -188,7 +188,7 @@ static void mx2_gpio_irq_handler(u32 irq
 {
 	int i;
 	u32 irq_msk, irq_stat;
-	struct mxc_gpio_port *port = get_irq_data(irq);
+	struct mxc_gpio_port *port = irq_get_handler_data(irq);
 
 	/* walk through all interrupt status registers */
 	for (i = 0; i < gpio_table_size; i++) {
@@ -311,8 +311,8 @@ int __init mxc_gpio_init(struct mxc_gpio
 		__raw_writel(~0, port[i].base + GPIO_ISR);
 		for (j = port[i].virtual_irq_start;
 			j < port[i].virtual_irq_start + 32; j++) {
-			set_irq_chip(j, &gpio_irq_chip);
-			set_irq_handler(j, handle_level_irq);
+			irq_set_chip(j, &gpio_irq_chip);
+			irq_set_handler(j, handle_level_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 
@@ -331,21 +331,23 @@ int __init mxc_gpio_init(struct mxc_gpio
 
 		if (cpu_is_mx1() || cpu_is_mx3() || cpu_is_mx25() || cpu_is_mx51()) {
 			/* setup one handler for each entry */
-			set_irq_chained_handler(port[i].irq, mx3_gpio_irq_handler);
-			set_irq_data(port[i].irq, &port[i]);
+			irq_set_chained_handler(port[i].irq,
+						mx3_gpio_irq_handler);
+			irq_set_handler_data(port[i].irq, &port[i]);
 			if (port[i].irq_high) {
 				/* setup handler for GPIO 16 to 31 */
-				set_irq_chained_handler(port[i].irq_high,
-						mx3_gpio_irq_handler);
-				set_irq_data(port[i].irq_high, &port[i]);
+				irq_set_chained_handler(port[i].irq_high,
+							mx3_gpio_irq_handler);
+				irq_set_handler_data(port[i].irq_high,
+						     &port[i]);
 			}
 		}
 	}
 
 	if (cpu_is_mx2()) {
 		/* setup one handler for all GPIO interrupts */
-		set_irq_chained_handler(port[0].irq, mx2_gpio_irq_handler);
-		set_irq_data(port[0].irq, port);
+		irq_set_chained_handler(port[0].irq, mx2_gpio_irq_handler);
+		irq_set_handler_data(port[0].irq, port);
 	}
 
 	return 0;
Index: linux-2.6-tip/arch/arm/plat-mxc/irq-common.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/irq-common.c
+++ linux-2.6-tip/arch/arm/plat-mxc/irq-common.c
@@ -29,7 +29,7 @@ int imx_irq_set_priority(unsigned char i
 
 	ret = -ENOSYS;
 
-	base = get_irq_chip(irq);
+	base = irq_get_chip(irq);
 	if (base) {
 		chip = container_of(base, struct mxc_irq_chip, base);
 		if (chip->set_priority)
@@ -48,7 +48,7 @@ int mxc_set_irq_fiq(unsigned int irq, un
 
 	ret = -ENOSYS;
 
-	base = get_irq_chip(irq);
+	base = irq_get_chip(irq);
 	if (base) {
 		chip = container_of(base, struct mxc_irq_chip, base);
 		if (chip->set_irq_fiq)
Index: linux-2.6-tip/arch/arm/plat-mxc/tzic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/tzic.c
+++ linux-2.6-tip/arch/arm/plat-mxc/tzic.c
@@ -167,8 +167,8 @@ void __init tzic_init_irq(void __iomem *
 	/* all IRQ no FIQ Warning :: No selection */
 
 	for (i = 0; i < MXC_INTERNAL_IRQS; i++) {
-		set_irq_chip(i, &mxc_tzic_chip.base);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, &mxc_tzic_chip.base);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-nomadik/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-nomadik/gpio.c
+++ linux-2.6-tip/arch/arm/plat-nomadik/gpio.c
@@ -319,7 +319,7 @@ static int __nmk_config_pins(pin_cfg_t *
 		struct nmk_gpio_chip *nmk_chip;
 		int pin = PIN_NUM(cfgs[i]);
 
-		nmk_chip = get_irq_chip_data(NOMADIK_GPIO_TO_IRQ(pin));
+		nmk_chip = irq_get_chip_data(NOMADIK_GPIO_TO_IRQ(pin));
 		if (!nmk_chip) {
 			ret = -EINVAL;
 			break;
@@ -398,7 +398,7 @@ int nmk_gpio_set_slpm(int gpio, enum nmk
 	struct nmk_gpio_chip *nmk_chip;
 	unsigned long flags;
 
-	nmk_chip = get_irq_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
+	nmk_chip = irq_get_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
 	if (!nmk_chip)
 		return -EINVAL;
 
@@ -431,7 +431,7 @@ int nmk_gpio_set_pull(int gpio, enum nmk
 	struct nmk_gpio_chip *nmk_chip;
 	unsigned long flags;
 
-	nmk_chip = get_irq_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
+	nmk_chip = irq_get_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
 	if (!nmk_chip)
 		return -EINVAL;
 
@@ -457,7 +457,7 @@ int nmk_gpio_set_mode(int gpio, int gpio
 	struct nmk_gpio_chip *nmk_chip;
 	unsigned long flags;
 
-	nmk_chip = get_irq_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
+	nmk_chip = irq_get_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
 	if (!nmk_chip)
 		return -EINVAL;
 
@@ -474,7 +474,7 @@ int nmk_gpio_get_mode(int gpio)
 	struct nmk_gpio_chip *nmk_chip;
 	u32 afunc, bfunc, bit;
 
-	nmk_chip = get_irq_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
+	nmk_chip = irq_get_chip_data(NOMADIK_GPIO_TO_IRQ(gpio));
 	if (!nmk_chip)
 		return -EINVAL;
 
@@ -685,7 +685,7 @@ static void __nmk_gpio_irq_handler(unsig
 				   u32 status)
 {
 	struct nmk_gpio_chip *nmk_chip;
-	struct irq_chip *host_chip = get_irq_chip(irq);
+	struct irq_chip *host_chip = irq_get_chip(irq);
 	unsigned int first_irq;
 
 	if (host_chip->irq_mask_ack)
@@ -696,7 +696,7 @@ static void __nmk_gpio_irq_handler(unsig
 			host_chip->irq_ack(&desc->irq_data);
 	}
 
-	nmk_chip = get_irq_data(irq);
+	nmk_chip = irq_get_handler_data(irq);
 	first_irq = NOMADIK_GPIO_TO_IRQ(nmk_chip->chip.base);
 	while (status) {
 		int bit = __ffs(status);
@@ -710,7 +710,7 @@ static void __nmk_gpio_irq_handler(unsig
 
 static void nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
-	struct nmk_gpio_chip *nmk_chip = get_irq_data(irq);
+	struct nmk_gpio_chip *nmk_chip = irq_get_handler_data(irq);
 	u32 status = readl(nmk_chip->addr + NMK_GPIO_IS);
 
 	__nmk_gpio_irq_handler(irq, desc, status);
@@ -719,7 +719,7 @@ static void nmk_gpio_irq_handler(unsigne
 static void nmk_gpio_secondary_irq_handler(unsigned int irq,
 					   struct irq_desc *desc)
 {
-	struct nmk_gpio_chip *nmk_chip = get_irq_data(irq);
+	struct nmk_gpio_chip *nmk_chip = irq_get_handler_data(irq);
 	u32 status = nmk_chip->get_secondary_status(nmk_chip->bank);
 
 	__nmk_gpio_irq_handler(irq, desc, status);
@@ -732,20 +732,20 @@ static int nmk_gpio_init_irq(struct nmk_
 
 	first_irq = NOMADIK_GPIO_TO_IRQ(nmk_chip->chip.base);
 	for (i = first_irq; i < first_irq + nmk_chip->chip.ngpio; i++) {
-		set_irq_chip(i, &nmk_gpio_irq_chip);
-		set_irq_handler(i, handle_edge_irq);
+		irq_set_chip(i, &nmk_gpio_irq_chip);
+		irq_set_handler(i, handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
-		set_irq_chip_data(i, nmk_chip);
-		set_irq_type(i, IRQ_TYPE_EDGE_FALLING);
+		irq_set_chip_data(i, nmk_chip);
+		irq_set_irq_type(i, IRQ_TYPE_EDGE_FALLING);
 	}
 
-	set_irq_chained_handler(nmk_chip->parent_irq, nmk_gpio_irq_handler);
-	set_irq_data(nmk_chip->parent_irq, nmk_chip);
+	irq_set_chained_handler(nmk_chip->parent_irq, nmk_gpio_irq_handler);
+	irq_set_handler_data(nmk_chip->parent_irq, nmk_chip);
 
 	if (nmk_chip->secondary_parent_irq >= 0) {
-		set_irq_chained_handler(nmk_chip->secondary_parent_irq,
+		irq_set_chained_handler(nmk_chip->secondary_parent_irq,
 					nmk_gpio_secondary_irq_handler);
-		set_irq_data(nmk_chip->secondary_parent_irq, nmk_chip);
+		irq_set_handler_data(nmk_chip->secondary_parent_irq, nmk_chip);
 	}
 
 	return 0;
Index: linux-2.6-tip/arch/arm/plat-omap/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-omap/gpio.c
+++ linux-2.6-tip/arch/arm/plat-omap/gpio.c
@@ -758,9 +758,9 @@ static int gpio_irq_type(struct irq_data
 	spin_unlock_irqrestore(&bank->lock, flags);
 
 	if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
-		__set_irq_handler_unlocked(d->irq, handle_level_irq);
+		__irq_set_handler_locked(d->irq, handle_level_irq);
 	else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
-		__set_irq_handler_unlocked(d->irq, handle_edge_irq);
+		__irq_set_handler_locked(d->irq, handle_edge_irq);
 
 	return retval;
 }
@@ -1140,7 +1140,7 @@ static void gpio_irq_handler(unsigned in
 
 	desc->irq_data.chip->irq_ack(&desc->irq_data);
 
-	bank = get_irq_data(irq);
+	bank = irq_get_handler_data(irq);
 #ifdef CONFIG_ARCH_OMAP1
 	if (bank->method == METHOD_MPUIO)
 		isr_reg = bank->base +
@@ -1666,16 +1666,16 @@ static void __init omap_gpio_chip_init(s
 	for (j = bank->virtual_irq_start;
 		     j < bank->virtual_irq_start + bank_width; j++) {
 		irq_set_lockdep_class(j, &gpio_lock_class);
-		set_irq_chip_data(j, bank);
+		irq_set_chip_data(j, bank);
 		if (bank_is_mpuio(bank))
-			set_irq_chip(j, &mpuio_irq_chip);
+			irq_set_chip(j, &mpuio_irq_chip);
 		else
-			set_irq_chip(j, &gpio_irq_chip);
-		set_irq_handler(j, handle_simple_irq);
+			irq_set_chip(j, &gpio_irq_chip);
+		irq_set_handler(j, handle_simple_irq);
 		set_irq_flags(j, IRQF_VALID);
 	}
-	set_irq_chained_handler(bank->irq, gpio_irq_handler);
-	set_irq_data(bank->irq, bank);
+	irq_set_chained_handler(bank->irq, gpio_irq_handler);
+	irq_set_handler_data(bank->irq, bank);
 }
 
 static int __devinit omap_gpio_probe(struct platform_device *pdev)
Index: linux-2.6-tip/arch/arm/plat-orion/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-orion/gpio.c
+++ linux-2.6-tip/arch/arm/plat-orion/gpio.c
@@ -474,9 +474,9 @@ void __init orion_gpio_init(int gpio_bas
 	for (i = 0; i < ngpio; i++) {
 		unsigned int irq = secondary_irq_base + i;
 
-		set_irq_chip(irq, &orion_gpio_irq_chip);
-		set_irq_handler(irq, handle_level_irq);
-		set_irq_chip_data(irq, ochip);
+		irq_set_chip(irq, &orion_gpio_irq_chip);
+		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_data(irq, ochip);
 		irq_set_status_flags(irq, IRQ_LEVEL);
 		set_irq_flags(irq, IRQF_VALID);
 	}
Index: linux-2.6-tip/arch/arm/plat-orion/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-orion/irq.c
+++ linux-2.6-tip/arch/arm/plat-orion/irq.c
@@ -56,9 +56,9 @@ void __init orion_irq_init(unsigned int 
 	for (i = 0; i < 32; i++) {
 		unsigned int irq = irq_start + i;
 
-		set_irq_chip(irq, &orion_irq_chip);
-		set_irq_chip_data(irq, maskaddr);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &orion_irq_chip);
+		irq_set_chip_data(irq, maskaddr);
+		irq_set_handler(irq, handle_level_irq);
 		irq_set_status_flags(irq, IRQ_LEVEL);
 		set_irq_flags(irq, IRQF_VALID);
 	}
Index: linux-2.6-tip/arch/arm/plat-pxa/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-pxa/gpio.c
+++ linux-2.6-tip/arch/arm/plat-pxa/gpio.c
@@ -284,13 +284,13 @@ void __init pxa_init_gpio(int mux_irq, i
 	}
 
 	for (irq  = gpio_to_irq(start); irq <= gpio_to_irq(end); irq++) {
-		set_irq_chip(irq, &pxa_muxed_gpio_chip);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &pxa_muxed_gpio_chip);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	/* Install handler for GPIO>=2 edge detect interrupts */
-	set_irq_chained_handler(mux_irq, pxa_gpio_demux_handler);
+	irq_set_chained_handler(mux_irq, pxa_gpio_demux_handler);
 	pxa_muxed_gpio_chip.irq_set_wake = fn;
 }
 
Index: linux-2.6-tip/arch/arm/plat-s3c24xx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-s3c24xx/irq.c
+++ linux-2.6-tip/arch/arm/plat-s3c24xx/irq.c
@@ -592,8 +592,8 @@ void __init s3c24xx_init_irq(void)
 		case IRQ_UART1:
 		case IRQ_UART2:
 		case IRQ_ADCPARENT:
-			set_irq_chip(irqno, &s3c_irq_level_chip);
-			set_irq_handler(irqno, handle_level_irq);
+			irq_set_chip(irqno, &s3c_irq_level_chip);
+			irq_set_handler(irqno, handle_level_irq);
 			break;
 
 		case IRQ_RESERVED6:
@@ -603,35 +603,35 @@ void __init s3c24xx_init_irq(void)
 
 		default:
 			//irqdbf("registering irq %d (s3c irq)\n", irqno);
-			set_irq_chip(irqno, &s3c_irq_chip);
-			set_irq_handler(irqno, handle_edge_irq);
+			irq_set_chip(irqno, &s3c_irq_chip);
+			irq_set_handler(irqno, handle_edge_irq);
 			set_irq_flags(irqno, IRQF_VALID);
 		}
 	}
 
 	/* setup the cascade irq handlers */
 
-	set_irq_chained_handler(IRQ_EINT4t7, s3c_irq_demux_extint4t7);
-	set_irq_chained_handler(IRQ_EINT8t23, s3c_irq_demux_extint8);
+	irq_set_chained_handler(IRQ_EINT4t7, s3c_irq_demux_extint4t7);
+	irq_set_chained_handler(IRQ_EINT8t23, s3c_irq_demux_extint8);
 
-	set_irq_chained_handler(IRQ_UART0, s3c_irq_demux_uart0);
-	set_irq_chained_handler(IRQ_UART1, s3c_irq_demux_uart1);
-	set_irq_chained_handler(IRQ_UART2, s3c_irq_demux_uart2);
-	set_irq_chained_handler(IRQ_ADCPARENT, s3c_irq_demux_adc);
+	irq_set_chained_handler(IRQ_UART0, s3c_irq_demux_uart0);
+	irq_set_chained_handler(IRQ_UART1, s3c_irq_demux_uart1);
+	irq_set_chained_handler(IRQ_UART2, s3c_irq_demux_uart2);
+	irq_set_chained_handler(IRQ_ADCPARENT, s3c_irq_demux_adc);
 
 	/* external interrupts */
 
 	for (irqno = IRQ_EINT0; irqno <= IRQ_EINT3; irqno++) {
 		irqdbf("registering irq %d (ext int)\n", irqno);
-		set_irq_chip(irqno, &s3c_irq_eint0t4);
-		set_irq_handler(irqno, handle_edge_irq);
+		irq_set_chip(irqno, &s3c_irq_eint0t4);
+		irq_set_handler(irqno, handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_EINT4; irqno <= IRQ_EINT23; irqno++) {
 		irqdbf("registering irq %d (extended s3c irq)\n", irqno);
-		set_irq_chip(irqno, &s3c_irqext_chip);
-		set_irq_handler(irqno, handle_edge_irq);
+		irq_set_chip(irqno, &s3c_irqext_chip);
+		irq_set_handler(irqno, handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
@@ -641,29 +641,29 @@ void __init s3c24xx_init_irq(void)
 
 	for (irqno = IRQ_S3CUART_RX0; irqno <= IRQ_S3CUART_ERR0; irqno++) {
 		irqdbf("registering irq %d (s3c uart0 irq)\n", irqno);
-		set_irq_chip(irqno, &s3c_irq_uart0);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &s3c_irq_uart0);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_S3CUART_RX1; irqno <= IRQ_S3CUART_ERR1; irqno++) {
 		irqdbf("registering irq %d (s3c uart1 irq)\n", irqno);
-		set_irq_chip(irqno, &s3c_irq_uart1);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &s3c_irq_uart1);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_S3CUART_RX2; irqno <= IRQ_S3CUART_ERR2; irqno++) {
 		irqdbf("registering irq %d (s3c uart2 irq)\n", irqno);
-		set_irq_chip(irqno, &s3c_irq_uart2);
-		set_irq_handler(irqno, handle_level_irq);
+		irq_set_chip(irqno, &s3c_irq_uart2);
+		irq_set_handler(irqno, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_TC; irqno <= IRQ_ADC; irqno++) {
 		irqdbf("registering irq %d (s3c adc irq)\n", irqno);
-		set_irq_chip(irqno, &s3c_irq_adc);
-		set_irq_handler(irqno, handle_edge_irq);
+		irq_set_chip(irqno, &s3c_irq_adc);
+		irq_set_handler(irqno, handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-s5p/irq-eint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-s5p/irq-eint.c
+++ linux-2.6-tip/arch/arm/plat-s5p/irq-eint.c
@@ -205,15 +205,15 @@ int __init s5p_init_irq_eint(void)
 	int irq;
 
 	for (irq = IRQ_EINT(0); irq <= IRQ_EINT(15); irq++)
-		set_irq_chip(irq, &s5p_irq_vic_eint);
+		irq_set_chip(irq, &s5p_irq_vic_eint);
 
 	for (irq = IRQ_EINT(16); irq <= IRQ_EINT(31); irq++) {
-		set_irq_chip(irq, &s5p_irq_eint);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &s5p_irq_eint);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
-	set_irq_chained_handler(IRQ_EINT16_31, s5p_irq_demux_eint16_31);
+	irq_set_chained_handler(IRQ_EINT16_31, s5p_irq_demux_eint16_31);
 	return 0;
 }
 
Index: linux-2.6-tip/arch/arm/plat-s5p/irq-gpioint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-s5p/irq-gpioint.c
+++ linux-2.6-tip/arch/arm/plat-s5p/irq-gpioint.c
@@ -43,13 +43,13 @@ LIST_HEAD(banks);
 
 static int s5p_gpioint_get_offset(struct irq_data *data)
 {
-	struct s3c_gpio_chip *chip = irq_data_get_irq_data(data);
+	struct s3c_gpio_chip *chip = irq_data_get_irq_handler_data(data);
 	return data->irq - chip->irq_base;
 }
 
 static void s5p_gpioint_ack(struct irq_data *data)
 {
-	struct s3c_gpio_chip *chip = irq_data_get_irq_data(data);
+	struct s3c_gpio_chip *chip = irq_data_get_irq_handler_data(data);
 	int group, offset, pend_offset;
 	unsigned int value;
 
@@ -64,7 +64,7 @@ static void s5p_gpioint_ack(struct irq_d
 
 static void s5p_gpioint_mask(struct irq_data *data)
 {
-	struct s3c_gpio_chip *chip = irq_data_get_irq_data(data);
+	struct s3c_gpio_chip *chip = irq_data_get_irq_handler_data(data);
 	int group, offset, mask_offset;
 	unsigned int value;
 
@@ -79,7 +79,7 @@ static void s5p_gpioint_mask(struct irq_
 
 static void s5p_gpioint_unmask(struct irq_data *data)
 {
-	struct s3c_gpio_chip *chip = irq_data_get_irq_data(data);
+	struct s3c_gpio_chip *chip = irq_data_get_irq_handler_data(data);
 	int group, offset, mask_offset;
 	unsigned int value;
 
@@ -100,7 +100,7 @@ static void s5p_gpioint_mask_ack(struct 
 
 static int s5p_gpioint_set_type(struct irq_data *data, unsigned int type)
 {
-	struct s3c_gpio_chip *chip = irq_data_get_irq_data(data);
+	struct s3c_gpio_chip *chip = irq_data_get_irq_handler_data(data);
 	int group, offset, con_offset;
 	unsigned int value;
 
@@ -149,7 +149,7 @@ static struct irq_chip s5p_gpioint = {
 
 static void s5p_gpioint_handler(unsigned int irq, struct irq_desc *desc)
 {
-	struct s5p_gpioint_bank *bank = get_irq_data(irq);
+	struct s5p_gpioint_bank *bank = irq_get_handler_data(irq);
 	int group, pend_offset, mask_offset;
 	unsigned int pend, mask;
 
@@ -200,8 +200,8 @@ static __init int s5p_gpioint_add(struct
 		if (!bank->chips)
 			return -ENOMEM;
 
-		set_irq_chained_handler(bank->irq, s5p_gpioint_handler);
-		set_irq_data(bank->irq, bank);
+		irq_set_chained_handler(bank->irq, s5p_gpioint_handler);
+		irq_set_handler_data(bank->irq, bank);
 		bank->handler = s5p_gpioint_handler;
 		printk(KERN_INFO "Registered chained gpio int handler for interrupt %d.\n",
 		       bank->irq);
@@ -219,9 +219,9 @@ static __init int s5p_gpioint_add(struct
 	bank->chips[group - bank->start] = chip;
 	for (i = 0; i < chip->chip.ngpio; i++) {
 		irq = chip->irq_base + i;
-		set_irq_chip(irq, &s5p_gpioint);
-		set_irq_data(irq, chip);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &s5p_gpioint);
+		irq_set_handler_data(irq, chip);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 	return 0;
Index: linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-samsung/irq-uart.c
+++ linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
@@ -117,9 +117,9 @@ static void __init s3c_init_uart_irq(str
 	for (offs = 0; offs < 3; offs++) {
 		irq = uirq->base_irq + offs;
 
-		set_irq_chip(irq, &s3c_irq_uart);
-		set_irq_chip_data(irq, uirq);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &s3c_irq_uart);
+		irq_set_chip_data(irq, uirq);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-spear/shirq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-spear/shirq.c
+++ linux-2.6-tip/arch/arm/plat-spear/shirq.c
@@ -68,7 +68,7 @@ static struct irq_chip shirq_chip = {
 static void shirq_handler(unsigned irq, struct irq_desc *desc)
 {
 	u32 i, val, mask;
-	struct spear_shirq *shirq = get_irq_data(irq);
+	struct spear_shirq *shirq = irq_get_handler_data(irq);
 
 	desc->irq_data.chip->irq_ack(&desc->irq_data);
 	while ((val = readl(shirq->regs.base + shirq->regs.status_reg) &
@@ -105,14 +105,14 @@ int spear_shirq_register(struct spear_sh
 	if (!shirq->dev_count)
 		return -EINVAL;
 
-	set_irq_chained_handler(shirq->irq, shirq_handler);
+	irq_set_chained_handler(shirq->irq, shirq_handler);
 	for (i = 0; i < shirq->dev_count; i++) {
-		set_irq_chip(shirq->dev_config[i].virq, &shirq_chip);
-		set_irq_handler(shirq->dev_config[i].virq, handle_simple_irq);
+		irq_set_chip(shirq->dev_config[i].virq, &shirq_chip);
+		irq_set_handler(shirq->dev_config[i].virq, handle_simple_irq);
 		set_irq_flags(shirq->dev_config[i].virq, IRQF_VALID);
-		set_irq_chip_data(shirq->dev_config[i].virq, shirq);
+		irq_set_chip_data(shirq->dev_config[i].virq, shirq);
 	}
 
-	set_irq_data(shirq->irq, shirq);
+	irq_set_handler_data(shirq->irq, shirq);
 	return 0;
 }
Index: linux-2.6-tip/arch/arm/plat-stmp3xxx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-stmp3xxx/irq.c
+++ linux-2.6-tip/arch/arm/plat-stmp3xxx/irq.c
@@ -35,8 +35,8 @@ void __init stmp3xxx_init_irq(struct irq
 	/* Disable all interrupts initially */
 	for (i = 0; i < NR_REAL_IRQS; i++) {
 		chip->irq_mask(irq_get_irq_data(i));
-		set_irq_chip(i, chip);
-		set_irq_handler(i, handle_level_irq);
+		irq_set_chip(i, chip);
+		irq_set_handler(i, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-stmp3xxx/pinmux.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-stmp3xxx/pinmux.c
+++ linux-2.6-tip/arch/arm/plat-stmp3xxx/pinmux.c
@@ -489,7 +489,7 @@ static void stmp3xxx_gpio_free(struct gp
 
 static void stmp3xxx_gpio_irq(u32 irq, struct irq_desc *desc)
 {
-	struct stmp3xxx_pinmux_bank *pm = get_irq_data(irq);
+	struct stmp3xxx_pinmux_bank *pm = irq_get_handler_data(irq);
 	int gpio_irq = pm->virq;
 	u32 stat = __raw_readl(pm->irqstat);
 
@@ -533,15 +533,15 @@ int __init stmp3xxx_pinmux_init(int virt
 
 		for (virq = pm->virq; virq < pm->virq; virq++) {
 			gpio_irq_chip.irq_mask(irq_get_irq_data(virq));
-			set_irq_chip(virq, &gpio_irq_chip);
-			set_irq_handler(virq, handle_level_irq);
+			irq_set_chip(virq, &gpio_irq_chip);
+			irq_set_handler(virq, handle_level_irq);
 			set_irq_flags(virq, IRQF_VALID);
 		}
 		r = gpiochip_add(&pm->chip);
 		if (r < 0)
 			break;
-		set_irq_chained_handler(pm->irq, stmp3xxx_gpio_irq);
-		set_irq_data(pm->irq, pm);
+		irq_set_chained_handler(pm->irq, stmp3xxx_gpio_irq);
+		irq_set_handler_data(pm->irq, pm);
 	}
 	return r;
 }



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 22/23] arm: Reorder irq_set_ function calls
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (20 preceding siblings ...)
  2011-03-25 13:22 ` [patch 21/23] arm: Cleanup the irq namespace Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  2011-03-25 13:22 ` [patch 23/23] arm: Fold irq_set_chip/irq_set_handler Thomas Gleixner
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-flip-chip-data-handler.patch --]
[-- Type: text/plain, Size: 6237 bytes --]

Reorder 
irq_set_chip()
irq_set_chip_data()
irq_set_handler()

to

irq_set_chip()
irq_set_handler()
irq_set_chip_data()

so the next patch can combine irq_set_chip() and irq_set_handler() to
irq_set_chip_and_handler().

Automated conversion with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/common/gic.c                |    2 +-
 arch/arm/common/locomo.c             |    2 +-
 arch/arm/common/sa1111.c             |    4 ++--
 arch/arm/common/vic.c                |    2 +-
 arch/arm/mach-exynos4/irq-combiner.c |    2 +-
 arch/arm/mach-pxa/irq.c              |    4 ++--
 arch/arm/mach-s3c64xx/irq-eint.c     |    2 +-
 arch/arm/plat-orion/irq.c            |    2 +-
 arch/arm/plat-samsung/irq-uart.c     |    2 +-
 9 files changed, 11 insertions(+), 11 deletions(-)

Index: linux-2.6-tip/arch/arm/common/gic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/gic.c
+++ linux-2.6-tip/arch/arm/common/gic.c
@@ -320,8 +320,8 @@ static void __init gic_dist_init(struct 
 	 */
 	for (i = irq_start; i < irq_limit; i++) {
 		irq_set_chip(i, &gic_chip);
-		irq_set_chip_data(i, gic);
 		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_data(i, gic);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/common/locomo.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/locomo.c
+++ linux-2.6-tip/arch/arm/common/locomo.c
@@ -204,8 +204,8 @@ static void locomo_setup_irq(struct loco
 	/* Install handlers for IRQ_LOCOMO_* */
 	for ( ; irq <= lchip->irq_base + 3; irq++) {
 		irq_set_chip(irq, &locomo_chip);
-		irq_set_chip_data(irq, lchip);
 		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_data(irq, lchip);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/common/sa1111.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/sa1111.c
+++ linux-2.6-tip/arch/arm/common/sa1111.c
@@ -473,15 +473,15 @@ static void sa1111_setup_irq(struct sa11
 
 	for (irq = IRQ_GPAIN0; irq <= SSPROR; irq++) {
 		irq_set_chip(irq, &sa1111_low_chip);
-		irq_set_chip_data(irq, sachip);
 		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_data(irq, sachip);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	for (irq = AUDXMTDMADONEA; irq <= IRQ_S1_BVD1_STSCHG; irq++) {
 		irq_set_chip(irq, &sa1111_high_chip);
-		irq_set_chip_data(irq, sachip);
 		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_data(irq, sachip);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/common/vic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/vic.c
+++ linux-2.6-tip/arch/arm/common/vic.c
@@ -306,8 +306,8 @@ static void __init vic_set_irq_sources(v
 			unsigned int irq = irq_start + i;
 
 			irq_set_chip(irq, &vic_chip);
-			irq_set_chip_data(irq, base);
 			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_data(irq, base);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-exynos4/irq-combiner.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-exynos4/irq-combiner.c
+++ linux-2.6-tip/arch/arm/mach-exynos4/irq-combiner.c
@@ -120,8 +120,8 @@ void __init combiner_init(unsigned int c
 	for (i = irq_start; i < combiner_data[combiner_nr].irq_offset
 				+ MAX_IRQ_IN_COMBINER; i++) {
 		irq_set_chip(i, &combiner_chip);
-		irq_set_chip_data(i, &combiner_data[combiner_nr]);
 		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_data(i, &combiner_data[combiner_nr]);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-pxa/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/irq.c
+++ linux-2.6-tip/arch/arm/mach-pxa/irq.c
@@ -138,8 +138,8 @@ static void __init pxa_init_low_gpio_irq
 
 	for (irq = IRQ_GPIO0; irq <= IRQ_GPIO1; irq++) {
 		irq_set_chip(irq, &pxa_low_gpio_chip);
-		irq_set_chip_data(irq, irq_base(0));
 		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_data(irq, irq_base(0));
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
@@ -166,8 +166,8 @@ void __init pxa_init_irq(int irq_nr, set
 
 			irq = PXA_IRQ(i);
 			irq_set_chip(irq, &pxa_internal_irq_chip);
-			irq_set_chip_data(irq, base);
 			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_data(irq, base);
 			set_irq_flags(irq, IRQF_VALID);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-s3c64xx/irq-eint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c64xx/irq-eint.c
+++ linux-2.6-tip/arch/arm/mach-s3c64xx/irq-eint.c
@@ -198,8 +198,8 @@ static int __init s3c64xx_init_irq_eint(
 
 	for (irq = IRQ_EINT(0); irq <= IRQ_EINT(27); irq++) {
 		irq_set_chip(irq, &s3c_irq_eint);
-		irq_set_chip_data(irq, (void *)eint_irq_to_bit(irq));
 		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_data(irq, (void *)eint_irq_to_bit(irq));
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-orion/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-orion/irq.c
+++ linux-2.6-tip/arch/arm/plat-orion/irq.c
@@ -57,8 +57,8 @@ void __init orion_irq_init(unsigned int 
 		unsigned int irq = irq_start + i;
 
 		irq_set_chip(irq, &orion_irq_chip);
-		irq_set_chip_data(irq, maskaddr);
 		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_data(irq, maskaddr);
 		irq_set_status_flags(irq, IRQ_LEVEL);
 		set_irq_flags(irq, IRQF_VALID);
 	}
Index: linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-samsung/irq-uart.c
+++ linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
@@ -118,8 +118,8 @@ static void __init s3c_init_uart_irq(str
 		irq = uirq->base_irq + offs;
 
 		irq_set_chip(irq, &s3c_irq_uart);
-		irq_set_chip_data(irq, uirq);
 		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_data(irq, uirq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 



^ permalink raw reply	[flat|nested] 32+ messages in thread

* [patch 23/23] arm: Fold irq_set_chip/irq_set_handler
  2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
                   ` (21 preceding siblings ...)
  2011-03-25 13:22 ` [patch 22/23] arm: Reorder irq_set_ function calls Thomas Gleixner
@ 2011-03-25 13:22 ` Thomas Gleixner
  22 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 13:22 UTC (permalink / raw)
  To: LKML; +Cc: LAK, Russell King, Lennert Buytenhek

[-- Attachment #1: arm-fold-chip-handler.patch --]
[-- Type: text/plain, Size: 65319 bytes --]

Use irq_set_chip_and_handler() instead. Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 arch/arm/common/gic.c                    |    3 +--
 arch/arm/common/it8152.c                 |    4 ++--
 arch/arm/common/locomo.c                 |    3 +--
 arch/arm/common/sa1111.c                 |    8 ++++----
 arch/arm/common/vic.c                    |    4 ++--
 arch/arm/kernel/ecard.c                  |    4 ++--
 arch/arm/mach-at91/gpio.c                |    4 ++--
 arch/arm/mach-at91/irq.c                 |    3 +--
 arch/arm/mach-clps711x/irq.c             |    8 ++++----
 arch/arm/mach-dove/irq.c                 |    3 +--
 arch/arm/mach-ebsa110/core.c             |    4 ++--
 arch/arm/mach-ep93xx/gpio.c              |    4 ++--
 arch/arm/mach-exynos4/irq-combiner.c     |    3 +--
 arch/arm/mach-exynos4/irq-eint.c         |    4 ++--
 arch/arm/mach-footbridge/common.c        |    3 +--
 arch/arm/mach-footbridge/isa-irq.c       |    8 ++++----
 arch/arm/mach-gemini/gpio.c              |    4 ++--
 arch/arm/mach-h720x/common.c             |   12 ++++++------
 arch/arm/mach-h720x/cpu-h7202.c          |    4 ++--
 arch/arm/mach-integrator/integrator_ap.c |    4 ++--
 arch/arm/mach-integrator/integrator_cp.c |    9 +++------
 arch/arm/mach-iop32x/irq.c               |    3 +--
 arch/arm/mach-iop33x/irq.c               |    6 +++---
 arch/arm/mach-ixp2000/core.c             |   16 ++++++++--------
 arch/arm/mach-ixp2000/ixdp2x00.c         |    4 ++--
 arch/arm/mach-ixp2000/ixdp2x01.c         |    4 ++--
 arch/arm/mach-ixp23xx/core.c             |   12 ++++++------
 arch/arm/mach-ixp23xx/ixdp2351.c         |    8 ++++----
 arch/arm/mach-ixp4xx/common.c            |    4 ++--
 arch/arm/mach-ks8695/irq.c               |   18 ++++++++++--------
 arch/arm/mach-lpc32xx/irq.c              |    4 ++--
 arch/arm/mach-mmp/irq-pxa168.c           |    3 +--
 arch/arm/mach-msm/board-trout-gpio.c     |    4 ++--
 arch/arm/mach-msm/gpio-v2.c              |    4 ++--
 arch/arm/mach-msm/gpio.c                 |    4 ++--
 arch/arm/mach-msm/irq-vic.c              |    3 +--
 arch/arm/mach-msm/irq.c                  |    3 +--
 arch/arm/mach-msm/sirc.c                 |    3 +--
 arch/arm/mach-mx3/mach-mx31ads.c         |    3 +--
 arch/arm/mach-mxs/gpio.c                 |    4 ++--
 arch/arm/mach-mxs/icoll.c                |    3 +--
 arch/arm/mach-netx/generic.c             |    4 ++--
 arch/arm/mach-ns9xxx/board-a9m9750dev.c  |    4 ++--
 arch/arm/mach-nuc93x/irq.c               |    4 ++--
 arch/arm/mach-omap1/irq.c                |    4 ++--
 arch/arm/mach-omap2/irq.c                |    3 +--
 arch/arm/mach-pxa/balloon3.c             |    4 ++--
 arch/arm/mach-pxa/irq.c                  |    8 ++++----
 arch/arm/mach-pxa/lpd270.c               |    4 ++--
 arch/arm/mach-pxa/lubbock.c              |    4 ++--
 arch/arm/mach-pxa/mainstone.c            |    4 ++--
 arch/arm/mach-pxa/pcm990-baseboard.c     |    4 ++--
 arch/arm/mach-pxa/pxa3xx.c               |    4 ++--
 arch/arm/mach-pxa/viper.c                |    4 ++--
 arch/arm/mach-pxa/zeus.c                 |    4 ++--
 arch/arm/mach-rpc/irq.c                  |   12 ++++++------
 arch/arm/mach-s3c2410/bast-irq.c         |    4 ++--
 arch/arm/mach-s3c2412/irq.c              |    8 ++++----
 arch/arm/mach-s3c2416/irq.c              |    6 ++----
 arch/arm/mach-s3c2440/irq.c              |    8 ++++----
 arch/arm/mach-s3c2440/s3c244x-irq.c      |   12 ++++++------
 arch/arm/mach-s3c2443/irq.c              |    6 ++----
 arch/arm/mach-s3c64xx/irq-eint.c         |    3 +--
 arch/arm/mach-sa1100/irq.c               |   12 ++++++------
 arch/arm/mach-shark/irq.c                |    3 +--
 arch/arm/mach-tegra/gpio.c               |    4 ++--
 arch/arm/mach-tegra/irq.c                |    3 +--
 arch/arm/mach-ux500/modem-irq-db5500.c   |    3 +--
 arch/arm/mach-versatile/core.c           |    4 ++--
 arch/arm/mach-vt8500/irq.c               |    8 ++++----
 arch/arm/mach-w90x900/irq.c              |    4 ++--
 arch/arm/plat-mxc/3ds_debugboard.c       |    3 +--
 arch/arm/plat-mxc/avic.c                 |    4 ++--
 arch/arm/plat-mxc/gpio.c                 |    4 ++--
 arch/arm/plat-mxc/tzic.c                 |    4 ++--
 arch/arm/plat-nomadik/gpio.c             |    4 ++--
 arch/arm/plat-orion/gpio.c               |    4 ++--
 arch/arm/plat-orion/irq.c                |    4 ++--
 arch/arm/plat-pxa/gpio.c                 |    4 ++--
 arch/arm/plat-s3c24xx/irq.c              |   31 +++++++++++++++----------------
 arch/arm/plat-s5p/irq-eint.c             |    3 +--
 arch/arm/plat-samsung/irq-uart.c         |    3 +--
 arch/arm/plat-spear/shirq.c              |    4 ++--
 arch/arm/plat-stmp3xxx/irq.c             |    3 +--
 arch/arm/plat-stmp3xxx/pinmux.c          |    4 ++--
 85 files changed, 213 insertions(+), 241 deletions(-)

Index: linux-2.6-tip/arch/arm/common/gic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/gic.c
+++ linux-2.6-tip/arch/arm/common/gic.c
@@ -319,8 +319,7 @@ static void __init gic_dist_init(struct 
 	 * Setup the Linux IRQ subsystem.
 	 */
 	for (i = irq_start; i < irq_limit; i++) {
-		irq_set_chip(i, &gic_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &gic_chip, handle_level_irq);
 		irq_set_chip_data(i, gic);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
Index: linux-2.6-tip/arch/arm/common/it8152.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/it8152.c
+++ linux-2.6-tip/arch/arm/common/it8152.c
@@ -88,8 +88,8 @@ void it8152_init_irq(void)
 	__raw_writel((0), IT8152_INTC_LDCNIRR);
 
 	for (irq = IT8152_IRQ(0); irq <= IT8152_LAST_IRQ; irq++) {
-		irq_set_chip(irq, &it8152_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &it8152_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/common/locomo.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/locomo.c
+++ linux-2.6-tip/arch/arm/common/locomo.c
@@ -203,8 +203,7 @@ static void locomo_setup_irq(struct loco
 
 	/* Install handlers for IRQ_LOCOMO_* */
 	for ( ; irq <= lchip->irq_base + 3; irq++) {
-		irq_set_chip(irq, &locomo_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &locomo_chip, handle_level_irq);
 		irq_set_chip_data(irq, lchip);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
Index: linux-2.6-tip/arch/arm/common/sa1111.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/sa1111.c
+++ linux-2.6-tip/arch/arm/common/sa1111.c
@@ -472,15 +472,15 @@ static void sa1111_setup_irq(struct sa11
 	sa1111_writel(~0, irqbase + SA1111_INTSTATCLR1);
 
 	for (irq = IRQ_GPAIN0; irq <= SSPROR; irq++) {
-		irq_set_chip(irq, &sa1111_low_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &sa1111_low_chip,
+					 handle_edge_irq);
 		irq_set_chip_data(irq, sachip);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	for (irq = AUDXMTDMADONEA; irq <= IRQ_S1_BVD1_STSCHG; irq++) {
-		irq_set_chip(irq, &sa1111_high_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &sa1111_high_chip,
+					 handle_edge_irq);
 		irq_set_chip_data(irq, sachip);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
Index: linux-2.6-tip/arch/arm/common/vic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/common/vic.c
+++ linux-2.6-tip/arch/arm/common/vic.c
@@ -305,8 +305,8 @@ static void __init vic_set_irq_sources(v
 		if (vic_sources & (1 << i)) {
 			unsigned int irq = irq_start + i;
 
-			irq_set_chip(irq, &vic_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &vic_chip,
+						 handle_level_irq);
 			irq_set_chip_data(irq, base);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
Index: linux-2.6-tip/arch/arm/kernel/ecard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/kernel/ecard.c
+++ linux-2.6-tip/arch/arm/kernel/ecard.c
@@ -1043,8 +1043,8 @@ ecard_probe(int slot, card_type_t type)
 	 */
 	if (slot < 8) {
 		ec->irq = 32 + slot;
-		irq_set_chip(ec->irq, &ecard_chip);
-		irq_set_handler(ec->irq, handle_level_irq);
+		irq_set_chip_and_handler(ec->irq, &ecard_chip,
+					 handle_level_irq);
 		set_irq_flags(ec->irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-at91/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-at91/gpio.c
+++ linux-2.6-tip/arch/arm/mach-at91/gpio.c
@@ -511,8 +511,8 @@ void __init at91_gpio_irq_setup(void)
 			 * Can use the "simple" and not "edge" handler since it's
 			 * shorter, and the AIC handles interrupts sanely.
 			 */
-			irq_set_chip(pin, &gpio_irqchip);
-			irq_set_handler(pin, handle_simple_irq);
+			irq_set_chip_and_handler(pin, &gpio_irqchip,
+						 handle_simple_irq);
 			set_irq_flags(pin, IRQF_VALID);
 		}
 
Index: linux-2.6-tip/arch/arm/mach-at91/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-at91/irq.c
+++ linux-2.6-tip/arch/arm/mach-at91/irq.c
@@ -143,8 +143,7 @@ void __init at91_aic_init(unsigned int p
 		/* Active Low interrupt, with the specified priority */
 		at91_sys_write(AT91_AIC_SMR(i), AT91_AIC_SRCTYPE_LOW | priority[i]);
 
-		irq_set_chip(i, &at91_aic_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &at91_aic_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 
 		/* Perform 8 End Of Interrupt Command to make sure AIC will not Lock out nIRQ */
Index: linux-2.6-tip/arch/arm/mach-clps711x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-clps711x/irq.c
+++ linux-2.6-tip/arch/arm/mach-clps711x/irq.c
@@ -112,13 +112,13 @@ void __init clps711x_init_irq(void)
 
 	for (i = 0; i < NR_IRQS; i++) {
 	        if (INT1_IRQS & (1 << i)) {
-	        	irq_set_handler(i, handle_level_irq);
-	        	irq_set_chip(i, &int1_chip);
+	        	irq_set_chip_and_handler(i, &int1_chip,
+						 handle_level_irq);
 	        	set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}
 		if (INT2_IRQS & (1 << i)) {
-			irq_set_handler(i, handle_level_irq);
-			irq_set_chip(i, &int2_chip);
+			irq_set_chip_and_handler(i, &int2_chip,
+						 handle_level_irq);
 			set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}			
 	}
Index: linux-2.6-tip/arch/arm/mach-dove/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-dove/irq.c
+++ linux-2.6-tip/arch/arm/mach-dove/irq.c
@@ -121,8 +121,7 @@ void __init dove_init_irq(void)
 	writel(0, PMU_INTERRUPT_CAUSE);
 
 	for (i = IRQ_DOVE_PMU_START; i < NR_IRQS; i++) {
-		irq_set_chip(i, &pmu_irq_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &pmu_irq_chip, handle_level_irq);
 		irq_set_status_flags(i, IRQ_LEVEL);
 		set_irq_flags(i, IRQF_VALID);
 	}
Index: linux-2.6-tip/arch/arm/mach-ebsa110/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ebsa110/core.c
+++ linux-2.6-tip/arch/arm/mach-ebsa110/core.c
@@ -66,8 +66,8 @@ static void __init ebsa110_init_irq(void
 	local_irq_restore(flags);
 
 	for (irq = 0; irq < NR_IRQS; irq++) {
-		irq_set_chip(irq, &ebsa110_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &ebsa110_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ep93xx/gpio.c
+++ linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
@@ -231,8 +231,8 @@ void __init ep93xx_gpio_init_irq(void)
 
 	for (gpio_irq = gpio_to_irq(0);
 	     gpio_irq <= gpio_to_irq(EP93XX_GPIO_LINE_MAX_IRQ); ++gpio_irq) {
-		irq_set_chip(gpio_irq, &ep93xx_gpio_irq_chip);
-		irq_set_handler(gpio_irq, handle_level_irq);
+		irq_set_chip_and_handler(gpio_irq, &ep93xx_gpio_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(gpio_irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-exynos4/irq-combiner.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-exynos4/irq-combiner.c
+++ linux-2.6-tip/arch/arm/mach-exynos4/irq-combiner.c
@@ -119,8 +119,7 @@ void __init combiner_init(unsigned int c
 
 	for (i = irq_start; i < combiner_data[combiner_nr].irq_offset
 				+ MAX_IRQ_IN_COMBINER; i++) {
-		irq_set_chip(i, &combiner_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &combiner_chip, handle_level_irq);
 		irq_set_chip_data(i, &combiner_data[combiner_nr]);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
Index: linux-2.6-tip/arch/arm/mach-exynos4/irq-eint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-exynos4/irq-eint.c
+++ linux-2.6-tip/arch/arm/mach-exynos4/irq-eint.c
@@ -208,8 +208,8 @@ int __init exynos4_init_irq_eint(void)
 	int irq;
 
 	for (irq = 0 ; irq <= 31 ; irq++) {
-		irq_set_chip(IRQ_EINT(irq), &exynos4_irq_eint);
-		irq_set_handler(IRQ_EINT(irq), handle_level_irq);
+		irq_set_chip_and_handler(IRQ_EINT(irq), &exynos4_irq_eint,
+					 handle_level_irq);
 		set_irq_flags(IRQ_EINT(irq), IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-footbridge/common.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-footbridge/common.c
+++ linux-2.6-tip/arch/arm/mach-footbridge/common.c
@@ -102,8 +102,7 @@ static void __init __fb_init_irq(void)
 	*CSR_FIQ_DISABLE = -1;
 
 	for (irq = _DC21285_IRQ(0); irq < _DC21285_IRQ(20); irq++) {
-		irq_set_chip(irq, &fb_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &fb_chip, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-footbridge/isa-irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-footbridge/isa-irq.c
+++ linux-2.6-tip/arch/arm/mach-footbridge/isa-irq.c
@@ -151,14 +151,14 @@ void __init isa_init_irq(unsigned int ho
 
 	if (host_irq != (unsigned int)-1) {
 		for (irq = _ISA_IRQ(0); irq < _ISA_IRQ(8); irq++) {
-			irq_set_chip(irq, &isa_lo_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &isa_lo_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 
 		for (irq = _ISA_IRQ(8); irq < _ISA_IRQ(16); irq++) {
-			irq_set_chip(irq, &isa_hi_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &isa_hi_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 
Index: linux-2.6-tip/arch/arm/mach-gemini/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-gemini/gpio.c
+++ linux-2.6-tip/arch/arm/mach-gemini/gpio.c
@@ -217,8 +217,8 @@ void __init gemini_gpio_init(void)
 
 		for (j = GPIO_IRQ_BASE + i * 32;
 		     j < GPIO_IRQ_BASE + (i + 1) * 32; j++) {
-			irq_set_chip(j, &gpio_irq_chip);
-			irq_set_handler(j, handle_edge_irq);
+			irq_set_chip_and_handler(j, &gpio_irq_chip,
+						 handle_edge_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 
Index: linux-2.6-tip/arch/arm/mach-h720x/common.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-h720x/common.c
+++ linux-2.6-tip/arch/arm/mach-h720x/common.c
@@ -199,15 +199,15 @@ void __init h720x_init_irq (void)
 
 	/* Initialize global IRQ's, fast path */
 	for (irq = 0; irq < NR_GLBL_IRQS; irq++) {
-		irq_set_chip(irq, &h720x_global_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &h720x_global_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	/* Initialize multiplexed IRQ's, slow path */
 	for (irq = IRQ_CHAINED_GPIOA(0) ; irq <= IRQ_CHAINED_GPIOD(31); irq++) {
-		irq_set_chip(irq, &h720x_gpio_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
+					 handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID );
 	}
 	irq_set_chained_handler(IRQ_GPIOA, h720x_gpioa_demux_handler);
@@ -217,8 +217,8 @@ void __init h720x_init_irq (void)
 
 #ifdef CONFIG_CPU_H7202
 	for (irq = IRQ_CHAINED_GPIOE(0) ; irq <= IRQ_CHAINED_GPIOE(31); irq++) {
-		irq_set_chip(irq, &h720x_gpio_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &h720x_gpio_chip,
+					 handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID );
 	}
 	irq_set_chained_handler(IRQ_GPIOE, h720x_gpioe_demux_handler);
Index: linux-2.6-tip/arch/arm/mach-h720x/cpu-h7202.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-h720x/cpu-h7202.c
+++ linux-2.6-tip/arch/arm/mach-h720x/cpu-h7202.c
@@ -197,8 +197,8 @@ void __init h7202_init_irq (void)
 	for (irq = IRQ_TIMER1;
 	                  irq < IRQ_CHAINED_TIMERX(NR_TIMERX_IRQS); irq++) {
 		mask_timerx_irq(irq);
-		irq_set_chip(irq, &h7202_timerx_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &h7202_timerx_chip,
+					 handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID );
 	}
 	irq_set_chained_handler(IRQ_TIMERX, h7202_timerx_demux_handler);
Index: linux-2.6-tip/arch/arm/mach-integrator/integrator_ap.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-integrator/integrator_ap.c
+++ linux-2.6-tip/arch/arm/mach-integrator/integrator_ap.c
@@ -187,8 +187,8 @@ static void __init ap_init_irq(void)
 
 	for (i = 0; i < NR_IRQS; i++) {
 		if (((1 << i) & INTEGRATOR_SC_VALID_INT) != 0) {
-			irq_set_chip(i, &sc_chip);
-			irq_set_handler(i, handle_level_irq);
+			irq_set_chip_and_handler(i, &sc_chip,
+						 handle_level_irq);
 			set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-integrator/integrator_cp.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-integrator/integrator_cp.c
+++ linux-2.6-tip/arch/arm/mach-integrator/integrator_cp.c
@@ -238,8 +238,7 @@ static void __init intcp_init_irq(void)
 			i = 22;
 		if (i == 29)
 			break;
-		irq_set_chip(i, &pic_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &pic_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
@@ -247,8 +246,7 @@ static void __init intcp_init_irq(void)
 	cic_writel(0xffffffff, INTCP_VA_CIC_BASE + FIQ_ENABLE_CLEAR);
 
 	for (i = IRQ_CIC_START; i <= IRQ_CIC_END; i++) {
-		irq_set_chip(i, &cic_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &cic_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
@@ -256,8 +254,7 @@ static void __init intcp_init_irq(void)
 	sic_writel(0x00000fff, INTCP_VA_SIC_BASE + FIQ_ENABLE_CLEAR);
 
 	for (i = IRQ_SIC_START; i <= IRQ_SIC_END; i++) {
-		irq_set_chip(i, &sic_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &sic_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-iop32x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-iop32x/irq.c
+++ linux-2.6-tip/arch/arm/mach-iop32x/irq.c
@@ -68,8 +68,7 @@ void __init iop32x_init_irq(void)
 		*IOP3XX_PCIIRSR = 0x0f;
 
 	for (i = 0; i < NR_IRQS; i++) {
-		irq_set_chip(i, &ext_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &ext_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-iop33x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-iop33x/irq.c
+++ linux-2.6-tip/arch/arm/mach-iop33x/irq.c
@@ -110,9 +110,9 @@ void __init iop33x_init_irq(void)
 		*IOP3XX_PCIIRSR = 0x0f;
 
 	for (i = 0; i < NR_IRQS; i++) {
-		irq_set_chip(i,
-			     (i < 32) ? &iop33x_irqchip1 : &iop33x_irqchip2);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i,
+					 (i < 32) ? &iop33x_irqchip1 : &iop33x_irqchip2,
+					 handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ixp2000/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp2000/core.c
+++ linux-2.6-tip/arch/arm/mach-ixp2000/core.c
@@ -476,8 +476,8 @@ void __init ixp2000_init_irq(void)
 	 */
 	for (irq = IRQ_IXP2000_SOFT_INT; irq <= IRQ_IXP2000_THDB3; irq++) {
 		if ((1 << irq) & IXP2000_VALID_IRQ_MASK) {
-			irq_set_chip(irq, &ixp2000_irq_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &ixp2000_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		} else set_irq_flags(irq, 0);
 	}
@@ -485,8 +485,8 @@ void __init ixp2000_init_irq(void)
 	for (irq = IRQ_IXP2000_DRAM0_MIN_ERR; irq <= IRQ_IXP2000_SP_INT; irq++) {
 		if((1 << (irq - IRQ_IXP2000_DRAM0_MIN_ERR)) &
 				IXP2000_VALID_ERR_IRQ_MASK) {
-			irq_set_chip(irq, &ixp2000_err_irq_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &ixp2000_err_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		}
 		else
@@ -495,8 +495,8 @@ void __init ixp2000_init_irq(void)
 	irq_set_chained_handler(IRQ_IXP2000_ERRSUM, ixp2000_err_irq_handler);
 
 	for (irq = IRQ_IXP2000_GPIO0; irq <= IRQ_IXP2000_GPIO7; irq++) {
-		irq_set_chip(irq, &ixp2000_GPIO_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &ixp2000_GPIO_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 	irq_set_chained_handler(IRQ_IXP2000_GPIO, ixp2000_GPIO_irq_handler);
@@ -508,8 +508,8 @@ void __init ixp2000_init_irq(void)
 	 */
 	ixp2000_reg_write(IXP2000_IRQ_ENABLE_SET, (1 << IRQ_IXP2000_PCI));
 	for (irq = IRQ_IXP2000_PCIA; irq <= IRQ_IXP2000_PCIB; irq++) {
-		irq_set_chip(irq, &ixp2000_pci_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &ixp2000_pci_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x00.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp2000/ixdp2x00.c
+++ linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x00.c
@@ -158,8 +158,8 @@ void __init ixdp2x00_init_irq(volatile u
 	*board_irq_mask = 0xffffffff;
 
 	for(irq = IXP2000_BOARD_IRQ(0); irq < IXP2000_BOARD_IRQ(board_irq_count); irq++) {
-		irq_set_chip(irq, &ixdp2x00_cpld_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &ixdp2x00_cpld_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x01.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp2000/ixdp2x01.c
+++ linux-2.6-tip/arch/arm/mach-ixp2000/ixdp2x01.c
@@ -115,8 +115,8 @@ void __init ixdp2x01_init_irq(void)
 
 	for (irq = NR_IXP2000_IRQS; irq < NR_IXDP2X01_IRQS; irq++) {
 		if (irq & valid_irq_mask) {
-			irq_set_chip(irq, &ixdp2x01_irq_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &ixdp2x01_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, IRQF_VALID);
 		} else {
 			set_irq_flags(irq, 0);
Index: linux-2.6-tip/arch/arm/mach-ixp23xx/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp23xx/core.c
+++ linux-2.6-tip/arch/arm/mach-ixp23xx/core.c
@@ -289,12 +289,12 @@ static void ixp23xx_config_irq(unsigned 
 {
 	switch (type) {
 	case IXP23XX_IRQ_LEVEL:
-		irq_set_chip(irq, &ixp23xx_irq_level_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &ixp23xx_irq_level_chip,
+					 handle_level_irq);
 		break;
 	case IXP23XX_IRQ_EDGE:
-		irq_set_chip(irq, &ixp23xx_irq_edge_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &ixp23xx_irq_edge_chip,
+					 handle_edge_irq);
 		break;
 	}
 	set_irq_flags(irq, IRQF_VALID);
@@ -324,8 +324,8 @@ void __init ixp23xx_init_irq(void)
 	}
 
 	for (irq = IRQ_IXP23XX_INTA; irq <= IRQ_IXP23XX_INTB; irq++) {
-		irq_set_chip(irq, &ixp23xx_pci_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &ixp23xx_pci_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-ixp23xx/ixdp2351.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp23xx/ixdp2351.c
+++ linux-2.6-tip/arch/arm/mach-ixp23xx/ixdp2351.c
@@ -136,8 +136,8 @@ void __init ixdp2351_init_irq(void)
 	     irq++) {
 		if (IXDP2351_INTA_IRQ_MASK(irq) & IXDP2351_INTA_IRQ_VALID) {
 			set_irq_flags(irq, IRQF_VALID);
-			irq_set_handler(irq, handle_level_irq);
-			irq_set_chip(irq, &ixdp2351_inta_chip);
+			irq_set_chip_and_handler(irq, &ixdp2351_inta_chip,
+						 handle_level_irq);
 		}
 	}
 
@@ -147,8 +147,8 @@ void __init ixdp2351_init_irq(void)
 	     irq++) {
 		if (IXDP2351_INTB_IRQ_MASK(irq) & IXDP2351_INTB_IRQ_VALID) {
 			set_irq_flags(irq, IRQF_VALID);
-			irq_set_handler(irq, handle_level_irq);
-			irq_set_chip(irq, &ixdp2351_intb_chip);
+			irq_set_chip_and_handler(irq, &ixdp2351_intb_chip,
+						 handle_level_irq);
 		}
 	}
 
Index: linux-2.6-tip/arch/arm/mach-ixp4xx/common.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ixp4xx/common.c
+++ linux-2.6-tip/arch/arm/mach-ixp4xx/common.c
@@ -252,8 +252,8 @@ void __init ixp4xx_init_irq(void)
 
         /* Default to all level triggered */
 	for(i = 0; i < NR_IRQS; i++) {
-		irq_set_chip(i, &ixp4xx_irq_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &ixp4xx_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ks8695/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ks8695/irq.c
+++ linux-2.6-tip/arch/arm/mach-ks8695/irq.c
@@ -115,12 +115,12 @@ static int ks8695_irq_set_type(struct ir
 	}
 
 	if (level_triggered) {
-		irq_set_chip(d->irq, &ks8695_irq_level_chip);
-		irq_set_handler(d->irq, handle_level_irq);
+		irq_set_chip_and_handler(d->irq, &ks8695_irq_level_chip,
+					 handle_level_irq);
 	}
 	else {
-		irq_set_chip(d->irq, &ks8695_irq_edge_chip);
-		irq_set_handler(d->irq, handle_edge_irq);
+		irq_set_chip_and_handler(d->irq, &ks8695_irq_edge_chip,
+					 handle_edge_irq);
 	}
 
 	__raw_writel(ctrl, KS8695_GPIO_VA + KS8695_IOPC);
@@ -158,16 +158,18 @@ void __init ks8695_init_irq(void)
 			case KS8695_IRQ_UART_RX:
 			case KS8695_IRQ_COMM_TX:
 			case KS8695_IRQ_COMM_RX:
-				irq_set_chip(irq, &ks8695_irq_level_chip);
-				irq_set_handler(irq, handle_level_irq);
+				irq_set_chip_and_handler(irq,
+							 &ks8695_irq_level_chip,
+							 handle_level_irq);
 				break;
 
 			/* Edge-triggered interrupts */
 			default:
 				/* clear pending bit */
 				ks8695_irq_ack(irq_get_irq_data(irq));
-				irq_set_chip(irq, &ks8695_irq_edge_chip);
-				irq_set_handler(irq, handle_edge_irq);
+				irq_set_chip_and_handler(irq,
+							 &ks8695_irq_edge_chip,
+							 handle_edge_irq);
 		}
 
 		set_irq_flags(irq, IRQF_VALID);
Index: linux-2.6-tip/arch/arm/mach-lpc32xx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-lpc32xx/irq.c
+++ linux-2.6-tip/arch/arm/mach-lpc32xx/irq.c
@@ -390,8 +390,8 @@ void __init lpc32xx_init_irq(void)
 
 	/* Configure supported IRQ's */
 	for (i = 0; i < NR_IRQS; i++) {
-		irq_set_chip(i, &lpc32xx_irq_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &lpc32xx_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-mmp/irq-pxa168.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mmp/irq-pxa168.c
+++ linux-2.6-tip/arch/arm/mach-mmp/irq-pxa168.c
@@ -48,8 +48,7 @@ void __init icu_init_irq(void)
 
 	for (irq = 0; irq < 64; irq++) {
 		icu_mask_irq(irq_get_irq_data(irq));
-		irq_set_chip(irq, &icu_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &icu_irq_chip, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-msm/board-trout-gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/board-trout-gpio.c
+++ linux-2.6-tip/arch/arm/mach-msm/board-trout-gpio.c
@@ -214,8 +214,8 @@ int __init trout_init_gpio(void)
 {
 	int i;
 	for(i = TROUT_INT_START; i <= TROUT_INT_END; i++) {
-		irq_set_chip(i, &trout_gpio_irq_chip);
-		irq_set_handler(i, handle_edge_irq);
+		irq_set_chip_and_handler(i, &trout_gpio_irq_chip,
+					 handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/gpio-v2.c
+++ linux-2.6-tip/arch/arm/mach-msm/gpio-v2.c
@@ -362,8 +362,8 @@ static int __devinit msm_gpio_probe(stru
 
 	for (i = 0; i < msm_gpio.gpio_chip.ngpio; ++i) {
 		irq = msm_gpio_to_irq(&msm_gpio.gpio_chip, i);
-		irq_set_chip(irq, &msm_gpio_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &msm_gpio_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-msm/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/gpio.c
+++ linux-2.6-tip/arch/arm/mach-msm/gpio.c
@@ -355,8 +355,8 @@ static int __init msm_init_gpio(void)
 			msm_gpio_chips[j].chip.ngpio)
 			j++;
 		irq_set_chip_data(i, &msm_gpio_chips[j]);
-		irq_set_chip(i, &msm_gpio_irq_chip);
-		irq_set_handler(i, handle_edge_irq);
+		irq_set_chip_and_handler(i, &msm_gpio_irq_chip,
+					 handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-msm/irq-vic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/irq-vic.c
+++ linux-2.6-tip/arch/arm/mach-msm/irq-vic.c
@@ -357,8 +357,7 @@ void __init msm_init_irq(void)
 	writel(3, VIC_INT_MASTEREN);
 
 	for (n = 0; n < NR_MSM_IRQS; n++) {
-		irq_set_chip(n, &msm_irq_chip);
-		irq_set_handler(n, handle_level_irq);
+		irq_set_chip_and_handler(n, &msm_irq_chip, handle_level_irq);
 		set_irq_flags(n, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-msm/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/irq.c
+++ linux-2.6-tip/arch/arm/mach-msm/irq.c
@@ -145,8 +145,7 @@ void __init msm_init_irq(void)
 	writel(1, VIC_INT_MASTEREN);
 
 	for (n = 0; n < NR_MSM_IRQS; n++) {
-		irq_set_chip(n, &msm_irq_chip);
-		irq_set_handler(n, handle_level_irq);
+		irq_set_chip_and_handler(n, &msm_irq_chip, handle_level_irq);
 		set_irq_flags(n, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-msm/sirc.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-msm/sirc.c
+++ linux-2.6-tip/arch/arm/mach-msm/sirc.c
@@ -158,8 +158,7 @@ void __init msm_init_sirc(void)
 	wake_enable = 0;
 
 	for (i = FIRST_SIRC_IRQ; i < LAST_SIRC_IRQ; i++) {
-		irq_set_chip(i, &sirc_irq_chip);
-		irq_set_handler(i, handle_edge_irq);
+		irq_set_chip_and_handler(i, &sirc_irq_chip, handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-mx3/mach-mx31ads.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mx3/mach-mx31ads.c
+++ linux-2.6-tip/arch/arm/mach-mx3/mach-mx31ads.c
@@ -199,8 +199,7 @@ static void __init mx31ads_init_expio(vo
 	__raw_writew(0xFFFF, PBC_INTSTATUS_REG);
 	for (i = MXC_EXP_IO_BASE; i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES);
 	     i++) {
-		irq_set_chip(i, &expio_irq_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 	irq_set_irq_type(EXPIO_PARENT_INT, IRQ_TYPE_LEVEL_HIGH);
Index: linux-2.6-tip/arch/arm/mach-mxs/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mxs/gpio.c
+++ linux-2.6-tip/arch/arm/mach-mxs/gpio.c
@@ -265,8 +265,8 @@ int __init mxs_gpio_init(struct mxs_gpio
 
 		for (j = port[i].virtual_irq_start;
 			j < port[i].virtual_irq_start + 32; j++) {
-			irq_set_chip(j, &gpio_irq_chip);
-			irq_set_handler(j, handle_level_irq);
+			irq_set_chip_and_handler(j, &gpio_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 
Index: linux-2.6-tip/arch/arm/mach-mxs/icoll.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-mxs/icoll.c
+++ linux-2.6-tip/arch/arm/mach-mxs/icoll.c
@@ -74,8 +74,7 @@ void __init icoll_init_irq(void)
 	mxs_reset_block(icoll_base + HW_ICOLL_CTRL);
 
 	for (i = 0; i < MXS_INTERNAL_IRQS; i++) {
-		irq_set_chip(i, &mxs_icoll_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &mxs_icoll_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-netx/generic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-netx/generic.c
+++ linux-2.6-tip/arch/arm/mach-netx/generic.c
@@ -171,8 +171,8 @@ void __init netx_init_irq(void)
 	vic_init(__io(io_p2v(NETX_PA_VIC)), 0, ~0, 0);
 
 	for (irq = NETX_IRQ_HIF_CHAINED(0); irq <= NETX_IRQ_HIF_LAST; irq++) {
-		irq_set_chip(irq, &netx_hif_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &netx_hif_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-ns9xxx/board-a9m9750dev.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ns9xxx/board-a9m9750dev.c
+++ linux-2.6-tip/arch/arm/mach-ns9xxx/board-a9m9750dev.c
@@ -107,8 +107,8 @@ void __init board_a9m9750dev_init_irq(vo
 				__func__);
 
 	for (i = FPGA_IRQ(0); i <= FPGA_IRQ(7); ++i) {
-		irq_set_chip(i, &a9m9750dev_fpga_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &a9m9750dev_fpga_chip,
+					 handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-nuc93x/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-nuc93x/irq.c
+++ linux-2.6-tip/arch/arm/mach-nuc93x/irq.c
@@ -59,8 +59,8 @@ void __init nuc93x_init_irq(void)
 	__raw_writel(0xFFFFFFFE, REG_AIC_MDCR);
 
 	for (irqno = IRQ_WDT; irqno <= NR_IRQS; irqno++) {
-		irq_set_chip(irqno, &nuc93x_irq_chip);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &nuc93x_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-omap1/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap1/irq.c
+++ linux-2.6-tip/arch/arm/mach-omap1/irq.c
@@ -230,8 +230,8 @@ void __init omap_init_irq(void)
 			irq_trigger = irq_banks[i].trigger_map >> IRQ_BIT(j);
 			omap_irq_set_cfg(j, 0, 0, irq_trigger);
 
-			irq_set_chip(j, &omap_irq_chip);
-			irq_set_handler(j, handle_level_irq);
+			irq_set_chip_and_handler(j, &omap_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-omap2/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-omap2/irq.c
+++ linux-2.6-tip/arch/arm/mach-omap2/irq.c
@@ -223,8 +223,7 @@ void __init omap_init_irq(void)
 	       nr_of_irqs, nr_banks, nr_banks > 1 ? "s" : "");
 
 	for (i = 0; i < nr_of_irqs; i++) {
-		irq_set_chip(i, &omap_irq_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &omap_irq_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-pxa/balloon3.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/balloon3.c
+++ linux-2.6-tip/arch/arm/mach-pxa/balloon3.c
@@ -527,8 +527,8 @@ static void __init balloon3_init_irq(voi
 	pxa27x_init_irq();
 	/* setup extra Balloon3 irqs */
 	for (irq = BALLOON3_IRQ(0); irq <= BALLOON3_IRQ(7); irq++) {
-		irq_set_chip(irq, &balloon3_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &balloon3_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-pxa/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/irq.c
+++ linux-2.6-tip/arch/arm/mach-pxa/irq.c
@@ -137,8 +137,8 @@ static void __init pxa_init_low_gpio_irq
 	GEDR0 = 0x3;
 
 	for (irq = IRQ_GPIO0; irq <= IRQ_GPIO1; irq++) {
-		irq_set_chip(irq, &pxa_low_gpio_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &pxa_low_gpio_chip,
+					 handle_edge_irq);
 		irq_set_chip_data(irq, irq_base(0));
 		set_irq_flags(irq, IRQF_VALID);
 	}
@@ -165,8 +165,8 @@ void __init pxa_init_irq(int irq_nr, set
 				__raw_writel(i | IPR_VALID, IRQ_BASE + IPR(i));
 
 			irq = PXA_IRQ(i);
-			irq_set_chip(irq, &pxa_internal_irq_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &pxa_internal_irq_chip,
+						 handle_level_irq);
 			irq_set_chip_data(irq, base);
 			set_irq_flags(irq, IRQF_VALID);
 		}
Index: linux-2.6-tip/arch/arm/mach-pxa/lpd270.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/lpd270.c
+++ linux-2.6-tip/arch/arm/mach-pxa/lpd270.c
@@ -149,8 +149,8 @@ static void __init lpd270_init_irq(void)
 
 	/* setup extra LogicPD PXA270 irqs */
 	for (irq = LPD270_IRQ(2); irq <= LPD270_IRQ(4); irq++) {
-		irq_set_chip(irq, &lpd270_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &lpd270_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 	irq_set_chained_handler(IRQ_GPIO(0), lpd270_irq_handler);
Index: linux-2.6-tip/arch/arm/mach-pxa/lubbock.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/lubbock.c
+++ linux-2.6-tip/arch/arm/mach-pxa/lubbock.c
@@ -165,8 +165,8 @@ static void __init lubbock_init_irq(void
 
 	/* setup extra lubbock irqs */
 	for (irq = LUBBOCK_IRQ(0); irq <= LUBBOCK_LAST_IRQ; irq++) {
-		irq_set_chip(irq, &lubbock_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &lubbock_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-pxa/mainstone.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/mainstone.c
+++ linux-2.6-tip/arch/arm/mach-pxa/mainstone.c
@@ -166,8 +166,8 @@ static void __init mainstone_init_irq(vo
 
 	/* setup extra Mainstone irqs */
 	for(irq = MAINSTONE_IRQ(0); irq <= MAINSTONE_IRQ(15); irq++) {
-		irq_set_chip(irq, &mainstone_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &mainstone_irq_chip,
+					 handle_level_irq);
 		if (irq == MAINSTONE_IRQ(10) || irq == MAINSTONE_IRQ(14))
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE | IRQF_NOAUTOEN);
 		else
Index: linux-2.6-tip/arch/arm/mach-pxa/pcm990-baseboard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/pcm990-baseboard.c
+++ linux-2.6-tip/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -281,8 +281,8 @@ static void __init pcm990_init_irq(void)
 
 	/* setup extra PCM990 irqs */
 	for (irq = PCM027_IRQ(0); irq <= PCM027_IRQ(3); irq++) {
-		irq_set_chip(irq, &pcm990_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &pcm990_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-pxa/pxa3xx.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/pxa3xx.c
+++ linux-2.6-tip/arch/arm/mach-pxa/pxa3xx.c
@@ -362,8 +362,8 @@ static void __init pxa_init_ext_wakeup_i
 	int irq;
 
 	for (irq = IRQ_WAKEUP0; irq <= IRQ_WAKEUP1; irq++) {
-		irq_set_chip(irq, &pxa_ext_wakeup_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &pxa_ext_wakeup_chip,
+					 handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-pxa/viper.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/viper.c
+++ linux-2.6-tip/arch/arm/mach-pxa/viper.c
@@ -310,8 +310,8 @@ static void __init viper_init_irq(void)
 	/* setup ISA IRQs */
 	for (level = 0; level < ARRAY_SIZE(viper_isa_irqs); level++) {
 		isa_irq = viper_bit_to_irq(level);
-		irq_set_chip(isa_irq, &viper_irq_chip);
-		irq_set_handler(isa_irq, handle_edge_irq);
+		irq_set_chip_and_handler(isa_irq, &viper_irq_chip,
+					 handle_edge_irq);
 		set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-pxa/zeus.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-pxa/zeus.c
+++ linux-2.6-tip/arch/arm/mach-pxa/zeus.c
@@ -146,8 +146,8 @@ static void __init zeus_init_irq(void)
 	/* Setup ISA IRQs */
 	for (level = 0; level < ARRAY_SIZE(zeus_isa_irqs); level++) {
 		isa_irq = zeus_bit_to_irq(level);
-		irq_set_chip(isa_irq, &zeus_irq_chip);
-		irq_set_handler(isa_irq, handle_edge_irq);
+		irq_set_chip_and_handler(isa_irq, &zeus_irq_chip,
+					 handle_edge_irq);
 		set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-rpc/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-rpc/irq.c
+++ linux-2.6-tip/arch/arm/mach-rpc/irq.c
@@ -133,20 +133,20 @@ void __init rpc_init_irq(void)
 
 		switch (irq) {
 		case 0 ... 7:
-			irq_set_chip(irq, &iomd_a_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &iomd_a_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, flags);
 			break;
 
 		case 8 ... 15:
-			irq_set_chip(irq, &iomd_b_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &iomd_b_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, flags);
 			break;
 
 		case 16 ... 21:
-			irq_set_chip(irq, &iomd_dma_chip);
-			irq_set_handler(irq, handle_level_irq);
+			irq_set_chip_and_handler(irq, &iomd_dma_chip,
+						 handle_level_irq);
 			set_irq_flags(irq, flags);
 			break;
 
Index: linux-2.6-tip/arch/arm/mach-s3c2410/bast-irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2410/bast-irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2410/bast-irq.c
@@ -154,8 +154,8 @@ static __init int bast_irq_init(void)
 		for (i = 0; i < 4; i++) {
 			unsigned int irqno = bast_pc104_irqs[i];
 
-			irq_set_chip(irqno, &bast_pc104_chip);
-			irq_set_handler(irqno, handle_level_irq);
+			irq_set_chip_and_handler(irqno, &bast_pc104_chip,
+						 handle_level_irq);
 			set_irq_flags(irqno, IRQF_VALID);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-s3c2412/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2412/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2412/irq.c
@@ -175,8 +175,8 @@ static int s3c2412_irq_add(struct sys_de
 	unsigned int irqno;
 
 	for (irqno = IRQ_EINT0; irqno <= IRQ_EINT3; irqno++) {
-		irq_set_chip(irqno, &s3c2412_irq_eint0t4);
-		irq_set_handler(irqno, handle_edge_irq);
+		irq_set_chip_and_handler(irqno, &s3c2412_irq_eint0t4,
+					 handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
@@ -185,8 +185,8 @@ static int s3c2412_irq_add(struct sys_de
 	irq_set_chained_handler(IRQ_S3C2412_CFSDI, s3c2412_irq_demux_cfsdi);
 
 	for (irqno = IRQ_S3C2412_SDI; irqno <= IRQ_S3C2412_CF; irqno++) {
-		irq_set_chip(irqno, &s3c2412_irq_cfsdi);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &s3c2412_irq_cfsdi,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c2416/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2416/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2416/irq.c
@@ -202,13 +202,11 @@ static int __init s3c2416_add_sub(unsign
 {
 	unsigned int irqno;
 
-	irq_set_chip(base, &s3c_irq_level_chip);
-	irq_set_handler(base, handle_level_irq);
+	irq_set_chip_and_handler(base, &s3c_irq_level_chip, handle_level_irq);
 	irq_set_chained_handler(base, demux);
 
 	for (irqno = start; irqno <= end; irqno++) {
-		irq_set_chip(irqno, chip);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, chip, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c2440/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2440/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2440/irq.c
@@ -100,13 +100,13 @@ static int s3c2440_irq_add(struct sys_de
 
 	/* add new chained handler for wdt, ac7 */
 
-	irq_set_chip(IRQ_WDT, &s3c_irq_level_chip);
-	irq_set_handler(IRQ_WDT, handle_level_irq);
+	irq_set_chip_and_handler(IRQ_WDT, &s3c_irq_level_chip,
+				 handle_level_irq);
 	irq_set_chained_handler(IRQ_WDT, s3c_irq_demux_wdtac97);
 
 	for (irqno = IRQ_S3C2440_WDT; irqno <= IRQ_S3C2440_AC97; irqno++) {
-		irq_set_chip(irqno, &s3c_irq_wdtac97);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irq_wdtac97,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c2440/s3c244x-irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2440/s3c244x-irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2440/s3c244x-irq.c
@@ -95,19 +95,19 @@ static int s3c244x_irq_add(struct sys_de
 {
 	unsigned int irqno;
 
-	irq_set_chip(IRQ_NFCON, &s3c_irq_level_chip);
-	irq_set_handler(IRQ_NFCON, handle_level_irq);
+	irq_set_chip_and_handler(IRQ_NFCON, &s3c_irq_level_chip,
+				 handle_level_irq);
 	set_irq_flags(IRQ_NFCON, IRQF_VALID);
 
 	/* add chained handler for camera */
 
-	irq_set_chip(IRQ_CAM, &s3c_irq_level_chip);
-	irq_set_handler(IRQ_CAM, handle_level_irq);
+	irq_set_chip_and_handler(IRQ_CAM, &s3c_irq_level_chip,
+				 handle_level_irq);
 	irq_set_chained_handler(IRQ_CAM, s3c_irq_demux_cam);
 
 	for (irqno = IRQ_S3C2440_CAM_C; irqno <= IRQ_S3C2440_CAM_P; irqno++) {
-		irq_set_chip(irqno, &s3c_irq_cam);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irq_cam,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c2443/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c2443/irq.c
+++ linux-2.6-tip/arch/arm/mach-s3c2443/irq.c
@@ -230,13 +230,11 @@ static int __init s3c2443_add_sub(unsign
 {
 	unsigned int irqno;
 
-	irq_set_chip(base, &s3c_irq_level_chip);
-	irq_set_handler(base, handle_level_irq);
+	irq_set_chip_and_handler(base, &s3c_irq_level_chip, handle_level_irq);
 	irq_set_chained_handler(base, demux);
 
 	for (irqno = start; irqno <= end; irqno++) {
-		irq_set_chip(irqno, chip);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, chip, handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-s3c64xx/irq-eint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-s3c64xx/irq-eint.c
+++ linux-2.6-tip/arch/arm/mach-s3c64xx/irq-eint.c
@@ -197,8 +197,7 @@ static int __init s3c64xx_init_irq_eint(
 	int irq;
 
 	for (irq = IRQ_EINT(0); irq <= IRQ_EINT(27); irq++) {
-		irq_set_chip(irq, &s3c_irq_eint);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &s3c_irq_eint, handle_level_irq);
 		irq_set_chip_data(irq, (void *)eint_irq_to_bit(irq));
 		set_irq_flags(irq, IRQF_VALID);
 	}
Index: linux-2.6-tip/arch/arm/mach-sa1100/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-sa1100/irq.c
+++ linux-2.6-tip/arch/arm/mach-sa1100/irq.c
@@ -323,20 +323,20 @@ void __init sa1100_init_irq(void)
 	ICCR = 1;
 
 	for (irq = 0; irq <= 10; irq++) {
-		irq_set_chip(irq, &sa1100_low_gpio_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &sa1100_low_gpio_chip,
+					 handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	for (irq = 12; irq <= 31; irq++) {
-		irq_set_chip(irq, &sa1100_normal_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &sa1100_normal_chip,
+					 handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
 	for (irq = 32; irq <= 48; irq++) {
-		irq_set_chip(irq, &sa1100_high_gpio_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &sa1100_high_gpio_chip,
+					 handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-shark/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-shark/irq.c
+++ linux-2.6-tip/arch/arm/mach-shark/irq.c
@@ -80,8 +80,7 @@ void __init shark_init_irq(void)
 	int irq;
 
 	for (irq = 0; irq < NR_IRQS; irq++) {
-		irq_set_chip(irq, &fb_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &fb_chip, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-tegra/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-tegra/gpio.c
+++ linux-2.6-tip/arch/arm/mach-tegra/gpio.c
@@ -298,8 +298,8 @@ static int __init tegra_gpio_init(void)
 
 		irq_set_lockdep_class(i, &gpio_lock_class);
 		irq_set_chip_data(i, bank);
-		irq_set_chip(i, &tegra_gpio_irq_chip);
-		irq_set_handler(i, handle_simple_irq);
+		irq_set_chip_and_handler(i, &tegra_gpio_irq_chip,
+					 handle_simple_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/mach-tegra/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-tegra/irq.c
+++ linux-2.6-tip/arch/arm/mach-tegra/irq.c
@@ -154,8 +154,7 @@ void __init tegra_init_irq(void)
 
 	for (i = 0; i < INT_MAIN_NR; i++) {
 		irq = INT_PRI_BASE + i;
-		irq_set_chip(irq, &tegra_irq);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &tegra_irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/mach-ux500/modem-irq-db5500.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-ux500/modem-irq-db5500.c
+++ linux-2.6-tip/arch/arm/mach-ux500/modem-irq-db5500.c
@@ -90,8 +90,7 @@ static irqreturn_t modem_cpu_irq_handler
 
 static void create_virtual_irq(int irq, struct irq_chip *modem_irq_chip)
 {
-	irq_set_chip(irq, modem_irq_chip);
-	irq_set_handler(irq, handle_simple_irq);
+	irq_set_chip_and_handler(irq, modem_irq_chip, handle_simple_irq);
 	set_irq_flags(irq, IRQF_VALID);
 
 	pr_debug("modem_irq: Created virtual IRQ %d\n", irq);
Index: linux-2.6-tip/arch/arm/mach-versatile/core.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-versatile/core.c
+++ linux-2.6-tip/arch/arm/mach-versatile/core.c
@@ -129,8 +129,8 @@ void __init versatile_init_irq(void)
 
 	for (i = IRQ_SIC_START; i <= IRQ_SIC_END; i++) {
 		if ((PIC_MASK & (1 << (i - IRQ_SIC_START))) == 0) {
-			irq_set_chip(i, &sic_chip);
-			irq_set_handler(i, handle_level_irq);
+			irq_set_chip_and_handler(i, &sic_chip,
+						 handle_level_irq);
 			set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 		}
 	}
Index: linux-2.6-tip/arch/arm/mach-vt8500/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-vt8500/irq.c
+++ linux-2.6-tip/arch/arm/mach-vt8500/irq.c
@@ -136,8 +136,8 @@ void __init vt8500_init_irq(void)
 			/* Disable all interrupts and route them to IRQ */
 			writeb(0x00, ic_regbase + VT8500_IC_DCTR + i);
 
-			irq_set_chip(i, &vt8500_irq_chip);
-			irq_set_handler(i, handle_level_irq);
+			irq_set_chip_and_handler(i, &vt8500_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(i, IRQF_VALID);
 		}
 	} else {
@@ -167,8 +167,8 @@ void __init wm8505_init_irq(void)
 				writeb(0x00, sic_regbase + VT8500_IC_DCTR
 								+ i - 64);
 
-			irq_set_chip(i, &vt8500_irq_chip);
-			irq_set_handler(i, handle_level_irq);
+			irq_set_chip_and_handler(i, &vt8500_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(i, IRQF_VALID);
 		}
 	} else {
Index: linux-2.6-tip/arch/arm/mach-w90x900/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/mach-w90x900/irq.c
+++ linux-2.6-tip/arch/arm/mach-w90x900/irq.c
@@ -207,8 +207,8 @@ void __init nuc900_init_irq(void)
 	__raw_writel(0xFFFFFFFE, REG_AIC_MDCR);
 
 	for (irqno = IRQ_WDT; irqno <= IRQ_ADC; irqno++) {
-		irq_set_chip(irqno, &nuc900_irq_chip);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &nuc900_irq_chip,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 }
Index: linux-2.6-tip/arch/arm/plat-mxc/3ds_debugboard.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/3ds_debugboard.c
+++ linux-2.6-tip/arch/arm/plat-mxc/3ds_debugboard.c
@@ -181,8 +181,7 @@ int __init mxc_expio_init(u32 base, u32 
 	__raw_writew(0x1F, brd_io + INTR_MASK_REG);
 	for (i = MXC_EXP_IO_BASE;
 	     i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES); i++) {
-		irq_set_chip(i, &expio_irq_chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 	irq_set_irq_type(p_irq, IRQF_TRIGGER_LOW);
Index: linux-2.6-tip/arch/arm/plat-mxc/avic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/avic.c
+++ linux-2.6-tip/arch/arm/plat-mxc/avic.c
@@ -139,8 +139,8 @@ void __init mxc_init_irq(void __iomem *i
 	__raw_writel(0, avic_base + AVIC_INTTYPEH);
 	__raw_writel(0, avic_base + AVIC_INTTYPEL);
 	for (i = 0; i < MXC_INTERNAL_IRQS; i++) {
-		irq_set_chip(i, &mxc_avic_chip.base);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &mxc_avic_chip.base,
+					 handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-mxc/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/gpio.c
+++ linux-2.6-tip/arch/arm/plat-mxc/gpio.c
@@ -311,8 +311,8 @@ int __init mxc_gpio_init(struct mxc_gpio
 		__raw_writel(~0, port[i].base + GPIO_ISR);
 		for (j = port[i].virtual_irq_start;
 			j < port[i].virtual_irq_start + 32; j++) {
-			irq_set_chip(j, &gpio_irq_chip);
-			irq_set_handler(j, handle_level_irq);
+			irq_set_chip_and_handler(j, &gpio_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(j, IRQF_VALID);
 		}
 
Index: linux-2.6-tip/arch/arm/plat-mxc/tzic.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-mxc/tzic.c
+++ linux-2.6-tip/arch/arm/plat-mxc/tzic.c
@@ -167,8 +167,8 @@ void __init tzic_init_irq(void __iomem *
 	/* all IRQ no FIQ Warning :: No selection */
 
 	for (i = 0; i < MXC_INTERNAL_IRQS; i++) {
-		irq_set_chip(i, &mxc_tzic_chip.base);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, &mxc_tzic_chip.base,
+					 handle_level_irq);
 		set_irq_flags(i, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-nomadik/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-nomadik/gpio.c
+++ linux-2.6-tip/arch/arm/plat-nomadik/gpio.c
@@ -732,8 +732,8 @@ static int nmk_gpio_init_irq(struct nmk_
 
 	first_irq = NOMADIK_GPIO_TO_IRQ(nmk_chip->chip.base);
 	for (i = first_irq; i < first_irq + nmk_chip->chip.ngpio; i++) {
-		irq_set_chip(i, &nmk_gpio_irq_chip);
-		irq_set_handler(i, handle_edge_irq);
+		irq_set_chip_and_handler(i, &nmk_gpio_irq_chip,
+					 handle_edge_irq);
 		set_irq_flags(i, IRQF_VALID);
 		irq_set_chip_data(i, nmk_chip);
 		irq_set_irq_type(i, IRQ_TYPE_EDGE_FALLING);
Index: linux-2.6-tip/arch/arm/plat-orion/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-orion/gpio.c
+++ linux-2.6-tip/arch/arm/plat-orion/gpio.c
@@ -474,8 +474,8 @@ void __init orion_gpio_init(int gpio_bas
 	for (i = 0; i < ngpio; i++) {
 		unsigned int irq = secondary_irq_base + i;
 
-		irq_set_chip(irq, &orion_gpio_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &orion_gpio_irq_chip,
+					 handle_level_irq);
 		irq_set_chip_data(irq, ochip);
 		irq_set_status_flags(irq, IRQ_LEVEL);
 		set_irq_flags(irq, IRQF_VALID);
Index: linux-2.6-tip/arch/arm/plat-orion/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-orion/irq.c
+++ linux-2.6-tip/arch/arm/plat-orion/irq.c
@@ -56,8 +56,8 @@ void __init orion_irq_init(unsigned int 
 	for (i = 0; i < 32; i++) {
 		unsigned int irq = irq_start + i;
 
-		irq_set_chip(irq, &orion_irq_chip);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &orion_irq_chip,
+					 handle_level_irq);
 		irq_set_chip_data(irq, maskaddr);
 		irq_set_status_flags(irq, IRQ_LEVEL);
 		set_irq_flags(irq, IRQF_VALID);
Index: linux-2.6-tip/arch/arm/plat-pxa/gpio.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-pxa/gpio.c
+++ linux-2.6-tip/arch/arm/plat-pxa/gpio.c
@@ -284,8 +284,8 @@ void __init pxa_init_gpio(int mux_irq, i
 	}
 
 	for (irq  = gpio_to_irq(start); irq <= gpio_to_irq(end); irq++) {
-		irq_set_chip(irq, &pxa_muxed_gpio_chip);
-		irq_set_handler(irq, handle_edge_irq);
+		irq_set_chip_and_handler(irq, &pxa_muxed_gpio_chip,
+					 handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-s3c24xx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-s3c24xx/irq.c
+++ linux-2.6-tip/arch/arm/plat-s3c24xx/irq.c
@@ -592,8 +592,8 @@ void __init s3c24xx_init_irq(void)
 		case IRQ_UART1:
 		case IRQ_UART2:
 		case IRQ_ADCPARENT:
-			irq_set_chip(irqno, &s3c_irq_level_chip);
-			irq_set_handler(irqno, handle_level_irq);
+			irq_set_chip_and_handler(irqno, &s3c_irq_level_chip,
+						 handle_level_irq);
 			break;
 
 		case IRQ_RESERVED6:
@@ -603,8 +603,8 @@ void __init s3c24xx_init_irq(void)
 
 		default:
 			//irqdbf("registering irq %d (s3c irq)\n", irqno);
-			irq_set_chip(irqno, &s3c_irq_chip);
-			irq_set_handler(irqno, handle_edge_irq);
+			irq_set_chip_and_handler(irqno, &s3c_irq_chip,
+						 handle_edge_irq);
 			set_irq_flags(irqno, IRQF_VALID);
 		}
 	}
@@ -623,15 +623,15 @@ void __init s3c24xx_init_irq(void)
 
 	for (irqno = IRQ_EINT0; irqno <= IRQ_EINT3; irqno++) {
 		irqdbf("registering irq %d (ext int)\n", irqno);
-		irq_set_chip(irqno, &s3c_irq_eint0t4);
-		irq_set_handler(irqno, handle_edge_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irq_eint0t4,
+					 handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_EINT4; irqno <= IRQ_EINT23; irqno++) {
 		irqdbf("registering irq %d (extended s3c irq)\n", irqno);
-		irq_set_chip(irqno, &s3c_irqext_chip);
-		irq_set_handler(irqno, handle_edge_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irqext_chip,
+					 handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
@@ -641,29 +641,28 @@ void __init s3c24xx_init_irq(void)
 
 	for (irqno = IRQ_S3CUART_RX0; irqno <= IRQ_S3CUART_ERR0; irqno++) {
 		irqdbf("registering irq %d (s3c uart0 irq)\n", irqno);
-		irq_set_chip(irqno, &s3c_irq_uart0);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irq_uart0,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_S3CUART_RX1; irqno <= IRQ_S3CUART_ERR1; irqno++) {
 		irqdbf("registering irq %d (s3c uart1 irq)\n", irqno);
-		irq_set_chip(irqno, &s3c_irq_uart1);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irq_uart1,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_S3CUART_RX2; irqno <= IRQ_S3CUART_ERR2; irqno++) {
 		irqdbf("registering irq %d (s3c uart2 irq)\n", irqno);
-		irq_set_chip(irqno, &s3c_irq_uart2);
-		irq_set_handler(irqno, handle_level_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irq_uart2,
+					 handle_level_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
 	for (irqno = IRQ_TC; irqno <= IRQ_ADC; irqno++) {
 		irqdbf("registering irq %d (s3c adc irq)\n", irqno);
-		irq_set_chip(irqno, &s3c_irq_adc);
-		irq_set_handler(irqno, handle_edge_irq);
+		irq_set_chip_and_handler(irqno, &s3c_irq_adc, handle_edge_irq);
 		set_irq_flags(irqno, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-s5p/irq-eint.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-s5p/irq-eint.c
+++ linux-2.6-tip/arch/arm/plat-s5p/irq-eint.c
@@ -208,8 +208,7 @@ int __init s5p_init_irq_eint(void)
 		irq_set_chip(irq, &s5p_irq_vic_eint);
 
 	for (irq = IRQ_EINT(16); irq <= IRQ_EINT(31); irq++) {
-		irq_set_chip(irq, &s5p_irq_eint);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &s5p_irq_eint, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-samsung/irq-uart.c
+++ linux-2.6-tip/arch/arm/plat-samsung/irq-uart.c
@@ -117,8 +117,7 @@ static void __init s3c_init_uart_irq(str
 	for (offs = 0; offs < 3; offs++) {
 		irq = uirq->base_irq + offs;
 
-		irq_set_chip(irq, &s3c_irq_uart);
-		irq_set_handler(irq, handle_level_irq);
+		irq_set_chip_and_handler(irq, &s3c_irq_uart, handle_level_irq);
 		irq_set_chip_data(irq, uirq);
 		set_irq_flags(irq, IRQF_VALID);
 	}
Index: linux-2.6-tip/arch/arm/plat-spear/shirq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-spear/shirq.c
+++ linux-2.6-tip/arch/arm/plat-spear/shirq.c
@@ -107,8 +107,8 @@ int spear_shirq_register(struct spear_sh
 
 	irq_set_chained_handler(shirq->irq, shirq_handler);
 	for (i = 0; i < shirq->dev_count; i++) {
-		irq_set_chip(shirq->dev_config[i].virq, &shirq_chip);
-		irq_set_handler(shirq->dev_config[i].virq, handle_simple_irq);
+		irq_set_chip_and_handler(shirq->dev_config[i].virq,
+					 &shirq_chip, handle_simple_irq);
 		set_irq_flags(shirq->dev_config[i].virq, IRQF_VALID);
 		irq_set_chip_data(shirq->dev_config[i].virq, shirq);
 	}
Index: linux-2.6-tip/arch/arm/plat-stmp3xxx/irq.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-stmp3xxx/irq.c
+++ linux-2.6-tip/arch/arm/plat-stmp3xxx/irq.c
@@ -35,8 +35,7 @@ void __init stmp3xxx_init_irq(struct irq
 	/* Disable all interrupts initially */
 	for (i = 0; i < NR_REAL_IRQS; i++) {
 		chip->irq_mask(irq_get_irq_data(i));
-		irq_set_chip(i, chip);
-		irq_set_handler(i, handle_level_irq);
+		irq_set_chip_and_handler(i, chip, handle_level_irq);
 		set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
 	}
 
Index: linux-2.6-tip/arch/arm/plat-stmp3xxx/pinmux.c
===================================================================
--- linux-2.6-tip.orig/arch/arm/plat-stmp3xxx/pinmux.c
+++ linux-2.6-tip/arch/arm/plat-stmp3xxx/pinmux.c
@@ -533,8 +533,8 @@ int __init stmp3xxx_pinmux_init(int virt
 
 		for (virq = pm->virq; virq < pm->virq; virq++) {
 			gpio_irq_chip.irq_mask(irq_get_irq_data(virq));
-			irq_set_chip(virq, &gpio_irq_chip);
-			irq_set_handler(virq, handle_level_irq);
+			irq_set_chip_and_handler(virq, &gpio_irq_chip,
+						 handle_level_irq);
 			set_irq_flags(virq, IRQF_VALID);
 		}
 		r = gpiochip_add(&pm->chip);



^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [patch 17/23] arm: at91: Cleanup irq chip
  2011-03-25 13:22 ` [patch 17/23] arm: at91: Cleanup irq chip Thomas Gleixner
@ 2011-03-25 21:03   ` Thomas Gleixner
  2011-03-27 15:02     ` Sergei Shtylyov
  0 siblings, 1 reply; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-25 21:03 UTC (permalink / raw)
  To: LKML; +Cc: Russell King, Lennert Buytenhek, LAK

On Fri, 25 Mar 2011, Thomas Gleixner wrote:

> Avoid the whole lazy disable dance in the demux handler by providing a
> irq_disable() callback.
> 
> Use the proper accessor functions and tidy up gpio_irq_handler()
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
>  arch/arm/mach-at91/gpio.c |   31 +++++++++----------------------
>  1 file changed, 9 insertions(+), 22 deletions(-)
> 
> Index: linux-2.6-tip/arch/arm/mach-at91/gpio.c
> ===================================================================
> --- linux-2.6-tip.orig/arch/arm/mach-at91/gpio.c
> +++ linux-2.6-tip/arch/arm/mach-at91/gpio.c
> @@ -375,6 +375,7 @@ static int gpio_irq_type(struct irq_data
>  
>  static struct irq_chip gpio_irqchip = {
>  	.name		= "GPIO",
> +	.irq_disable	= gpio_irq_mask,
>  	.irq_mask	= gpio_irq_mask,
>  	.irq_unmask	= gpio_irq_unmask,
>  	.irq_set_type	= gpio_irq_type,
> @@ -384,16 +385,14 @@ static struct irq_chip gpio_irqchip = {
>  static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
>  {
>  	unsigned	pin;
> -	struct irq_desc	*gpio;
> -	struct at91_gpio_chip *at91_gpio;
> -	void __iomem	*pio;
> +	struct irq_data *idata = irq_desc_get_irq_data(desc);
> +	struct irq_chip *chip = irq_data_get_chip(data);
> +	struct at91_gpio_chip *at91_gpio = irq_data_get_chip_data(data);

Sorry, needs to be

+	struct at91_gpio_chip *at91_gpio = irq_data_get_irq_chip_data(data);

Will fix and resend.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc
  2011-03-25 13:21 ` [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc Thomas Gleixner
@ 2011-03-26 20:12   ` Varun Wadekar
  2011-03-26 20:24     ` Thomas Gleixner
  0 siblings, 1 reply; 32+ messages in thread
From: Varun Wadekar @ 2011-03-26 20:12 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, LAK, Russell King, Lennert Buytenhek, Colin Cross, linux-tegra


Thomas, then how do you think we should handle restoring of gpio states
across suspend-resume cycles?

On Friday 25 March 2011 06:51 PM, Thomas Gleixner wrote:
> These functions are unused and in the way of cleanups in the core
> code. If you have special requirements vs. irqs and PM then please
> talk to me. Access to the generic core internals is going away.
>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Cc: Colin Cross <ccross@android.com>
> Cc: linux-tegra@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
> ---
>  arch/arm/mach-tegra/gpio.c                 |   63 -----------------------------
>  arch/arm/mach-tegra/include/mach/suspend.h |    2 
>  2 files changed, 65 deletions(-)
>
> Index: linux-2.6/arch/arm/mach-tegra/gpio.c
> ===================================================================
> --- linux-2.6.orig/arch/arm/mach-tegra/gpio.c
> +++ linux-2.6/arch/arm/mach-tegra/gpio.c
> @@ -254,69 +254,6 @@ static void tegra_gpio_irq_handler(unsig
>  }
>  
>  #ifdef CONFIG_PM
> -void tegra_gpio_resume(void)
> -{
> -	unsigned long flags;
> -	int b, p, i;
> -
> -	local_irq_save(flags);
> -
> -	for (b = 0; b < ARRAY_SIZE(tegra_gpio_banks); b++) {
> -		struct tegra_gpio_bank *bank = &tegra_gpio_banks[b];
> -
> -		for (p = 0; p < ARRAY_SIZE(bank->oe); p++) {
> -			unsigned int gpio = (b<<5) | (p<<3);
> -			__raw_writel(bank->cnf[p], GPIO_CNF(gpio));
> -			__raw_writel(bank->out[p], GPIO_OUT(gpio));
> -			__raw_writel(bank->oe[p], GPIO_OE(gpio));
> -			__raw_writel(bank->int_lvl[p], GPIO_INT_LVL(gpio));
> -			__raw_writel(bank->int_enb[p], GPIO_INT_ENB(gpio));
> -		}
> -	}
> -
> -	local_irq_restore(flags);
> -
> -	for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
> -		struct irq_desc *desc = irq_to_desc(i);
> -		if (!desc || (desc->status & IRQ_WAKEUP))
> -			continue;
> -		enable_irq(i);
> -	}
> -}
> -
> -void tegra_gpio_suspend(void)
> -{
> -	unsigned long flags;
> -	int b, p, i;
> -
> -	for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
> -		struct irq_desc *desc = irq_to_desc(i);
> -		if (!desc)
> -			continue;
> -		if (desc->status & IRQ_WAKEUP) {
> -			int gpio = i - INT_GPIO_BASE;
> -			pr_debug("gpio %d.%d is wakeup\n", gpio/8, gpio&7);
> -			continue;
> -		}
> -		disable_irq(i);
> -	}
> -
> -	local_irq_save(flags);
> -	for (b = 0; b < ARRAY_SIZE(tegra_gpio_banks); b++) {
> -		struct tegra_gpio_bank *bank = &tegra_gpio_banks[b];
> -
> -		for (p = 0; p < ARRAY_SIZE(bank->oe); p++) {
> -			unsigned int gpio = (b<<5) | (p<<3);
> -			bank->cnf[p] = __raw_readl(GPIO_CNF(gpio));
> -			bank->out[p] = __raw_readl(GPIO_OUT(gpio));
> -			bank->oe[p] = __raw_readl(GPIO_OE(gpio));
> -			bank->int_enb[p] = __raw_readl(GPIO_INT_ENB(gpio));
> -			bank->int_lvl[p] = __raw_readl(GPIO_INT_LVL(gpio));
> -		}
> -	}
> -	local_irq_restore(flags);
> -}
> -
>  static int tegra_gpio_wake_enable(struct irq_data *d, unsigned int enable)
>  {
>  	struct tegra_gpio_bank *bank = irq_data_get_irq_chip_data(d);
> Index: linux-2.6/arch/arm/mach-tegra/include/mach/suspend.h
> ===================================================================
> --- linux-2.6.orig/arch/arm/mach-tegra/include/mach/suspend.h
> +++ linux-2.6/arch/arm/mach-tegra/include/mach/suspend.h
> @@ -23,14 +23,12 @@
>  
>  void tegra_pinmux_suspend(void);
>  void tegra_irq_suspend(void);
> -void tegra_gpio_suspend(void);
>  void tegra_clk_suspend(void);
>  void tegra_dma_suspend(void);
>  void tegra_timer_suspend(void);
>  
>  void tegra_pinmux_resume(void);
>  void tegra_irq_resume(void);
> -void tegra_gpio_resume(void);
>  void tegra_clk_resume(void);
>  void tegra_dma_resume(void);
>  void tegra_timer_resume(void);
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc
  2011-03-26 20:12   ` Varun Wadekar
@ 2011-03-26 20:24     ` Thomas Gleixner
  2011-03-26 22:37       ` Colin Cross
  0 siblings, 1 reply; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-26 20:24 UTC (permalink / raw)
  To: Varun Wadekar
  Cc: LKML, LAK, Russell King, Lennert Buytenhek, Colin Cross, linux-tegra

On Sun, 27 Mar 2011, Varun Wadekar wrote:
> 
> Thomas, then how do you think we should handle restoring of gpio states
> across suspend-resume cycles?

That code is unused. Period. No caller, nothing nada. So what does it
handle?
 
> > -
> > -	for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
> > -		struct irq_desc *desc = irq_to_desc(i);
> > -		if (!desc || (desc->status & IRQ_WAKEUP))
> > -			continue;
> > -		enable_irq(i);
> > -	}

And this part is totally unacceptable and should have never been
merged. Further it is in the way of cleanups to the core code and as
there is no user I'm not willing to even think about what it does and
why it is there.

FYI, the core code deals with interrupt suspending/resuming
already. So if there is a problem with that which does not cover your
specific problem, then you better talk to me before hacking up such
private workarounds and expecting that I tolerate them in unused code.

Thanks,

	tglx


^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc
  2011-03-26 20:24     ` Thomas Gleixner
@ 2011-03-26 22:37       ` Colin Cross
  2011-03-27  8:07         ` Thomas Gleixner
  0 siblings, 1 reply; 32+ messages in thread
From: Colin Cross @ 2011-03-26 22:37 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Varun Wadekar, LKML, LAK, Russell King, Lennert Buytenhek, linux-tegra

On Sat, Mar 26, 2011 at 1:24 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Sun, 27 Mar 2011, Varun Wadekar wrote:
>>
>> Thomas, then how do you think we should handle restoring of gpio states
>> across suspend-resume cycles?
>
> That code is unused. Period. No caller, nothing nada. So what does it
> handle?

Tegra suspend support didn't make it into 2.6.39, but should get
merged in 2.6.40, and will call tegra_gpio_suspend/resume.

>> > -
>> > -   for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
>> > -           struct irq_desc *desc = irq_to_desc(i);
>> > -           if (!desc || (desc->status & IRQ_WAKEUP))
>> > -                   continue;
>> > -           enable_irq(i);
>> > -   }
>
> And this part is totally unacceptable and should have never been
> merged. Further it is in the way of cleanups to the core code and as
> there is no user I'm not willing to even think about what it does and
> why it is there.
>
> FYI, the core code deals with interrupt suspending/resuming
> already. So if there is a problem with that which does not cover your
> specific problem, then you better talk to me before hacking up such
> private workarounds and expecting that I tolerate them in unused code.

Yes, the existing code wrong, and unnecessary.  It was copied from
mach-tegra/irq.c, which I later fixed, but I missed this one.  I'll
take this patch for 2.6.39-rc1, which will prevent merge conflicts
between your tree and the tegra tree in 2.6.40.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc
  2011-03-26 22:37       ` Colin Cross
@ 2011-03-27  8:07         ` Thomas Gleixner
  0 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-27  8:07 UTC (permalink / raw)
  To: Colin Cross
  Cc: Varun Wadekar, LKML, LAK, Russell King, Lennert Buytenhek, linux-tegra

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1730 bytes --]

On Sat, 26 Mar 2011, Colin Cross wrote:

> On Sat, Mar 26, 2011 at 1:24 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > On Sun, 27 Mar 2011, Varun Wadekar wrote:
> >>
> >> Thomas, then how do you think we should handle restoring of gpio states
> >> across suspend-resume cycles?
> >
> > That code is unused. Period. No caller, nothing nada. So what does it
> > handle?
> 
> Tegra suspend support didn't make it into 2.6.39, but should get
> merged in 2.6.40, and will call tegra_gpio_suspend/resume.
> 
> >> > -
> >> > -   for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) {
> >> > -           struct irq_desc *desc = irq_to_desc(i);
> >> > -           if (!desc || (desc->status & IRQ_WAKEUP))
> >> > -                   continue;
> >> > -           enable_irq(i);
> >> > -   }
> >
> > And this part is totally unacceptable and should have never been
> > merged. Further it is in the way of cleanups to the core code and as
> > there is no user I'm not willing to even think about what it does and
> > why it is there.
> >
> > FYI, the core code deals with interrupt suspending/resuming
> > already. So if there is a problem with that which does not cover your
> > specific problem, then you better talk to me before hacking up such
> > private workarounds and expecting that I tolerate them in unused code.
> 
> Yes, the existing code wrong, and unnecessary.  It was copied from
> mach-tegra/irq.c, which I later fixed, but I missed this one.  I'll
> take this patch for 2.6.39-rc1, which will prevent merge conflicts
> between your tree and the tegra tree in 2.6.40.

You can keep the functions if you need them anyway, but the irq
fiddling needs to go now as it blocks core code cleanups.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [patch 17/23] arm: at91: Cleanup irq chip
  2011-03-25 21:03   ` Thomas Gleixner
@ 2011-03-27 15:02     ` Sergei Shtylyov
  2011-03-27 15:47       ` Thomas Gleixner
  0 siblings, 1 reply; 32+ messages in thread
From: Sergei Shtylyov @ 2011-03-27 15:02 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, Russell King, LAK, Lennert Buytenhek

Hello.

On 26-03-2011 0:03, Thomas Gleixner wrote:

>> Avoid the whole lazy disable dance in the demux handler by providing a
>> irq_disable() callback.

>> Use the proper accessor functions and tidy up gpio_irq_handler()

>> Signed-off-by: Thomas Gleixner<tglx@linutronix.de>
[...]

>> Index: linux-2.6-tip/arch/arm/mach-at91/gpio.c
>> ===================================================================
>> --- linux-2.6-tip.orig/arch/arm/mach-at91/gpio.c
>> +++ linux-2.6-tip/arch/arm/mach-at91/gpio.c
[...]
>> @@ -384,16 +385,14 @@ static struct irq_chip gpio_irqchip = {
>>   static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
>>   {
>>   	unsigned	pin;
>> -	struct irq_desc	*gpio;
>> -	struct at91_gpio_chip *at91_gpio;
>> -	void __iomem	*pio;
>> +	struct irq_data *idata = irq_desc_get_irq_data(desc);
>> +	struct irq_chip *chip = irq_data_get_chip(data);
>> +	struct at91_gpio_chip *at91_gpio = irq_data_get_chip_data(data);

> Sorry, needs to be

> +	struct at91_gpio_chip *at91_gpio = irq_data_get_irq_chip_data(data);

> Will fix and resend.

    You also don't have 'data' defined anywhere, maybe you meant 'ídata'?

WBR, Sergei

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: [patch 17/23] arm: at91: Cleanup irq chip
  2011-03-27 15:02     ` Sergei Shtylyov
@ 2011-03-27 15:47       ` Thomas Gleixner
  0 siblings, 0 replies; 32+ messages in thread
From: Thomas Gleixner @ 2011-03-27 15:47 UTC (permalink / raw)
  To: Sergei Shtylyov; +Cc: LKML, Russell King, LAK, Lennert Buytenhek

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1315 bytes --]

On Sun, 27 Mar 2011, Sergei Shtylyov wrote:

> Hello.
> 
> On 26-03-2011 0:03, Thomas Gleixner wrote:
> 
> > > Avoid the whole lazy disable dance in the demux handler by providing a
> > > irq_disable() callback.
> 
> > > Use the proper accessor functions and tidy up gpio_irq_handler()
> 
> > > Signed-off-by: Thomas Gleixner<tglx@linutronix.de>
> [...]
> 
> > > Index: linux-2.6-tip/arch/arm/mach-at91/gpio.c
> > > ===================================================================
> > > --- linux-2.6-tip.orig/arch/arm/mach-at91/gpio.c
> > > +++ linux-2.6-tip/arch/arm/mach-at91/gpio.c
> [...]
> > > @@ -384,16 +385,14 @@ static struct irq_chip gpio_irqchip = {
> > >   static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
> > >   {
> > >   	unsigned	pin;
> > > -	struct irq_desc	*gpio;
> > > -	struct at91_gpio_chip *at91_gpio;
> > > -	void __iomem	*pio;
> > > +	struct irq_data *idata = irq_desc_get_irq_data(desc);
> > > +	struct irq_chip *chip = irq_data_get_chip(data);
> > > +	struct at91_gpio_chip *at91_gpio = irq_data_get_chip_data(data);
> 
> > Sorry, needs to be
> 
> > +	struct at91_gpio_chip *at91_gpio = irq_data_get_irq_chip_data(data);
> 
> > Will fix and resend.
> 
>    You also don't have 'data' defined anywhere, maybe you meant 'ídata'?

I know, the compiler already slapped me.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* RE: [patch 21/23] arm: Cleanup the irq namespace
  2011-03-25 13:22 ` [patch 21/23] arm: Cleanup the irq namespace Thomas Gleixner
@ 2011-04-18 17:43   ` H Hartley Sweeten
  0 siblings, 0 replies; 32+ messages in thread
From: H Hartley Sweeten @ 2011-04-18 17:43 UTC (permalink / raw)
  To: Thomas Gleixner, LKML; +Cc: Russell King, Lennert Buytenhek, LAK

On Friday, March 25, 2011 6:22 AM, Thomas Gleixner wrote:
> 
> Convert to the new function names. Automated with coccinelle.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> ---
 arch/arm/mach-ep93xx/gpio.c                    |   31 +++++++++++------

> Index: linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
> ===================================================================
> --- linux-2.6-tip.orig/arch/arm/mach-ep93xx/gpio.c
> +++ linux-2.6-tip/arch/arm/mach-ep93xx/gpio.c
> @@ -231,20 +231,29 @@ void __init ep93xx_gpio_init_irq(void)
>  
>  	for (gpio_irq = gpio_to_irq(0);
>  	     gpio_irq <= gpio_to_irq(EP93XX_GPIO_LINE_MAX_IRQ); ++gpio_irq) {
> -		set_irq_chip(gpio_irq, &ep93xx_gpio_irq_chip);
> -		set_irq_handler(gpio_irq, handle_level_irq);
> +		irq_set_chip(gpio_irq, &ep93xx_gpio_irq_chip);
> +		irq_set_handler(gpio_irq, handle_level_irq);
>  		set_irq_flags(gpio_irq, IRQF_VALID);
>  	}
>  
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO_AB, ep93xx_gpio_ab_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO0MUX, ep93xx_gpio_f_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO1MUX, ep93xx_gpio_f_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO2MUX, ep93xx_gpio_f_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO3MUX, ep93xx_gpio_f_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO4MUX, ep93xx_gpio_f_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO5MUX, ep93xx_gpio_f_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO6MUX, ep93xx_gpio_f_irq_handler);
> -	set_irq_chained_handler(IRQ_EP93XX_GPIO7MUX, ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO_AB,
> +				ep93xx_gpio_ab_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO0MUX,
> +				ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO1MUX,
> +				ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO2MUX,
> +				ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO3MUX,
> +				ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO4MUX,
> +				ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO5MUX,
> +				ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO6MUX,
> +				ep93xx_gpio_f_irq_handler);
> +	irq_set_chained_handler(IRQ_EP93XX_GPIO7MUX,
> +				ep93xx_gpio_f_irq_handler);
>  }

This appears to be the same patch as [27/29] arm: Cleanup the irq namespace

Regards,
Hartley

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2011-04-18 17:43 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-25 13:21 [patch 00/23] ARM: Final genirq cleanup Thomas Gleixner
2011-03-25 13:21 ` [patch 01/23] arm: Ns9xxx: Remove private irq flow handler Thomas Gleixner
2011-03-25 13:21 ` [patch 02/23] arm: tegra: Remove unused function which fiddles with irq_desc Thomas Gleixner
2011-03-26 20:12   ` Varun Wadekar
2011-03-26 20:24     ` Thomas Gleixner
2011-03-26 22:37       ` Colin Cross
2011-03-27  8:07         ` Thomas Gleixner
2011-03-25 13:21 ` [patch 03/23] arm: Use genirq lockdep helper to set lock class Thomas Gleixner
2011-03-25 13:21 ` [patch 04/23] arm: Use irq flag setter function Thomas Gleixner
2011-03-25 13:21 ` [patch 05/23] arm: msm: Convert to new irq chip functions Thomas Gleixner
2011-03-25 13:21 ` [patch 06/23] arm: Cleanup irq_desc access Thomas Gleixner
2011-03-25 13:21 ` [patch 07/23] arm: plat-samsung: Use proper irq accessor functions Thomas Gleixner
2011-03-25 13:21 ` [patch 08/23] arm: stmp3xxx: Use generic_handle_irq() Thomas Gleixner
2011-03-25 13:21 ` [patch 09/23] arm: nomadik: Use local irq state Thomas Gleixner
2011-03-25 13:22 ` [patch 10/23] arm: plat-omap: Cleanup irq_desc access Thomas Gleixner
2011-03-25 13:22 ` [patch 11/23] arm: msm: Use proper irq accessor functions Thomas Gleixner
2011-03-25 13:22 ` [patch 12/23] arm: vt8500: Use proper irq accessors Thomas Gleixner
2011-03-25 13:22 ` [patch 13/23] arm: mxc: Use generic_handle_irq() Thomas Gleixner
2011-03-25 13:22 ` [patch 14/23] arm: gemini: Use proper irq accessor functions Thomas Gleixner
2011-03-25 13:22 ` [patch 15/23] arm: ep93xx: " Thomas Gleixner
2011-03-25 13:22 ` [patch 16/23] arm: davinci: Cleanup irq chip code Thomas Gleixner
2011-03-25 13:22 ` [patch 17/23] arm: at91: Cleanup irq chip Thomas Gleixner
2011-03-25 21:03   ` Thomas Gleixner
2011-03-27 15:02     ` Sergei Shtylyov
2011-03-27 15:47       ` Thomas Gleixner
2011-03-25 13:22 ` [patch 18/23] arm: gic: Use proper accessor functions Thomas Gleixner
2011-03-25 13:22 ` [patch 19/23] arm: dove: Use proper irq " Thomas Gleixner
2011-03-25 13:22 ` [patch 20/23] arm: Use generic show_interrupts() Thomas Gleixner
2011-03-25 13:22 ` [patch 21/23] arm: Cleanup the irq namespace Thomas Gleixner
2011-04-18 17:43   ` H Hartley Sweeten
2011-03-25 13:22 ` [patch 22/23] arm: Reorder irq_set_ function calls Thomas Gleixner
2011-03-25 13:22 ` [patch 23/23] arm: Fold irq_set_chip/irq_set_handler Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).