arm: davinci: Fix fallout from generic irq chip conversion
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>
This commit is contained in:
parent
59c5f46fbe
commit
7416401661
1 changed files with 4 additions and 3 deletions
|
@ -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);
|
||||||
|
|
Reference in a new issue