[PATCH 1/1] dm: fix logic of lists_bind_fdt()
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Mon Jul 11 08:25:33 CEST 2022
If parameter drv of lists_bind_fdt() is specified, we shall bind only to
this very driver and to no other.
If the driver drv has an of_match property, we shall only bind to the
driver if it matches the compatible string of the device.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
---
drivers/core/lists.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/core/lists.c b/drivers/core/lists.c
index 93514a744d..c49695b24f 100644
--- a/drivers/core/lists.c
+++ b/drivers/core/lists.c
@@ -223,10 +223,14 @@ int lists_bind_fdt(struct udevice *parent, ofnode node, struct udevice **devp,
compat);
for (entry = driver; entry != driver + n_ents; entry++) {
+ if (drv) {
+ if (drv != entry)
+ continue;
+ if (!entry->of_match)
+ break;
+ }
ret = driver_check_compatible(entry->of_match, &id,
compat);
- if ((drv) && (drv == entry))
- break;
if (!ret)
break;
}
--
2.36.1
More information about the U-Boot
mailing list