mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-17 18:36:00 +00:00
device property: Add fwnode_name_eq()
Add fwnode_name_eq() to implement the functionality of of_node_name_eq() on fwnode property API. The same convention of ending the comparison at '@' (besides NUL) is applied on also both ACPI and swnode. The function is intended for comparing unit address-less node names on DT and firmware or swnodes compliant with DT bindings. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Rafael J. Wysocki <rafael@kernel.org> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
03cc7fefbb
commit
a9c8c73806
@ -594,6 +594,34 @@ const char *fwnode_get_name_prefix(const struct fwnode_handle *fwnode)
|
||||
return fwnode_call_ptr_op(fwnode, get_name_prefix);
|
||||
}
|
||||
|
||||
/**
|
||||
* fwnode_name_eq - Return true if node name is equal
|
||||
* @fwnode: The firmware node
|
||||
* @name: The name to which to compare the node name
|
||||
*
|
||||
* Compare the name provided as an argument to the name of the node, stopping
|
||||
* the comparison at either NUL or '@' character, whichever comes first. This
|
||||
* function is generally used for comparing node names while ignoring the
|
||||
* possible unit address of the node.
|
||||
*
|
||||
* Return: true if the node name matches with the name provided in the @name
|
||||
* argument, false otherwise.
|
||||
*/
|
||||
bool fwnode_name_eq(const struct fwnode_handle *fwnode, const char *name)
|
||||
{
|
||||
const char *node_name;
|
||||
ptrdiff_t len;
|
||||
|
||||
node_name = fwnode_get_name(fwnode);
|
||||
if (!node_name)
|
||||
return false;
|
||||
|
||||
len = strchrnul(node_name, '@') - node_name;
|
||||
|
||||
return str_has_prefix(node_name, name) == len;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fwnode_name_eq);
|
||||
|
||||
/**
|
||||
* fwnode_get_parent - Return parent firwmare node
|
||||
* @fwnode: Firmware whose parent is retrieved
|
||||
|
@ -109,6 +109,7 @@ struct fwnode_handle *fwnode_find_reference(const struct fwnode_handle *fwnode,
|
||||
|
||||
const char *fwnode_get_name(const struct fwnode_handle *fwnode);
|
||||
const char *fwnode_get_name_prefix(const struct fwnode_handle *fwnode);
|
||||
bool fwnode_name_eq(const struct fwnode_handle *fwnode, const char *name);
|
||||
|
||||
struct fwnode_handle *fwnode_get_parent(const struct fwnode_handle *fwnode);
|
||||
struct fwnode_handle *fwnode_get_next_parent(struct fwnode_handle *fwnode);
|
||||
|
Loading…
x
Reference in New Issue
Block a user