linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT
@ 2016-09-06 13:59 Marc Zyngier
  2016-09-07 22:13 ` Linus Walleij
  0 siblings, 1 reply; 3+ messages in thread
From: Marc Zyngier @ 2016-09-06 13:59 UTC (permalink / raw)
  To: Linus Walleij; +Cc: linux-arm-kernel, linux-kernel

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>
---
 drivers/gpio/gpiolib.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 53ff25a..e467ad7 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1617,6 +1617,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_ON(of_node && type != IRQ_TYPE_NONE,
+		    "%s: Ignoring %d default trigger\n", of_node->full_name))
+		type = IRQ_TYPE_NONE;
+
 	gpiochip->irqchip = irqchip;
 	gpiochip->irq_handler = handler;
 	gpiochip->irq_default_type = type;
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT
  2016-09-06 13:59 [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT Marc Zyngier
@ 2016-09-07 22:13 ` Linus Walleij
  2016-09-08 11:14   ` Mika Westerberg
  0 siblings, 1 reply; 3+ messages in thread
From: Linus Walleij @ 2016-09-07 22:13 UTC (permalink / raw)
  To: Marc Zyngier, Mika Westerberg, Rafael J. Wysocki
  Cc: linux-arm-kernel, linux-kernel

On Tue, Sep 6, 2016 at 3:59 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:

> 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>

Patch applied. This is a good way to get rid of this madness.

> +       /*
> +        * 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_ON(of_node && type != IRQ_TYPE_NONE,
> +                   "%s: Ignoring %d default trigger\n", of_node->full_name))
> +               type = IRQ_TYPE_NONE;

I *strongly* suspect this is bad also when using ACPI.

Would the GPIO ACPI people devise a patch on top of this
to emit the same warning for the ACPI usecase?

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT
  2016-09-07 22:13 ` Linus Walleij
@ 2016-09-08 11:14   ` Mika Westerberg
  0 siblings, 0 replies; 3+ messages in thread
From: Mika Westerberg @ 2016-09-08 11:14 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Marc Zyngier, Rafael J. Wysocki, linux-arm-kernel, linux-kernel

On Thu, Sep 08, 2016 at 12:13:27AM +0200, Linus Walleij wrote:
> On Tue, Sep 6, 2016 at 3:59 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
> 
> > 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>
> 
> Patch applied. This is a good way to get rid of this madness.
> 
> > +       /*
> > +        * 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_ON(of_node && type != IRQ_TYPE_NONE,
> > +                   "%s: Ignoring %d default trigger\n", of_node->full_name))
> > +               type = IRQ_TYPE_NONE;
> 
> I *strongly* suspect this is bad also when using ACPI.

I agree.

> Would the GPIO ACPI people devise a patch on top of this
> to emit the same warning for the ACPI usecase?

Yup, I'll make a patch for ACPI next week.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-09-08 11:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-06 13:59 [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT Marc Zyngier
2016-09-07 22:13 ` Linus Walleij
2016-09-08 11:14   ` Mika Westerberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).