mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
UPSTREAM: device property: Add fwnode_graph_get_port_parent
Provide a helper to obtain the parent device fwnode without first
parsing the remote-endpoint as per fwnode_graph_get_remote_port_parent.
Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit 6a71d8d777)
Signed-off-by: Brian J Lovin <brian.j.lovin@intel.com>
BUG=b:64133998
TEST=media device topology shows subdevs registered successfully
TEST=no camera regression
Change-Id: I58c0cfd2759aa62ada3d54cfb77f449ff8a0abc3
Reviewed-on: https://chromium-review.googlesource.com/693680
Commit-Ready: Tomasz Figa <tfiga@chromium.org>
Tested-by: Hyungwoo Yang <hyungwoo.yang@intel.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
This commit is contained in:
committed by
Tao Huang
parent
c1aa3cab9b
commit
c36f8b2d07
@@ -1097,6 +1097,26 @@ fwnode_graph_get_next_endpoint(struct fwnode_handle *fwnode,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fwnode_graph_get_next_endpoint);
|
||||
|
||||
/**
|
||||
* fwnode_graph_get_port_parent - Return the device fwnode of a port endpoint
|
||||
* @endpoint: Endpoint firmware node of the port
|
||||
*
|
||||
* Return: the firmware node of the device the @endpoint belongs to.
|
||||
*/
|
||||
struct fwnode_handle *
|
||||
fwnode_graph_get_port_parent(struct fwnode_handle *endpoint)
|
||||
{
|
||||
struct fwnode_handle *port, *parent;
|
||||
|
||||
port = fwnode_get_parent(endpoint);
|
||||
parent = fwnode_call_ptr_op(port, graph_get_port_parent);
|
||||
|
||||
fwnode_handle_put(port);
|
||||
|
||||
return parent;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(fwnode_graph_get_port_parent);
|
||||
|
||||
/**
|
||||
* fwnode_graph_get_remote_port_parent - Return fwnode of a remote device
|
||||
* @fwnode: Endpoint firmware node pointing to the remote endpoint
|
||||
@@ -1106,12 +1126,12 @@ EXPORT_SYMBOL_GPL(fwnode_graph_get_next_endpoint);
|
||||
struct fwnode_handle *
|
||||
fwnode_graph_get_remote_port_parent(struct fwnode_handle *fwnode)
|
||||
{
|
||||
struct fwnode_handle *port, *parent;
|
||||
struct fwnode_handle *endpoint, *parent;
|
||||
|
||||
port = fwnode_graph_get_remote_port(fwnode);
|
||||
parent = fwnode_call_ptr_op(port, graph_get_port_parent);
|
||||
endpoint = fwnode_graph_get_remote_endpoint(fwnode);
|
||||
parent = fwnode_graph_get_port_parent(endpoint);
|
||||
|
||||
fwnode_handle_put(port);
|
||||
fwnode_handle_put(endpoint);
|
||||
|
||||
return parent;
|
||||
}
|
||||
|
||||
@@ -216,6 +216,8 @@ void *device_get_mac_address(struct device *dev, char *addr, int alen);
|
||||
|
||||
struct fwnode_handle *fwnode_graph_get_next_endpoint(
|
||||
struct fwnode_handle *fwnode, struct fwnode_handle *prev);
|
||||
struct fwnode_handle *
|
||||
fwnode_graph_get_port_parent(struct fwnode_handle *fwnode);
|
||||
struct fwnode_handle *fwnode_graph_get_remote_port_parent(
|
||||
struct fwnode_handle *fwnode);
|
||||
struct fwnode_handle *fwnode_graph_get_remote_port(
|
||||
|
||||
Reference in New Issue
Block a user