Messages in this thread Patch in this message |  | | From | Pin-yen Lin <> | Subject | [PATCH v8 1/9] device property: Add remote endpoint to devcon matcher | Date | Sat, 7 Jan 2023 18:22:23 +0800 |
| |
From: Prashant Malani <pmalani@chromium.org>
When searching the device graph for device matches, check the remote-endpoint itself for a match.
Some drivers register devices for individual endpoints. This allows the matcher code to evaluate those for a match too, instead of only looking at the remote parent devices. This is required when a device supports two mode switches in its endpoints, so we can't simply register the mode switch with the parent node.
Signed-off-by: Prashant Malani <pmalani@chromium.org> Signed-off-by: Pin-yen Lin <treapking@chromium.org>
---
(no changes since v6)
Changes in v6: - New in v6
drivers/base/property.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
diff --git a/drivers/base/property.c b/drivers/base/property.c index 2a5a37fcd998..48877af4e444 100644 --- a/drivers/base/property.c +++ b/drivers/base/property.c @@ -1223,6 +1223,21 @@ static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode, break; } + /* + * Some drivers may register devices for endpoints. Check + * the remote-endpoints for matches in addition to the remote + * port parent. + */ + node = fwnode_graph_get_remote_endpoint(ep); + if (fwnode_device_is_available(node)) { + ret = match(node, con_id, data); + if (ret) { + if (matches) + matches[count] = ret; + count++; + } + } + node = fwnode_graph_get_remote_port_parent(ep); if (!fwnode_device_is_available(node)) { fwnode_handle_put(node); -- 2.39.0.314.g84b9a713c41-goog
|  |