Skip to content

Commit

Permalink
arm: davinci: Fix fallout from generic irq chip conversion
Browse files Browse the repository at this point in the history
The code which does the chained handler setup was overwriting
chip_data.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Holger Hans Peter Freyther <holger@freyther.de>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
  • Loading branch information
Thomas Gleixner authored and Sekhar Nori committed Jun 8, 2011
1 parent 59c5f46 commit 7416401
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions arch/arm/mach-davinci/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,9 +252,11 @@ static struct irq_chip gpio_irqchip = {
static void
gpio_irq_handler(unsigned irq, struct irq_desc *desc)
{
struct davinci_gpio_regs __iomem *g = irq2regs(irq);
struct davinci_gpio_regs __iomem *g;
u32 mask = 0xffff;

g = (__force struct davinci_gpio_regs __iomem *) irq_desc_get_handler_data(desc);

/* we only care about one bank */
if (irq & 1)
mask <<= 16;
Expand Down Expand Up @@ -422,8 +424,7 @@ static int __init davinci_gpio_irq_setup(void)

/* set up all irqs in this bank */
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);
irq_set_handler_data(bank_irq, (__force void *)g);

for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) {
irq_set_chip(irq, &gpio_irqchip);
Expand Down

0 comments on commit 7416401

Please sign in to comment.