media: v4l2-fwnode: simplify v4l2_fwnode_parse_link
[ Upstream commit 507a0ba93aa1cf2837d2abc4ab0cbad3c29409d3 ] This helper was introduced before those helpers where awailable. Convert it to cleanup the code and improbe readability. Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Stable-dep-of: d7b13edd4cb4 ("media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
064e156e9f
commit
008b334af8
@ -560,33 +560,26 @@ int v4l2_fwnode_endpoint_alloc_parse(struct fwnode_handle *fwnode,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_fwnode_endpoint_alloc_parse);
|
||||
|
||||
int v4l2_fwnode_parse_link(struct fwnode_handle *__fwnode,
|
||||
int v4l2_fwnode_parse_link(struct fwnode_handle *fwnode,
|
||||
struct v4l2_fwnode_link *link)
|
||||
{
|
||||
const char *port_prop = "reg";
|
||||
struct fwnode_handle *fwnode;
|
||||
struct fwnode_endpoint fwep;
|
||||
|
||||
memset(link, 0, sizeof(*link));
|
||||
|
||||
fwnode = fwnode_get_parent(__fwnode);
|
||||
fwnode_property_read_u32(fwnode, port_prop, &link->local_port);
|
||||
fwnode = fwnode_get_next_parent(fwnode);
|
||||
if (is_of_node(fwnode) && of_node_name_eq(to_of_node(fwnode), "ports"))
|
||||
fwnode = fwnode_get_next_parent(fwnode);
|
||||
link->local_node = fwnode;
|
||||
fwnode_graph_parse_endpoint(fwnode, &fwep);
|
||||
link->local_port = fwep.port;
|
||||
link->local_node = fwnode_graph_get_port_parent(fwnode);
|
||||
|
||||
fwnode = fwnode_graph_get_remote_endpoint(__fwnode);
|
||||
fwnode = fwnode_graph_get_remote_endpoint(fwnode);
|
||||
if (!fwnode) {
|
||||
fwnode_handle_put(fwnode);
|
||||
return -ENOLINK;
|
||||
}
|
||||
|
||||
fwnode = fwnode_get_parent(fwnode);
|
||||
fwnode_property_read_u32(fwnode, port_prop, &link->remote_port);
|
||||
fwnode = fwnode_get_next_parent(fwnode);
|
||||
if (is_of_node(fwnode) && of_node_name_eq(to_of_node(fwnode), "ports"))
|
||||
fwnode = fwnode_get_next_parent(fwnode);
|
||||
link->remote_node = fwnode;
|
||||
fwnode_graph_parse_endpoint(fwnode, &fwep);
|
||||
link->remote_port = fwep.port;
|
||||
link->remote_node = fwnode_graph_get_port_parent(fwnode);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user