[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z8WZh5EzFqxvU5rb@smile.fi.intel.com>
Date: Mon, 3 Mar 2025 13:59:03 +0200
From: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
To: Matti Vaittinen <mazziesaccount@...il.com>
Cc: Matti Vaittinen <matti.vaittinen@...rohmeurope.com>,
Jonathan Cameron <jic23@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Daniel Scally <djrscally@...il.com>,
Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
Sakari Ailus <sakari.ailus@...ux.intel.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Danilo Krummrich <dakr@...nel.org>,
Claudiu Manoil <claudiu.manoil@....com>,
Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
linux-iio@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-acpi@...r.kernel.org,
netdev@...r.kernel.org
Subject: Re: [PATCH v5 02/10] property: Add functions to count named child
nodes
On Mon, Mar 03, 2025 at 01:31:45PM +0200, Matti Vaittinen wrote:
> There are some use-cases where child nodes with a specific name need to
> be parsed. In a few cases the data from the found nodes is added to an
> array which is allocated based on the number of found nodes. One example
> of such use is the IIO subsystem's ADC channel nodes, where the relevant
> nodes are named as channel[@N].
>
> Add a helpers for counting device's sub-nodes with certain name instead
> of open-coding this in every user.
...
> +unsigned int fwnode_get_child_node_count_named(const struct fwnode_handle *fwnode,
> + const char *name)
> +{
> + struct fwnode_handle *child;
> + unsigned int count = 0;
> + fwnode_for_each_child_node(fwnode, child)
> + if (fwnode_name_eq(child, name))
I would expect this to be a separate macro
fwnode_for_each_named_child_node()
(and its device variant) that gives us more consistent approach.
> + count++;
And the above looks like missing {}, which won't be needed with the other
suggestion in place.
> + return count;
> +}
> + if (!fwnode)
> + return -EINVAL;
> +
> + if (IS_ERR(fwnode))
> + return PTR_ERR(fwnode);
I expect that this will return 0 or number of nodes. Why do we need an error code?
If it's really required, it should be in the fwnode API above.
Also do we care about secondary fwnodes?
> + return fwnode_get_child_node_count_named(fwnode, name);
> +}
...
> +unsigned int fwnode_get_child_node_count_named(const struct fwnode_handle *fwnode,
> + const char *name);
To me the following name sounds better: fwnode_get_named_child_node_count().
> +unsigned int device_get_child_node_count_named(const struct device *dev,
> + const char *name);
In the similar way.
--
With Best Regards,
Andy Shevchenko
Powered by blists - more mailing lists