diff options
author | Simon Glass <sjg@chromium.org> | 2023-01-12 16:48:54 -0700 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-01-18 19:41:16 -0500 |
commit | 635bb31dad88f852b90376dfa38250b842cc5ba4 (patch) | |
tree | a16efbc231e6f5f90b0e3e056a5c8fbd4cf18e17 | |
parent | 65d373abb0e8267ca98723429b330186af35e0e1 (diff) | |
download | u-boot-635bb31dad88f852b90376dfa38250b842cc5ba4.zip u-boot-635bb31dad88f852b90376dfa38250b842cc5ba4.tar.gz u-boot-635bb31dad88f852b90376dfa38250b842cc5ba4.tar.bz2 |
vbe: Allow probing the VBE bootmeth to fail in OS fixup
This device is created when there are no bootmeths defined in the device
tree. But it cannot be probed without a device tree node.
For now, ignore a probe failure.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Karsten Merker <merker@debian.org>
Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Fixes: a56f663f0707 ("vbe: Add info about the VBE device to the fwupd node")
Tested-by: Vagrant Cascadian <vagrant@debian.org>
Tested-by: Karsten Merker <merker@debian.org>
-rw-r--r-- | boot/vbe_simple_os.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/boot/vbe_simple_os.c b/boot/vbe_simple_os.c index b2041a9..8c641ec 100644 --- a/boot/vbe_simple_os.c +++ b/boot/vbe_simple_os.c @@ -72,6 +72,18 @@ static int bootmeth_vbe_simple_ft_fixup(void *ctx, struct event *event) chosen = oftree_path(tree, "/chosen"); if (!ofnode_valid(chosen)) continue; + + ret = device_probe(dev); + if (ret) { + /* + * This should become an error when VBE is updated to + * only bind this device when a node exists + */ + log_debug("VBE device '%s' failed to probe (err=%d)", + dev->name, ret); + return 0; + } + ret = ofnode_add_subnode(chosen, "fwupd", &node); if (ret && ret != -EEXIST) return log_msg_ret("fwu", ret); @@ -80,10 +92,6 @@ static int bootmeth_vbe_simple_ft_fixup(void *ctx, struct event *event) if (ret && ret != -EEXIST) return log_msg_ret("dev", ret); - ret = device_probe(dev); - if (ret) - return log_msg_ret("probe", ret); - /* Copy over the vbe properties for fwupd */ log_debug("Fixing up: %s\n", dev->name); ret = ofnode_copy_props(dev_ofnode(dev), subnode); |