[U-Boot] [PATCH 3/8] dm: blk: Add a function to find the next block device number

Simon Glass sjg at chromium.org
Mon Apr 24 02:02:06 UTC 2017


At present this code is inline. Move it into a function to allow it to
be used elsewhere.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 drivers/block/blk-uclass.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index 8b6b28d890..7947ca6f22 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -473,6 +473,19 @@ int blk_find_max_devnum(enum if_type if_type)
 	return max_devnum;
 }
 
+static int blk_next_free_devnum(enum if_type if_type)
+{
+	int ret;
+
+	ret = blk_find_max_devnum(if_type);
+	if (ret == -ENODEV)
+		return 0;
+	else if (ret < 0)
+		return ret;
+	else
+		return ret + 1;
+}
+
 int blk_create_device(struct udevice *parent, const char *drv_name,
 		      const char *name, int if_type, int devnum, int blksz,
 		      lbaint_t size, struct udevice **devp)
@@ -482,13 +495,10 @@ int blk_create_device(struct udevice *parent, const char *drv_name,
 	int ret;
 
 	if (devnum == -1) {
-		ret = blk_find_max_devnum(if_type);
-		if (ret == -ENODEV)
-			devnum = 0;
-		else if (ret < 0)
+		ret = blk_next_free_devnum(if_type);
+		if (ret < 0)
 			return ret;
-		else
-			devnum = ret + 1;
+		devnum = ret;
 	}
 	ret = device_bind_driver(parent, drv_name, name, &dev);
 	if (ret)
-- 
2.12.2.816.g2cccc81164-goog



More information about the U-Boot mailing list