ret = uclass_find_device_by_name(id, name, &dev); return uclass_get_device_tail(dev, ret, devp); } int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp) { struct udevice *dev; int ret; *devp = NULL; ret = uclass_find_device_by_seq(id, seq, ...
uclass_find_device_by_seq() prints seq and req_seq when debugging is enabled, but this information is not very useful by itself. Add the name of he driver to this information. This improves debugging as it shows which devices are being considered. Signed-off-by: Alexandru Gagniuc <alex....
While uclass_find_device() fails with -ENODEV in case of list_empty strangely uclass_find_first_device() returns 0. Fix uclass_find_first_device() to also fail with -ENODEV instead. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Reviewed-by: Simon Glass <sjg@chromium.org>...
int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp) { struct udevice *dev; int ret; *devp = NULL; ret = uclass_find_device_by_seq(id, seq, &dev); return uclass_get_device_tail(dev, ret, devp); }...
int (*child_post_probe)(struct udevice *dev); int (*init)(struct uclass *class); int (*destroy)(struct uclass *class); int priv_auto; int per_device_auto; int per_device_plat_auto; int per_child_auto; int per_child_plat_auto; ...
int uclass_get_device_by_name(enum uclass_id id, const char *name, struct udevice **devp) { struct udevice *dev; int ret; *devp = NULL; ret = uclass_find_device_by_name(id, name, &dev); return uclass_get_device_tail(dev, ret, devp); } ...
int uclass_get_device_by_name(enum uclass_id id, const char *name, struct udevice **devp) { struct udevice *dev; int ret; *devp = NULL; ret = uclass_find_device_by_name(id, name, &dev); return uclass_get_device_tail(dev, ret, devp); } ...
@@ -153,6 +153,8 @@ int uclass_find_device(enum uclass_id id, int index, struct udevice **devp) ret = uclass_get(id, &uc); if (ret) return ret;if (list_empty(&uc->dev_head)) return -ENODEV;list_for_each_entry(dev, &uc->dev_head, uclass_node) { ...
uboot 2019 uclass、udevice uclass链表 drivers/core/uclass.c uclass_get,根据uclass_id去get,如果没有find到,则调用uclass_add()将uclass添加到gd->uclass_root链表里,uclass是用UCLASS_DRIVER macro define的,他们被放置在section(".u_boot_list_2_"#uclass"_2_"#_name) section,放置在.u_boot_list_2...
@@ -447,8 +447,8 @@ static int get_tpm(struct udevice **devp) { int rc; rc = uclass_first_device(UCLASS_TPM, devp); if (rc || !*devp) { rc = uclass_first_device_err(UCLASS_TPM, devp); if (rc) { printf("Could not find TPM (ret=%d)\n", rc); return CMD_RET_FA...