diff options
-rw-r--r-- | arch/arm/mach-davinci/gpio.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/mach-davinci/gpio.c b/arch/arm/mach-davinci/gpio.c index a0b838894ac9..e7221398e5af 100644 --- a/arch/arm/mach-davinci/gpio.c +++ b/arch/arm/mach-davinci/gpio.c | |||
@@ -252,9 +252,11 @@ static struct irq_chip gpio_irqchip = { | |||
252 | static void | 252 | static void |
253 | gpio_irq_handler(unsigned irq, struct irq_desc *desc) | 253 | gpio_irq_handler(unsigned irq, struct irq_desc *desc) |
254 | { | 254 | { |
255 | struct davinci_gpio_regs __iomem *g = irq2regs(irq); | 255 | struct davinci_gpio_regs __iomem *g; |
256 | u32 mask = 0xffff; | 256 | u32 mask = 0xffff; |
257 | 257 | ||
258 | g = (__force struct davinci_gpio_regs __iomem *) irq_desc_get_handler_data(desc); | ||
259 | |||
258 | /* we only care about one bank */ | 260 | /* we only care about one bank */ |
259 | if (irq & 1) | 261 | if (irq & 1) |
260 | mask <<= 16; | 262 | mask <<= 16; |
@@ -422,8 +424,7 @@ static int __init davinci_gpio_irq_setup(void) | |||
422 | 424 | ||
423 | /* set up all irqs in this bank */ | 425 | /* set up all irqs in this bank */ |
424 | irq_set_chained_handler(bank_irq, gpio_irq_handler); | 426 | irq_set_chained_handler(bank_irq, gpio_irq_handler); |
425 | irq_set_chip_data(bank_irq, (__force void *)g); | 427 | irq_set_handler_data(bank_irq, (__force void *)g); |
426 | irq_set_handler_data(bank_irq, (void *)irq); | ||
427 | 428 | ||
428 | for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) { | 429 | for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) { |
429 | irq_set_chip(irq, &gpio_irqchip); | 430 | irq_set_chip(irq, &gpio_irqchip); |