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); |
