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

Commit 74164016 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Sekhar Nori
Browse files

arm: davinci: Fix fallout from generic irq chip conversion



The code which does the chained handler setup was overwriting
chip_data.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: default avatarHolger Hans Peter Freyther <holger@freyther.de>
Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent 59c5f46f
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -252,9 +252,11 @@ static struct irq_chip gpio_irqchip = {
static void
static void
gpio_irq_handler(unsigned irq, struct irq_desc *desc)
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;
	u32 mask = 0xffff;


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

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


		/* set up all irqs in this bank */
		/* set up all irqs in this bank */
		irq_set_chained_handler(bank_irq, gpio_irq_handler);
		irq_set_chained_handler(bank_irq, gpio_irq_handler);
		irq_set_chip_data(bank_irq, (__force void *)g);
		irq_set_handler_data(bank_irq, (__force void *)g);
		irq_set_handler_data(bank_irq, (void *)irq);


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