gpio: set explicit nesting on drivers
authorLinus Walleij <linus.walleij@linaro.org>
Thu, 24 Nov 2016 12:27:54 +0000 (13:27 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 25 Nov 2016 14:12:27 +0000 (15:12 +0100)
The ADNP, CrystalCove and WhiskeyCove are all nested GPIO
irqchips, but were avoiding to connect the parent IRQ to
the gpiochip. This works, but is kind of sloppy as the
child IRQs are not marked as having the parent IRQ as
parent.

Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Ajay Thomas <ajay.thomas.david.rajamanickam@intel.com>
Cc: Bin Gao <bin.gao@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-adnp.c
drivers/gpio/gpio-crystalcove.c
drivers/gpio/gpio-wcove.c

index 7a5c0a93e1ff77a0ded9c41b6302dcdec9ec7b6f..89863ea25de168645fb3c662c7e0cc54ea94282c 100644 (file)
@@ -479,6 +479,8 @@ static int adnp_irq_setup(struct adnp *adnp)
                return err;
        }
 
+       gpiochip_set_nested_irqchip(chip, &adnp_irq_chip, adnp->client->irq);
+
        return 0;
 }
 
index d0022d655a09d9fd4b015b9f0f9c7e7cac91cd1f..2197368cc899d06ae231cb14d0825f7c9df1382f 100644 (file)
@@ -362,6 +362,8 @@ static int crystalcove_gpio_probe(struct platform_device *pdev)
                return retval;
        }
 
+       gpiochip_set_nested_irqchip(&cg->chip, &crystalcove_irqchip, irq);
+
        return 0;
 }
 
index 88f29601f8de0c4805fc44209f0437c5533554cb..34baee5b1dd65ba876fd7c67c2c80cab7cfc0de8 100644 (file)
@@ -446,6 +446,8 @@ static int wcove_gpio_probe(struct platform_device *pdev)
                return ret;
        }
 
+       gpiochip_set_nested_irqchip(&wg->chip, &wcove_irqchip, virq);
+
        return 0;
 }