gpio/gpiolib: Forbid irqchip default trigger if probed over DT
Using a default trigger is a bad idea if using DT to configure interrupts, as the device's interrupt specifier will always contain the trigger configuration. Let's warn about that particular situation, and revert to not having a default. Hopefully, the couple of drivers still using this feature will quickly be fixed. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
5d2f1d6ef9
commit
332e99d5ae
|
@ -1613,6 +1613,15 @@ int _gpiochip_irqchip_add(struct gpio_chip *gpiochip,
|
|||
if (gpiochip->of_node)
|
||||
of_node = gpiochip->of_node;
|
||||
#endif
|
||||
/*
|
||||
* Specifying a default trigger is a terrible idea if DT is
|
||||
* used to configure the interrupts, as you may end-up with
|
||||
* conflicting triggers. Tell the user, and reset to NONE.
|
||||
*/
|
||||
if (WARN(of_node && type != IRQ_TYPE_NONE,
|
||||
"%s: Ignoring %d default trigger\n", of_node->full_name, type))
|
||||
type = IRQ_TYPE_NONE;
|
||||
|
||||
gpiochip->irqchip = irqchip;
|
||||
gpiochip->irq_handler = handler;
|
||||
gpiochip->irq_default_type = type;
|
||||
|
|
Loading…
Reference in a new issue