uclass_get_device_by_seq //通过序号从uclass的设备链表中获取udevice,进行probe int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp) int uclass_get_device_by_seq(enum uclass_id id, int seq, struct udevice **devp) { struct udevice *dev; int ret; *devp ...
int uclass_find_device_by_seq(enum uclass_id id, int seq, struct udevice **devp) { struct uclass *uc; struct udevice *dev; int ret; *devp = NULL; log_debug("%d\n", seq); if (seq == -1) return -ENODEV; ret = uclass_get(id, &uc); if (ret) return ret; uclass_foreac...
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....
ret = uclass_first_device(UCLASS_PCI, busp); ret = uclass_first_device_err(UCLASS_PCI, busp); if (ret) return ret; else if (!*busp) return -ENODEV; ret = uclass_get_device_by_seq(UCLASS_PCI, busnum, busp); } 2 changes: 1 addition & 1 deletion 2 drivers/power/regulator/re...
struct udevice *dev; int ret; *devp = NULL; log_debug("%d\n", seq); if (seq == -1) return -ENODEV; ret = uclass_get(id, &uc); if (ret) return ret; uclass_foreach_dev(dev, uc) { log_debug(" - %d '%s'\n", dev->seq_, dev->name); ...
ret = uclass_get(id, &uc); if (ret) return ret; list_for_each_entry(dev, &uc->dev_head, uclass_node) { if (!strncmp(dev->name, name, strlen(name))) { *devp = dev; return 0; } } return -ENODEV; } int uclass_find_device_by_seq(enum uclass_id id, int seq_...
struct udevice; /* Members of this uclass sequence themselves with aliases */ #define DM_UC_FLAG_SEQ_ALIAS (1 << 0) /* Members of this uclass without aliases don't get a sequence number */ #define DM_UC_FLAG_NO_AUTO_SEQ (1 << 1) ...
int uclass_get_device_tail(struct udevice *dev, int ret, struct udevice **devp) { if (ret) return ret; assert(dev); // 调用device_probe对设备进行probe,这个函数说明参考前面 ret = device_probe(dev); if (ret) return ret; *devp = dev; ...
uclass_get_device_by_seq(UCLASS_SERIAL, INDEX, &dev) || 118 118 !uclass_get_device(UCLASS_SERIAL, INDEX, &dev) || 119 - (!uclass_first_device(UCLASS_SERIAL, &dev) && dev)) { 119 + (!uclass_first_device_check(UCLASS_SERIAL, &dev) && dev)) { 120 120 gd->cur_serial_...
tree file will point to the correct device: aliases { pci0 = &pci; }; pci: pci-controller { compatible = "sandbox,pci"; ... }; If there is no alias the devices will be numbered sequentially in the device tree. The call to uclass_get_device by seq() will cause the PCI bus to...