mirror of
https://github.com/armbian/build.git
synced 2025-08-11 05:36:57 +02:00
* sunxi-5.18: add new megous patches * switch to v5.18.5: exclude a previously applied patch * fix: tools/mk_format_patch: numbered=false by default * sunxi-5.18: rebasing and extraction using the mk_format_patch script
107 lines
2.9 KiB
Diff
107 lines
2.9 KiB
Diff
From 2b2b0dd857f1b6a90df715c0eebbf7e9d4ea184c Mon Sep 17 00:00:00 2001
|
|
From: Bjorn Andersson <bjorn.andersson@linaro.org>
|
|
Date: Fri, 22 Apr 2022 15:23:46 -0700
|
|
Subject: [PATCH 319/534] device property: Use multi-connection matchers for
|
|
single case
|
|
|
|
The newly introduced helpers for searching for matches in the case of
|
|
multiple connections can be resused by the single-connection case, so do
|
|
this to save some duplication.
|
|
|
|
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
|
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
|
|
---
|
|
drivers/base/property.c | 55 ++++-------------------------------------
|
|
1 file changed, 5 insertions(+), 50 deletions(-)
|
|
|
|
diff --git a/drivers/base/property.c b/drivers/base/property.c
|
|
index 0a2d3cc7c..92f827361 100644
|
|
--- a/drivers/base/property.c
|
|
+++ b/drivers/base/property.c
|
|
@@ -1206,31 +1206,6 @@ const void *device_get_match_data(struct device *dev)
|
|
}
|
|
EXPORT_SYMBOL_GPL(device_get_match_data);
|
|
|
|
-static void *
|
|
-fwnode_graph_devcon_match(struct fwnode_handle *fwnode, const char *con_id,
|
|
- void *data, devcon_match_fn_t match)
|
|
-{
|
|
- struct fwnode_handle *node;
|
|
- struct fwnode_handle *ep;
|
|
- void *ret;
|
|
-
|
|
- fwnode_graph_for_each_endpoint(fwnode, ep) {
|
|
- node = fwnode_graph_get_remote_port_parent(ep);
|
|
- if (!fwnode_device_is_available(node)) {
|
|
- fwnode_handle_put(node);
|
|
- continue;
|
|
- }
|
|
-
|
|
- ret = match(node, con_id, data);
|
|
- fwnode_handle_put(node);
|
|
- if (ret) {
|
|
- fwnode_handle_put(ep);
|
|
- return ret;
|
|
- }
|
|
- }
|
|
- return NULL;
|
|
-}
|
|
-
|
|
static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode,
|
|
const char *con_id, void *data,
|
|
devcon_match_fn_t match,
|
|
@@ -1265,28 +1240,6 @@ static unsigned int fwnode_graph_devcon_matches(struct fwnode_handle *fwnode,
|
|
return count;
|
|
}
|
|
|
|
-static void *
|
|
-fwnode_devcon_match(struct fwnode_handle *fwnode, const char *con_id,
|
|
- void *data, devcon_match_fn_t match)
|
|
-{
|
|
- struct fwnode_handle *node;
|
|
- void *ret;
|
|
- int i;
|
|
-
|
|
- for (i = 0; ; i++) {
|
|
- node = fwnode_find_reference(fwnode, con_id, i);
|
|
- if (IS_ERR(node))
|
|
- break;
|
|
-
|
|
- ret = match(node, NULL, data);
|
|
- fwnode_handle_put(node);
|
|
- if (ret)
|
|
- return ret;
|
|
- }
|
|
-
|
|
- return NULL;
|
|
-}
|
|
-
|
|
static unsigned int fwnode_devcon_matches(struct fwnode_handle *fwnode,
|
|
const char *con_id, void *data,
|
|
devcon_match_fn_t match,
|
|
@@ -1333,16 +1286,18 @@ void *fwnode_connection_find_match(struct fwnode_handle *fwnode,
|
|
const char *con_id, void *data,
|
|
devcon_match_fn_t match)
|
|
{
|
|
+ unsigned int count;
|
|
void *ret;
|
|
|
|
if (!fwnode || !match)
|
|
return NULL;
|
|
|
|
- ret = fwnode_graph_devcon_match(fwnode, con_id, data, match);
|
|
- if (ret)
|
|
+ count = fwnode_graph_devcon_matches(fwnode, con_id, data, match, &ret, 1);
|
|
+ if (count)
|
|
return ret;
|
|
|
|
- return fwnode_devcon_match(fwnode, con_id, data, match);
|
|
+ count = fwnode_devcon_matches(fwnode, con_id, data, match, &ret, 1);
|
|
+ return count ? ret : NULL;
|
|
}
|
|
EXPORT_SYMBOL_GPL(fwnode_connection_find_match);
|
|
|
|
--
|
|
2.35.3
|
|
|