Re: [PATCH v4 02/10] property: Add device_get_child_node_count_named()
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: 2025-02-25 10:39:54
Also in:
linux-acpi, linux-devicetree, linux-iio, linux-renesas-soc, linux-sunxi, lkml
On Tue, Feb 25, 2025 at 12:29:31PM +0200, Matti Vaittinen wrote:
On 25/02/2025 12:21, Andy Shevchenko wrote:quoted
On Tue, Feb 25, 2025 at 11:40:16AM +0200, Heikki Krogerus wrote:quoted
quoted
+/** + * device_get_child_node_count_named - number of child nodes with given name + * + * Scan device's child nodes and find all the nodes with a specific name and + * return the number of found nodes. Potential '@number' -ending for scanned + * names is ignored. Eg, + * device_get_child_node_count(dev, "channel"); + * would match all the nodes: + * channel { }, channel@0 {}, channel@0xabba {}... + * + * @dev: Device to count the child nodes forThis has an inconsistent kernel doc structure in comparison to the rest in this file.quoted
quoted
+ * Return: the number of child nodes with a matching name for a given device. + */ +unsigned int device_get_child_node_count_named(const struct device *dev, + const char *name) +{ + struct fwnode_handle *child; + unsigned int count = 0; + + device_for_each_child_node(dev, child) + if (fwnode_name_eq(child, "channel"))s/"channel"/name/ ?quoted
+ count++; + + return count; +} +EXPORT_SYMBOL_GPL(device_get_child_node_count_named);I did not check how many users are you proposing for this, but if there's only one, then IMO this should not be a global function yet. It just feels to special case to me. But let's see what the others think.The problem is that if somebody hides it, we might potentially see a duplication in the future. So I _slightly_ prefer to publish and then drop that after a few cycles if no users appear.After taking a very quick grep I spotted one other existing place where we might be able to do direct conversion to use this function. drivers/net/ethernet/freescale/gianfar.c That'd be 2 users.
I haven't checked myself, I believe your judgement, but can you add a (rfc?) patch at the end of this series to show that? With the luckily event of acking by the network people we may have it already done.
While I looked at it, it seems that a 'device_for_each_named_child_node()' -construct would have a few users.
-- With Best Regards, Andy Shevchenko