[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240904134325.GA2416154-robh@kernel.org>
Date: Wed, 4 Sep 2024 08:43:25 -0500
From: Rob Herring <robh@...nel.org>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Chen-Yu Tsai <wenst@...omium.org>
Cc: Saravana Kannan <saravanak@...gle.com>,
Matthias Brugger <matthias.bgg@...il.com>,
AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
Wolfram Sang <wsa@...nel.org>, Benson Leung <bleung@...omium.org>,
Tzung-Bi Shih <tzungbi@...nel.org>, Mark Brown <broonie@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>,
chrome-platform@...ts.linux.dev, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-mediatek@...ts.infradead.org, linux-kernel@...r.kernel.org,
Douglas Anderson <dianders@...omium.org>,
Johan Hovold <johan@...nel.org>, Jiri Kosina <jikos@...nel.org>,
linux-i2c@...r.kernel.org
Subject: Re: [PATCH v6 02/12] of: base: Add
for_each_child_of_node_with_prefix_scoped()
On Wed, Sep 04, 2024 at 04:03:47PM +0300, Andy Shevchenko wrote:
> On Wed, Sep 04, 2024 at 05:00:04PM +0800, Chen-Yu Tsai wrote:
> > There are cases where drivers would go through child device nodes and
> > operate on only the ones whose node name starts with a given prefix.
> >
> > Provide a helper for these users. This will mainly be used in a
> > subsequent patch that implements a hardware component prober for I2C
> > busses.
>
> ...
>
> > +#define for_each_child_of_node_with_prefix_scoped(parent, child, prefix) \
> > + for (struct device_node *child __free(device_node) = \
> > + of_get_next_child_with_prefix(parent, NULL, prefix); \
> > + child != NULL; \
> > + child = of_get_next_child_with_prefix(parent, child, prefix))
>
> I'm wondering if we may drop _scoped from day 1. Yeah, probably a bit confusing
> as the rest of APIs without that suffix do require reference count handling on
> the loop abrupt.
Yes, please drop. We have other new ones coming and they don't have
"_scoped". I was on the fence, but if you use a scoped one like a
non-scoped one (declaring child outside or using it outside the loop)
you will get a compiler error.
Rob
Powered by blists - more mailing lists