All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: Marc Zyngier <maz@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>, Li Yang <leoyang.li@nxp.com>,
	Biwen Li <biwen.li@nxp.com>, Zhiqiang Hou <Zhiqiang.Hou@nxp.com>,
	Kurt Kanzenbach <kurt@linutronix.de>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>
Subject: [RFC PATCH devicetree 01/10] irqchip/ls-extirq: rename "interrupt-map" OF property to "fsl,extirq-map"
Date: Tue, 14 Dec 2021 03:37:51 +0200	[thread overview]
Message-ID: <20211214013800.2703568-2-vladimir.oltean@nxp.com> (raw)
In-Reply-To: <20211214013800.2703568-1-vladimir.oltean@nxp.com>

This OF property was supposed to be named "fsl,extirq-map" since the
first patch submissions, but at Rob Herring's suggestion it was named
"interrupt-map":
https://lore.kernel.org/lkml/20190927161118.GA19333@bogus/

At that time, the "interrupt-map" was ignored by the core for OF nodes
that also had an "interrupt-controller" property, but that changed with
commit 041284181226 ("of/irq: Allow matching of an interrupt-map local
to an interrupt controller"), which made the consumer drivers of the
ls-extirq break. To work around this breakage, the OF bindings for IRQs
have introduced a table of "OF IRQ interrupt-map abusers".
This can be seen in commit de4adddcbcc2 ("of/irq: Add a quirk for
controllers with their own definition of interrupt-map").

To stop being abusers, let's go back to the original form of these
bindings, before Rob's review. Compatibility will be kept with the
current abusive bindings for a few more kernel cycles, to give people
some time to update. But to also give them an incentive, print a warning
that the support for "interrupt-map" will be removed. This will be seen
when running a new kernel with an old device tree.

While the breakage was introduced relatively recently, the device tree
changes are intended to backport stable kernels for quicker conversion
to an acceptable set of bindings, and this driver will need to support
the updated stable bindings.

Fixes: 0dcd9f872769 ("irqchip: Add support for Layerscape external interrupt lines")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 drivers/irqchip/irq-ls-extirq.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/irqchip/irq-ls-extirq.c b/drivers/irqchip/irq-ls-extirq.c
index 853b3972dbe7..b6ecc5e3472f 100644
--- a/drivers/irqchip/irq-ls-extirq.c
+++ b/drivers/irqchip/irq-ls-extirq.c
@@ -101,9 +101,15 @@ ls_extirq_parse_map(struct ls_extirq_data *priv, struct device_node *node)
 	u32 mapsize;
 	int ret;
 
-	map = of_get_property(node, "interrupt-map", &mapsize);
-	if (!map)
-		return -ENOENT;
+	map = of_get_property(node, "fsl,extirq-map", &mapsize);
+	if (!map) {
+		map = of_get_property(node, "interrupt-map", &mapsize);
+		if (!map)
+			return -ENOENT;
+
+		pr_warn("\"interrupt-map\" is a reserved OF property, and support for it will be removed. Please use \"fsl,extirq-map\" instead.\n");
+	}
+
 	if (mapsize % sizeof(*map))
 		return -EINVAL;
 	mapsize /= sizeof(*map);
-- 
2.25.1


WARNING: multiple messages have this Message-ID (diff)
From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: Marc Zyngier <maz@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Shawn Guo <shawnguo@kernel.org>, Li Yang <leoyang.li@nxp.com>,
	Biwen Li <biwen.li@nxp.com>, Zhiqiang Hou <Zhiqiang.Hou@nxp.com>,
	Kurt Kanzenbach <kurt@linutronix.de>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>
Subject: [RFC PATCH devicetree 01/10] irqchip/ls-extirq: rename "interrupt-map" OF property to "fsl, extirq-map"
Date: Tue, 14 Dec 2021 03:37:51 +0200	[thread overview]
Message-ID: <20211214013800.2703568-2-vladimir.oltean@nxp.com> (raw)
In-Reply-To: <20211214013800.2703568-1-vladimir.oltean@nxp.com>

This OF property was supposed to be named "fsl,extirq-map" since the
first patch submissions, but at Rob Herring's suggestion it was named
"interrupt-map":
https://lore.kernel.org/lkml/20190927161118.GA19333@bogus/

At that time, the "interrupt-map" was ignored by the core for OF nodes
that also had an "interrupt-controller" property, but that changed with
commit 041284181226 ("of/irq: Allow matching of an interrupt-map local
to an interrupt controller"), which made the consumer drivers of the
ls-extirq break. To work around this breakage, the OF bindings for IRQs
have introduced a table of "OF IRQ interrupt-map abusers".
This can be seen in commit de4adddcbcc2 ("of/irq: Add a quirk for
controllers with their own definition of interrupt-map").

To stop being abusers, let's go back to the original form of these
bindings, before Rob's review. Compatibility will be kept with the
current abusive bindings for a few more kernel cycles, to give people
some time to update. But to also give them an incentive, print a warning
that the support for "interrupt-map" will be removed. This will be seen
when running a new kernel with an old device tree.

While the breakage was introduced relatively recently, the device tree
changes are intended to backport stable kernels for quicker conversion
to an acceptable set of bindings, and this driver will need to support
the updated stable bindings.

Fixes: 0dcd9f872769 ("irqchip: Add support for Layerscape external interrupt lines")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 drivers/irqchip/irq-ls-extirq.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/irqchip/irq-ls-extirq.c b/drivers/irqchip/irq-ls-extirq.c
index 853b3972dbe7..b6ecc5e3472f 100644
--- a/drivers/irqchip/irq-ls-extirq.c
+++ b/drivers/irqchip/irq-ls-extirq.c
@@ -101,9 +101,15 @@ ls_extirq_parse_map(struct ls_extirq_data *priv, struct device_node *node)
 	u32 mapsize;
 	int ret;
 
-	map = of_get_property(node, "interrupt-map", &mapsize);
-	if (!map)
-		return -ENOENT;
+	map = of_get_property(node, "fsl,extirq-map", &mapsize);
+	if (!map) {
+		map = of_get_property(node, "interrupt-map", &mapsize);
+		if (!map)
+			return -ENOENT;
+
+		pr_warn("\"interrupt-map\" is a reserved OF property, and support for it will be removed. Please use \"fsl,extirq-map\" instead.\n");
+	}
+
 	if (mapsize % sizeof(*map))
 		return -EINVAL;
 	mapsize /= sizeof(*map);
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-12-14  1:38 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-14  1:37 [RFC PATCH devicetree 00/10] Do something about ls-extirq interrupt-map breakage Vladimir Oltean
2021-12-14  1:37 ` Vladimir Oltean
2021-12-14  1:37 ` Vladimir Oltean [this message]
2021-12-14  1:37   ` [RFC PATCH devicetree 01/10] irqchip/ls-extirq: rename "interrupt-map" OF property to "fsl, extirq-map" Vladimir Oltean
2021-12-14  8:46   ` [RFC PATCH devicetree 01/10] irqchip/ls-extirq: rename "interrupt-map" OF property to "fsl,extirq-map" Kurt Kanzenbach
2021-12-14  8:46     ` Kurt Kanzenbach
2021-12-14 15:07   ` Rob Herring
2021-12-14 15:07     ` Rob Herring
2021-12-14  1:37 ` [RFC PATCH devicetree 02/10] Revert "arm64: dts: freescale: Fix 'interrupt-map' parent address cells" Vladimir Oltean
2021-12-14  1:37   ` Vladimir Oltean
2021-12-14  1:37 ` [RFC PATCH devicetree 03/10] dt-bindings: ls-extirq: replace "interrupt-map" documentation with "fsl,extirq-map" Vladimir Oltean
2021-12-14  1:37   ` [RFC PATCH devicetree 03/10] dt-bindings: ls-extirq: replace "interrupt-map" documentation with "fsl, extirq-map" Vladimir Oltean
2021-12-14  1:37 ` [RFC PATCH devicetree 04/10] arm64: dts: ls1043a: rename the "interrupt-map" of the extirq node to "fsl,extirq-map" Vladimir Oltean
2021-12-14  1:37   ` [RFC PATCH devicetree 04/10] arm64: dts: ls1043a: rename the "interrupt-map" of the extirq node to "fsl, extirq-map" Vladimir Oltean
2021-12-14  1:37 ` [RFC PATCH devicetree 05/10] arm64: dts: ls1046a: rename the "interrupt-map" of the extirq node to "fsl,extirq-map" Vladimir Oltean
2021-12-14  1:37   ` [RFC PATCH devicetree 05/10] arm64: dts: ls1046a: rename the "interrupt-map" of the extirq node to "fsl, extirq-map" Vladimir Oltean
2021-12-14  1:37 ` [RFC PATCH devicetree 06/10] arm64: dts: ls1088a: rename the "interrupt-map" of the extirq node to "fsl,extirq-map" Vladimir Oltean
2021-12-14  1:37   ` [RFC PATCH devicetree 06/10] arm64: dts: ls1088a: rename the "interrupt-map" of the extirq node to "fsl, extirq-map" Vladimir Oltean
2021-12-14  1:37 ` [RFC PATCH devicetree 07/10] arm64: dts: ls208xa: rename the "interrupt-map" of the extirq node to "fsl,extirq-map" Vladimir Oltean
2021-12-14  1:37   ` [RFC PATCH devicetree 07/10] arm64: dts: ls208xa: rename the "interrupt-map" of the extirq node to "fsl, extirq-map" Vladimir Oltean
2021-12-14  1:37 ` [RFC PATCH devicetree 08/10] arm64: dts: lx2160a: rename the "interrupt-map" of the extirq node to "fsl,extirq-map" Vladimir Oltean
2021-12-14  1:37   ` [RFC PATCH devicetree 08/10] arm64: dts: lx2160a: rename the "interrupt-map" of the extirq node to "fsl, extirq-map" Vladimir Oltean
2021-12-14  1:37 ` [RFC PATCH devicetree 09/10] ARM: dts: ls1021a: rename the "interrupt-map" of the extirq node to "fsl,extirq-map" Vladimir Oltean
2021-12-14  1:37   ` [RFC PATCH devicetree 09/10] ARM: dts: ls1021a: rename the "interrupt-map" of the extirq node to "fsl, extirq-map" Vladimir Oltean
2021-12-14  1:38 ` [RFC PATCH devicetree 10/10] dt-bindings: ls-extirq: add a YAML schema for the validator Vladimir Oltean
2021-12-14  1:38   ` Vladimir Oltean
2021-12-14 15:21   ` Rob Herring
2021-12-14 15:21     ` Rob Herring
2021-12-14  8:51 ` [RFC PATCH devicetree 00/10] Do something about ls-extirq interrupt-map breakage Marc Zyngier
2021-12-14  8:51   ` Marc Zyngier
2021-12-14  9:58   ` Vladimir Oltean
2021-12-14  9:58     ` Vladimir Oltean
2021-12-14 10:20     ` Marc Zyngier
2021-12-14 10:20       ` Marc Zyngier
2021-12-14 10:30       ` Vladimir Oltean
2021-12-14 10:30         ` Vladimir Oltean
2021-12-14 10:39         ` Marc Zyngier
2021-12-14 10:39           ` Marc Zyngier
2021-12-14 10:53           ` Vladimir Oltean
2021-12-14 10:53             ` Vladimir Oltean
2021-12-14 11:11             ` Marc Zyngier
2021-12-14 11:11               ` Marc Zyngier
2022-03-24 17:10       ` Vladimir Oltean
2022-03-24 17:10         ` Vladimir Oltean
2022-03-24 17:21         ` Marc Zyngier
2022-03-24 17:21           ` Marc Zyngier
2022-03-24 17:34           ` Vladimir Oltean
2022-03-24 17:34             ` Vladimir Oltean
2022-03-24 18:06             ` Marc Zyngier
2022-03-24 18:06               ` Marc Zyngier
2022-03-24 19:09               ` Vladimir Oltean
2022-03-24 19:09                 ` Vladimir Oltean
2022-03-24 20:14                 ` Marc Zyngier
2022-03-24 20:14                   ` Marc Zyngier
2022-03-25 10:34                 ` Robin Murphy
2022-03-25 10:34                   ` Robin Murphy
2022-03-25 17:54                   ` Vladimir Oltean
2022-03-25 17:54                     ` Vladimir Oltean

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211214013800.2703568-2-vladimir.oltean@nxp.com \
    --to=vladimir.oltean@nxp.com \
    --cc=Zhiqiang.Hou@nxp.com \
    --cc=biwen.li@nxp.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kurt@linutronix.de \
    --cc=leoyang.li@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=maz@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.