Lines Matching refs:dev

36 int bootdev_first_bootflow(struct udevice *dev, struct bootflow **bflowp)  in bootdev_first_bootflow()  argument
75 struct udevice *dev; in bootdev_bind() local
84 ret = device_bind_driver(parent, drv_name, str, &dev); in bootdev_bind()
87 device_set_name_alloced(dev); in bootdev_bind()
88 *devp = dev; in bootdev_bind()
93 int bootdev_find_in_blk(struct udevice *dev, struct udevice *blk, in bootdev_find_in_blk() argument
113 snprintf(name, sizeof(name), "%s.%s", dev->name, partstr); in bootdev_find_in_blk()
201 struct udevice *dev; in bootdev_list() local
208 ret = uclass_first_device_check(UCLASS_BOOTDEV, &dev); in bootdev_list()
210 ret = uclass_find_first_device(UCLASS_BOOTDEV, &dev); in bootdev_list()
211 for (i = 0; dev; i++) { in bootdev_list()
212 printf("%3x [ %c ] %6s %-9.9s %s\n", dev_seq(dev), in bootdev_list()
213 device_active(dev) ? '+' : ' ', in bootdev_list()
215 dev_get_uclass_name(dev_get_parent(dev)), dev->name); in bootdev_list()
217 ret = uclass_next_device_check(&dev); in bootdev_list()
219 uclass_find_next_device(&dev); in bootdev_list()
250 static int bootdev_get_suffix_start(struct udevice *dev, const char *suffix) in bootdev_get_suffix_start() argument
254 len = strlen(dev->name); in bootdev_get_suffix_start()
256 if (len > slen && !strcmp(suffix, dev->name + len - slen)) in bootdev_get_suffix_start()
264 struct udevice *parent, *dev; in bootdev_setup_for_sibling_blk() local
278 ret = device_find_child_by_name(parent, dev_name, &dev); in bootdev_setup_for_sibling_blk()
290 ret = device_bind_driver(parent, drv_name, str, &dev); in bootdev_setup_for_sibling_blk()
295 device_set_name_alloced(dev); in bootdev_setup_for_sibling_blk()
301 int bootdev_get_sibling_blk(struct udevice *dev, struct udevice **blkp) in bootdev_get_sibling_blk() argument
303 struct udevice *parent = dev_get_parent(dev); in bootdev_get_sibling_blk()
307 if (device_get_uclass_id(dev) != UCLASS_BOOTDEV) in bootdev_get_sibling_blk()
313 len = bootdev_get_suffix_start(dev, ".bootdev"); in bootdev_get_sibling_blk()
314 ret = device_find_child_by_namelen(parent, dev->name, len, &blk); in bootdev_get_sibling_blk()
319 dev->name); in bootdev_get_sibling_blk()
356 struct udevice *dev; in bootdev_unbind_dev() local
359 ret = device_find_first_child_by_uclass(parent, UCLASS_BOOTDEV, &dev); in bootdev_unbind_dev()
361 ret = device_remove(dev, DM_REMOVE_NORMAL); in bootdev_unbind_dev()
364 ret = device_unbind(dev); in bootdev_unbind_dev()
484 struct udevice *dev; in bootdev_find_by_any() local
493 ret = uclass_get_device_by_name(UCLASS_BOOTDEV, name, &dev); in bootdev_find_by_any()
495 ret = bootdev_find_by_label(name, &dev, &method_flags); in bootdev_find_by_any()
501 ret = device_probe(dev); in bootdev_find_by_any()
509 ret = uclass_get_device_by_seq(UCLASS_BOOTDEV, seq, &dev); in bootdev_find_by_any()
517 *devp = dev; in bootdev_find_by_any()
539 static int default_get_bootflow(struct udevice *dev, struct bootflow_iter *iter, in default_get_bootflow() argument
545 ret = bootdev_get_sibling_blk(dev, &blk); in default_get_bootflow()
557 ret = bootdev_find_in_blk(dev, blk, iter, bflow); in default_get_bootflow()
564 int bootdev_get_bootflow(struct udevice *dev, struct bootflow_iter *iter, in bootdev_get_bootflow() argument
567 const struct bootdev_ops *ops = bootdev_get_ops(dev); in bootdev_get_bootflow()
569 log_debug("->get_bootflow %s,%x=%p\n", dev->name, iter->part, in bootdev_get_bootflow()
571 bootflow_init(bflow, dev, iter->method); in bootdev_get_bootflow()
573 return default_get_bootflow(dev, iter, bflow); in bootdev_get_bootflow()
575 return ops->get_bootflow(dev, iter, bflow); in bootdev_get_bootflow()
581 struct udevice *dev; in bootdev_next_label() local
587 for (dev = NULL; !dev && iter->labels[++iter->cur_label];) { in bootdev_next_label()
592 ret = bootdev_hunt_and_find_by_label(label, &dev, in bootdev_next_label()
612 if (!dev) in bootdev_next_label()
614 *devp = dev; in bootdev_next_label()
621 struct udevice *dev = *devp; in bootdev_next_prio() local
627 log_debug("next prio %d: dev=%p/%s\n", iter->cur_prio, dev, in bootdev_next_prio()
628 dev ? dev->name : "none"); in bootdev_next_prio()
635 if (!dev) in bootdev_next_prio()
636 uclass_find_first_device(UCLASS_BOOTDEV, &dev); in bootdev_next_prio()
638 uclass_find_next_device(&dev); in bootdev_next_prio()
642 while (dev) { in bootdev_next_prio()
645 plat = dev_get_uclass_plat(dev); in bootdev_next_prio()
646 log_debug("- %s: %d, want %d\n", dev->name, plat->prio, in bootdev_next_prio()
650 uclass_find_next_device(&dev); in bootdev_next_prio()
654 if (!dev) { in bootdev_next_prio()
671 ret = device_probe(dev); in bootdev_next_prio()
674 dev->name); in bootdev_next_prio()
680 *devp = dev; in bootdev_next_prio()
688 struct udevice *bootstd, *dev = NULL; in bootdev_setup_iter() local
743 ret = bootdev_find_by_any(label, &dev, &method_flags); in bootdev_setup_iter()
765 ret = bootdev_next_label(iter, &dev, &method_flags); in bootdev_setup_iter()
767 ret = bootdev_next_prio(iter, &dev); in bootdev_setup_iter()
770 if (!dev) in bootdev_setup_iter()
772 log_debug("Selected bootdev: %s\n", dev->name); in bootdev_setup_iter()
775 ret = device_probe(dev); in bootdev_setup_iter()
780 *devp = dev; in bootdev_setup_iter()
935 static int bootdev_pre_unbind(struct udevice *dev) in bootdev_pre_unbind() argument
939 ret = bootstd_clear_bootflows_for_bootdev(dev); in bootdev_pre_unbind()