* [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT
@ 2016-09-06 13:59 ` Marc Zyngier
0 siblings, 0 replies; 6+ 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] 6+ messages in thread
* [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT
@ 2016-09-06 13:59 ` Marc Zyngier
0 siblings, 0 replies; 6+ messages in thread
From: Marc Zyngier @ 2016-09-06 13:59 UTC (permalink / raw)
To: linux-arm-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] 6+ messages in thread
* Re: [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
-1 siblings, 0 replies; 6+ 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] 6+ messages in thread
* [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT
@ 2016-09-07 22:13 ` Linus Walleij
0 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2016-09-07 22:13 UTC (permalink / raw)
To: linux-arm-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] 6+ 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
-1 siblings, 0 replies; 6+ 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] 6+ messages in thread
* [RFC PATCH] gpio/gpiolib: Forbid irqchip default trigger if probed over DT
@ 2016-09-08 11:14 ` Mika Westerberg
0 siblings, 0 replies; 6+ messages in thread
From: Mika Westerberg @ 2016-09-08 11:14 UTC (permalink / raw)
To: linux-arm-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] 6+ messages in thread
end of thread, other threads:[~2016-09-08 11:15 UTC | newest]
Thread overview: 6+ 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-06 13:59 ` Marc Zyngier
2016-09-07 22:13 ` Linus Walleij
2016-09-07 22:13 ` Linus Walleij
2016-09-08 11:14 ` Mika Westerberg
2016-09-08 11:14 ` Mika Westerberg
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.