void __iomem *reg_base;
        int bit, bank_id;
        unsigned long sta;
-       struct bcm_kona_gpio_bank *bank = irq_get_handler_data(irq);
+       struct bcm_kona_gpio_bank *bank = irq_desc_get_handler_data(desc);
        struct irq_chip *chip = irq_desc_get_chip(desc);
 
        chained_irq_enter(chip, desc);
 
 
 static void dwapb_irq_handler(u32 irq, struct irq_desc *desc)
 {
-       struct dwapb_gpio *gpio = irq_get_handler_data(irq);
+       struct dwapb_gpio *gpio = irq_desc_get_handler_data(desc);
        struct irq_chip *chip = irq_desc_get_chip(desc);
 
        dwapb_do_irq(gpio);
 
 
 static void mvebu_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
-       struct mvebu_gpio_chip *mvchip = irq_get_handler_data(irq);
+       struct mvebu_gpio_chip *mvchip = irq_desc_get_handler_data(desc);
        struct irq_chip *chip = irq_desc_get_chip(desc);
        u32 cause, type;
        int i;
 
 static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
        u32 irq_stat;
-       struct mxc_gpio_port *port = irq_get_handler_data(irq);
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct mxc_gpio_port *port = irq_desc_get_handler_data(desc);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
 
        chained_irq_enter(chip, desc);
 
 {
        u32 irq_msk, irq_stat;
        struct mxc_gpio_port *port;
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
 
        chained_irq_enter(chip, desc);
 
 
 static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
        u32 irq_stat;
-       struct mxs_gpio_port *port = irq_get_handler_data(irq);
+       struct mxs_gpio_port *port = irq_desc_get_handler_data(desc);
 
        desc->irq_data.chip->irq_ack(&desc->irq_data);
 
 
        struct gpio_bank *bank;
        int unmasked = 0;
        struct irq_chip *irqchip = irq_desc_get_chip(desc);
-       struct gpio_chip *chip = irq_get_handler_data(irq);
+       struct gpio_chip *chip = irq_desc_get_handler_data(desc);
 
        chained_irq_enter(irqchip, desc);
 
 
 
 static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
-       struct tegra_gpio_bank *bank;
        int port;
        int pin;
        int unmasked = 0;
        struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct tegra_gpio_bank *bank = irq_desc_get_handler_data(desc);
 
        chained_irq_enter(chip, desc);
 
-       bank = irq_get_handler_data(irq);
-
        for (port = 0; port < 4; port++) {
                int gpio = tegra_gpio_compose(bank->bank, port, 0);
                unsigned long sta = tegra_gpio_readl(GPIO_INT_STA(gpio)) &
 
 
 static void timbgpio_irq(unsigned int irq, struct irq_desc *desc)
 {
-       struct timbgpio *tgpio = irq_get_handler_data(irq);
+       struct timbgpio *tgpio = irq_desc_get_handler_data(desc);
+       struct irq_data *data = irq_desc_get_irq_data(desc);
        unsigned long ipr;
        int offset;
 
-       desc->irq_data.chip->irq_ack(irq_get_irq_data(irq));
+       data->chip->irq_ack(data);
        ipr = ioread32(tgpio->membase + TGPIO_IPR);
        iowrite32(ipr, tgpio->membase + TGPIO_ICR);
 
 
 
 static void vf610_gpio_irq_handler(u32 irq, struct irq_desc *desc)
 {
-       struct vf610_gpio_port *port = irq_get_handler_data(irq);
+       struct vf610_gpio_port *port = irq_desc_get_handler_data(desc);
        struct irq_chip *chip = irq_desc_get_chip(desc);
        int pin;
        unsigned long irq_isfr;
 
 {
        u32 int_sts, int_enb;
        unsigned int bank_num;
-       struct zynq_gpio *gpio = irq_get_handler_data(irq);
+       struct zynq_gpio *gpio = irq_desc_get_handler_data(desc);
        struct irq_chip *irqchip = irq_desc_get_chip(desc);
 
        chained_irq_enter(irqchip, desc);