Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc756026 authored by Kevin Hilman's avatar Kevin Hilman
Browse files

davinci: fixups for banked GPIO interrupt handling



This patch seems to get me much more reliable performance using the
GPIO banked interrupts on dm355 for the dm9000 driver.

Changes include:

- init GPIO handling along with normal GPIO init
- mask the level-sensitive bank IRQ during handling

Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent df4aab46
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ static struct gpio_controller __iomem * __init gpio2controller(unsigned gpio)
	return __gpio_to_controller(gpio);
}

static int __init davinci_gpio_irq_setup(void);

/*--------------------------------------------------------------------------*/

@@ -157,6 +158,7 @@ static int __init davinci_gpio_setup(void)
		gpiochip_add(&chips[i].chip);
	}

	davinci_gpio_irq_setup();
	return 0;
}
pure_initcall(davinci_gpio_setup);
@@ -238,6 +240,7 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
		mask <<= 16;

	/* temporarily mask (level sensitive) parent IRQ */
	desc->chip->mask(irq);
	desc->chip->ack(irq);
	while (1) {
		u32		status;
@@ -333,4 +336,3 @@ static int __init davinci_gpio_irq_setup(void)

	return 0;
}
arch_initcall(davinci_gpio_irq_setup);