From: Luca Ceresoli <luca.ceresoli@bootlin.com>
To: "Miguel Ojeda" <ojeda@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Saravana Kannan" <saravanak@google.com>,
"Nathan Chancellor" <nathan@kernel.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Tony Lindgren" <tony@atomide.com>,
"Bjorn Andersson" <andersson@kernel.org>,
"Emilio López" <emilio@elopez.com.ar>,
"Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Daniel Lezcano" <daniel.lezcano@linaro.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Florian Fainelli" <florian.fainelli@broadcom.com>,
"Broadcom internal kernel review list"
<bcm-kernel-feedback-list@broadcom.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Jonathan Cameron" <jic23@kernel.org>,
"Lee Jones" <lee@kernel.org>, "Shawn Guo" <shawnguo@kernel.org>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Richard Leitner" <richard.leitner@linux.dev>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Nicolas Ferre" <nicolas.ferre@microchip.com>,
"Michael Ellerman" <mpe@ellerman.id.au>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Christophe Leroy" <christophe.leroy@csgroup.eu>,
"Naveen N. Rao" <naveen.n.rao@linux.ibm.com>,
"Damien Le Moal" <dlemoal@kernel.org>
Cc: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
llvm@lists.linux.dev, linux-clk@vger.kernel.org,
linux-omap@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, linux-samsung-soc@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-iio@vger.kernel.org,
linux-pwm@vger.kernel.org, linux-serial@vger.kernel.org,
linux-usb@vger.kernel.org, patches@opensource.cirrus.com,
linux-sound@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-riscv@lists.infradead.org,
Luca Ceresoli <luca.ceresoli@bootlin.com>
Subject: [PATCH 01/20] of: add of_property_for_each_u32_new()
Date: Wed, 03 Jul 2024 12:36:45 +0200 [thread overview]
Message-ID: <20240703-of_property_for_each_u32-v1-1-42c1fc0b82aa@bootlin.com> (raw)
In-Reply-To: <20240703-of_property_for_each_u32-v1-0-42c1fc0b82aa@bootlin.com>
The of_property_for_each_u32() macro needs five parameters, two of which
are often only used internally by the macro itself (in the for()
clause).
Now that the kernel uses C11 to build these two parameters can be avoided
by declaring them internally. Add a new macro for that, which is meant to
eventually replace the existing one.
Since two variables cannot be declared in the for clause, declare one
struct that contain the two variables we actually need. Since the variables
inside this struct are not meant to be used by users of this macro, give
the struct instance the noticeable name "_it" so it is visible during code
reviews, helping to avoid new code to use it directly.
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
.clang-format | 1 +
include/linux/of.h | 11 ++++++++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/.clang-format b/.clang-format
index ccc9b93972a9..db25cde2651a 100644
--- a/.clang-format
+++ b/.clang-format
@@ -570,6 +570,7 @@ ForEachMacros:
- 'of_for_each_phandle'
- 'of_property_for_each_string'
- 'of_property_for_each_u32'
+ - 'of_property_for_each_u32_new'
- 'pci_bus_for_each_resource'
- 'pci_dev_for_each_resource'
- 'pcl_for_each_chunk'
diff --git a/include/linux/of.h b/include/linux/of.h
index a0bedd038a05..756847539384 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -430,11 +430,9 @@ extern int of_detach_node(struct device_node *);
#define of_match_ptr(_ptr) (_ptr)
/*
- * struct property *prop;
- * const __be32 *p;
* u32 u;
*
- * of_property_for_each_u32(np, "propname", prop, p, u)
+ * of_property_for_each_u32_new(np, "propname", u)
* printk("U32 value: %x\n", u);
*/
const __be32 *of_prop_next_u32(struct property *prop, const __be32 *cur,
@@ -1437,6 +1435,13 @@ static inline int of_property_read_s32(const struct device_node *np,
p; \
p = of_prop_next_u32(prop, p, &u))
+#define of_property_for_each_u32_new(np, propname, u) \
+ for (struct {struct property *prop; const __be32 *item; } _it = \
+ {of_find_property(np, propname, NULL), \
+ of_prop_next_u32(_it.prop, NULL, &u)}; \
+ _it.item; \
+ _it.item = of_prop_next_u32(_it.prop, _it.item, &u))
+
#define of_property_for_each_string(np, propname, prop, s) \
for (prop = of_find_property(np, propname, NULL), \
s = of_prop_next_string(prop, NULL); \
--
2.34.1
next prev parent reply other threads:[~2024-07-03 10:37 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-03 10:36 [PATCH 00/20] Simplify of_property_for_each_u32() Luca Ceresoli
2024-07-03 10:36 ` Luca Ceresoli [this message]
2024-07-03 10:36 ` [PATCH 02/20] clk: convert to of_property_for_each_u32_new() Luca Ceresoli
2024-07-03 10:36 ` [PATCH 03/20] clk: qcom: " Luca Ceresoli
2024-07-03 10:36 ` [PATCH 04/20] clk: sunxi: clk-simple-gates: " Luca Ceresoli
2024-07-03 12:21 ` Andre Przywara
2024-07-03 10:36 ` [PATCH 05/20] clk: sunxi: clk-sun8i-bus-gates: " Luca Ceresoli
2024-07-03 12:19 ` Andre Przywara
2024-07-03 10:36 ` [PATCH 06/20] clocksource/drivers/samsung_pwm: " Luca Ceresoli
2024-07-03 10:36 ` [PATCH 07/20] bus: ti-sysc: " Luca Ceresoli
2024-07-03 10:36 ` [PATCH 08/20] lk: clk-conf: " Luca Ceresoli
2024-07-03 10:36 ` [PATCH 09/20] gpio: brcmstb: " Luca Ceresoli
2024-07-03 11:33 ` Bartosz Golaszewski
2024-07-03 10:36 ` [PATCH 10/20] pinctrl: s32cc: " Luca Ceresoli
2024-07-03 10:36 ` [PATCH 11/20] irqchip/atmel-aic: " Luca Ceresoli
2024-07-03 13:09 ` Nicolas Ferre
2024-07-03 10:36 ` [PATCH 12/20] iio: adc: ti_am335x_adc: " Luca Ceresoli
2024-07-03 15:34 ` Jonathan Cameron
2024-07-03 10:36 ` [PATCH 13/20] pwm: samsung: " Luca Ceresoli
2024-07-03 21:23 ` Uwe Kleine-König
2024-07-03 10:36 ` [PATCH 14/20] tty: sysrq: " Luca Ceresoli
2024-07-03 10:36 ` [PATCH 15/20] usb: usb251xb: " Luca Ceresoli
2024-07-08 7:45 ` Richard Leitner
2024-07-03 10:37 ` [PATCH 16/20] mfd: ti_am335x_tscadc: " Luca Ceresoli
2024-07-03 10:37 ` [PATCH 17/20] ASoC: arizona: " Luca Ceresoli
2024-07-03 11:31 ` Richard Fitzgerald
2024-07-03 12:18 ` Mark Brown
2024-07-03 10:37 ` [PATCH 18/20] powerpc/xive: " Luca Ceresoli
2024-07-03 10:37 ` [PATCH 19/20] " Luca Ceresoli
2024-07-03 10:37 ` [PATCH 20/20] of: deprecate and rename of_property_for_each_u32() Luca Ceresoli
2024-07-03 18:01 ` Rob Herring
2024-07-04 21:33 ` Luca Ceresoli
2024-07-03 18:07 ` [PATCH 00/20] Simplify of_property_for_each_u32() Rob Herring
2024-07-04 21:31 ` Luca Ceresoli
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=20240703-of_property_for_each_u32-v1-1-42c1fc0b82aa@bootlin.com \
--to=luca.ceresoli@bootlin.com \
--cc=andersson@kernel.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=brgl@bgdev.pl \
--cc=broonie@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=dlemoal@kernel.org \
--cc=emilio@elopez.com.ar \
--cc=florian.fainelli@broadcom.com \
--cc=gregkh@linuxfoundation.org \
--cc=jernej.skrabec@gmail.com \
--cc=jic23@kernel.org \
--cc=jirislaby@kernel.org \
--cc=kernel@pengutronix.de \
--cc=krzk@kernel.org \
--cc=lee@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=linux-usb@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=llvm@lists.linux.dev \
--cc=mpe@ellerman.id.au \
--cc=mturquette@baylibre.com \
--cc=nathan@kernel.org \
--cc=naveen.n.rao@linux.ibm.com \
--cc=nicolas.ferre@microchip.com \
--cc=npiggin@gmail.com \
--cc=ojeda@kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=peng.fan@oss.nxp.com \
--cc=richard.leitner@linux.dev \
--cc=robh@kernel.org \
--cc=samuel@sholland.org \
--cc=saravanak@google.com \
--cc=sboyd@kernel.org \
--cc=shawnguo@kernel.org \
--cc=tglx@linutronix.de \
--cc=thomas.petazzoni@bootlin.com \
--cc=tony@atomide.com \
--cc=ukleinek@kernel.org \
--cc=wens@csie.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 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).