summaryrefslogtreecommitdiff
path: root/boot/vbe_simple.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2025-01-15 18:27:07 -0700
committerTom Rini <trini@konsulko.com>2025-01-22 09:47:49 -0600
commit190b128252b3861865d63c73ac9f13731aeb950f (patch)
treedeeb19dfcf4eb935f234aac0141ade0222ecd6da /boot/vbe_simple.c
parent27008ce51388faa448bf7b20b7e8104b8bc972a6 (diff)
vbe: Create a common function to get the block device
Add a vbe_get_blk() function and use it to obtain the block device used by VBE. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'boot/vbe_simple.c')
-rw-r--r--boot/vbe_simple.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/boot/vbe_simple.c b/boot/vbe_simple.c
index 313f063fa18..8a370cf02ef 100644
--- a/boot/vbe_simple.c
+++ b/boot/vbe_simple.c
@@ -98,28 +98,13 @@ int vbe_simple_read_state(struct udevice *dev, struct simple_state *state)
{
ALLOC_CACHE_ALIGN_BUFFER(u8, buf, MMC_MAX_BLOCK_LEN);
struct simple_priv *priv = dev_get_priv(dev);
- struct blk_desc *desc;
struct udevice *blk;
- char devname[16];
- const char *end;
- int devnum;
int ret;
- /* First figure out the block device */
- log_debug("storage=%s\n", priv->storage);
- devnum = trailing_strtoln_end(priv->storage, NULL, &end);
- if (devnum == -1)
- return log_msg_ret("num", -ENODEV);
- if (end - priv->storage >= sizeof(devname))
- return log_msg_ret("end", -E2BIG);
- strlcpy(devname, priv->storage, end - priv->storage + 1);
- log_debug("dev=%s, %x\n", devname, devnum);
-
- desc = blk_get_dev(devname, devnum);
- if (!desc)
- return log_msg_ret("get", -ENXIO);
-
- blk = desc->bdev;
+ ret = vbe_get_blk(priv->storage, &blk);
+ if (ret)
+ return log_msg_ret("blk", ret);
+
ret = simple_read_version(priv, blk, buf, state);
if (ret)
return log_msg_ret("ver", ret);