From: Simon Glass Date: Sun, 12 Oct 2025 06:43:56 +0000 (-0600) Subject: boot: Move preparing bootdev into a function X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=996ded5463fd48497b6aa904a5647c2533d73ab3;p=thirdparty%2Fu-boot.git boot: Move preparing bootdev into a function We will want to use this same logic in another place within iter_inc(), so split it out into its own function. Signed-off-by: Simon Glass Reviewed-by: Tom Rini --- diff --git a/boot/bootflow.c b/boot/bootflow.c index 15df7069209..7ed076c898f 100644 --- a/boot/bootflow.c +++ b/boot/bootflow.c @@ -177,6 +177,32 @@ static void scan_next_in_uclass(struct udevice **devp) *devp = dev; } +/** + * prepare_bootdev() - Get ready to use a bootdev + * + * @iter: Bootflow iterator being used + * @dev: UCLASS_BOOTDEV device to use + * @method_flags: Method flag for the bootdev + * Return 0 if OK, -ve if the bootdev failed to probe + */ +static int prepare_bootdev(struct bootflow_iter *iter, struct udevice *dev, + int method_flags) +{ + int ret; + + /* + * Probe the bootdev. This does not probe any attached block device, + * since they are siblings + */ + ret = device_probe(dev); + log_debug("probe %s %d\n", dev->name, ret); + if (ret) + return log_msg_ret("probe", ret); + bootflow_iter_set_dev(iter, dev, method_flags); + + return 0; +} + /** * iter_incr() - Move to the next item (method, part, bootdev) * @@ -310,18 +336,10 @@ static int iter_incr(struct bootflow_iter *iter) } log_debug("ret=%d, dev=%p %s\n", ret, dev, dev ? dev->name : "none"); - if (ret) { + if (ret) bootflow_iter_set_dev(iter, NULL, 0); - } else { - /* - * Probe the bootdev. This does not probe any attached - * block device, since they are siblings - */ - ret = device_probe(dev); - log_debug("probe %s %d\n", dev->name, ret); - if (!log_msg_ret("probe", ret)) - bootflow_iter_set_dev(iter, dev, method_flags); - } + else + ret = prepare_bootdev(iter, dev, method_flags); } /* if there are no more bootdevs, give up */