Commit 1490cbb9 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Lee Jones
Browse files

device property: Split fwnode_get_child_node_count()



The new helper is introduced to allow counting the child firmware nodes
of their parent without requiring a device to be passed. This also makes
the fwnode and device property API more symmetrical with the rest.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: default avatar"Rafael J. Wysocki" <rafael@kernel.org>
Reviewed-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20250310150835.3139322-2-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent 0af2f6be
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -928,22 +928,22 @@ bool fwnode_device_is_available(const struct fwnode_handle *fwnode)
EXPORT_SYMBOL_GPL(fwnode_device_is_available);

/**
 * device_get_child_node_count - return the number of child nodes for device
 * @dev: Device to count the child nodes for
 * fwnode_get_child_node_count - return the number of child nodes for a given firmware node
 * @fwnode: Pointer to the parent firmware node
 *
 * Return: the number of child nodes for a given device.
 * Return: the number of child nodes for a given firmware node.
 */
unsigned int device_get_child_node_count(const struct device *dev)
unsigned int fwnode_get_child_node_count(const struct fwnode_handle *fwnode)
{
	struct fwnode_handle *child;
	unsigned int count = 0;

	device_for_each_child_node(dev, child)
	fwnode_for_each_child_node(fwnode, child)
		count++;

	return count;
}
EXPORT_SYMBOL_GPL(device_get_child_node_count);
EXPORT_SYMBOL_GPL(fwnode_get_child_node_count);

bool device_dma_supported(const struct device *dev)
{
+6 −1
Original line number Diff line number Diff line
@@ -208,7 +208,12 @@ DEFINE_FREE(fwnode_handle, struct fwnode_handle *, fwnode_handle_put(_T))
int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index);
int fwnode_irq_get_byname(const struct fwnode_handle *fwnode, const char *name);

unsigned int device_get_child_node_count(const struct device *dev);
unsigned int fwnode_get_child_node_count(const struct fwnode_handle *fwnode);

static inline unsigned int device_get_child_node_count(const struct device *dev)
{
	return fwnode_get_child_node_count(dev_fwnode(dev));
}

static inline int device_property_read_u8(const struct device *dev,
					  const char *propname, u8 *val)