From: Dmitry Torokhov <dtor@xxxxxxxxxxxx> Generic code that works with ACPI, device tree, and pset properties may want to fetch named child node of fwnode_handle. Signed-off-by: Dmitry Torokhov <dtor@xxxxxxxxxxxx> Signed-off-by: Furquan Shaikh <furquan@xxxxxxxxxxxx> --- drivers/base/property.c | 45 +++++++++++++++++++++++++++++---------------- include/linux/fwnode.h | 3 +++ 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/drivers/base/property.c b/drivers/base/property.c index fbb05a4a7595..3556c9fbdbf7 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -889,23 +889,11 @@ struct fwnode_handle *fwnode_get_next_child_node(struct fwnode_handle *node, EXPORT_SYMBOL_GPL(fwnode_get_next_child_node); /** - * device_get_next_child_node - Return the next child node handle for a device - * @dev: Device to find the next child node for. - * @child: Handle to one of the device's child nodes or a null handle. - */ -struct fwnode_handle *device_get_next_child_node(struct device *dev, - struct fwnode_handle *child) -{ - return fwnode_get_next_child_node(dev_fwnode(dev), child); -} -EXPORT_SYMBOL_GPL(device_get_next_child_node); - -/** - * device_get_named_child_node - Return first matching named child node handle - * @dev: Device to find the named child node for. + * fwnode_get_named_child_node - Return first matching named child node handle + * @node: Node to find the named child node for. * @childname: String to match child node name against. */ -struct fwnode_handle *device_get_named_child_node(struct device *dev, +struct fwnode_handle *fwnode_get_named_child_node(struct fwnode_handle *node, const char *childname) { struct fwnode_handle *child; @@ -914,7 +902,7 @@ struct fwnode_handle *device_get_named_child_node(struct device *dev, * Find first matching named child node of this device. * For ACPI this will be a data only sub-node. */ - device_for_each_child_node(dev, child) { + fwnode_for_each_child_node(node, child) { if (is_of_node(child)) { if (!of_node_cmp(to_of_node(child)->name, childname)) return child; @@ -926,6 +914,31 @@ struct fwnode_handle *device_get_named_child_node(struct device *dev, return NULL; } +EXPORT_SYMBOL_GPL(fwnode_get_named_child_node); + + +/** + * device_get_next_child_node - Return the next child node handle for a device + * @dev: Device to find the next child node for. + * @child: Handle to one of the device's child nodes or a null handle. + */ +struct fwnode_handle *device_get_next_child_node(struct device *dev, + struct fwnode_handle *child) +{ + return fwnode_get_next_child_node(dev_fwnode(dev), child); +} +EXPORT_SYMBOL_GPL(device_get_next_child_node); + +/** + * device_get_named_child_node - Return first matching named child node handle + * @dev: Device to find the named child node for. + * @childname: String to match child node name against. + */ +struct fwnode_handle *device_get_named_child_node(struct device *dev, + const char *childname) +{ + return fwnode_get_named_child_node(dev_fwnode(dev), childname); +} EXPORT_SYMBOL_GPL(device_get_named_child_node); /** diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index b4efe2a088ae..d501e0b967bd 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -34,4 +34,7 @@ struct fwnode_handle *fwnode_get_next_child_node(struct fwnode_handle *node, for (child = fwnode_get_next_child_node(node, NULL); child; \ child = fwnode_get_next_child_node(node, child)) +struct fwnode_handle *fwnode_get_named_child_node(struct fwnode_handle *node, + const char *childname); + #endif -- 2.11.0.483.g087da7b7c-goog -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html