summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPatrice Chotard <[email protected]>2021-09-10 16:16:20 +0200
committerPatrice Chotard <[email protected]>2021-10-12 14:19:52 +0200
commit38f7d3b6530edae4c4d506d6b9dbd0ae8b8ee5e6 (patch)
treee8b2819e6fa074adaaa01d8aadc8cfac3993174b /include
parent089e433e560f883b23c53b66ce3f8fb5a81bd431 (diff)
cmd: bind: Fix driver binding on a device
Fix a regression brings by commit 84f8e36f03fa ("cmd: bind: allow to bind driver with driver data") As example, the following bind command doesn't work: bind /soc/usb-otg@49000000 usb_ether As usb_ether driver has no compatible string, it can't be find by lists_bind_fdt(). In bind_by_node_path(), which called lists_bind_fdt(), the driver entry is known, pass it to lists_bind_fdt() to force the driver entry selection. For this, add a new parameter struct *driver to lists_bind_fdt(). Fix also all lists_bind_fdt() callers. Fixes: 84f8e36f03fa ("cmd: bind: allow to bind driver with driver data") Signed-off-by: Patrice Chotard <[email protected]> Reported-by: Herbert Poetzl <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Herbert Poetzl <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> Reviewed-by: Simon Glass <[email protected]>
Diffstat (limited to 'include')
-rw-r--r--include/dm/lists.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/dm/lists.h b/include/dm/lists.h
index 1a865525461..5896ae36583 100644
--- a/include/dm/lists.h
+++ b/include/dm/lists.h
@@ -53,13 +53,14 @@ int lists_bind_drivers(struct udevice *parent, bool pre_reloc_only);
* @parent: parent device (root)
* @node: device tree node to bind
* @devp: if non-NULL, returns a pointer to the bound device
+ * @drv: if non-NULL, force this driver to be bound
* @pre_reloc_only: If true, bind only nodes with special devicetree properties,
* or drivers with the DM_FLAG_PRE_RELOC flag. If false bind all drivers.
* @return 0 if device was bound, -EINVAL if the device tree is invalid,
* other -ve value on error
*/
int lists_bind_fdt(struct udevice *parent, ofnode node, struct udevice **devp,
- bool pre_reloc_only);
+ struct driver *drv, bool pre_reloc_only);
/**
* device_bind_driver() - bind a device to a driver