[PATCH 7/8] disk: Move part_create_block_devices() to blk uclass

Marek Vasut marek.vasut+renesas at mailbox.org
Mon Aug 14 01:46:47 CEST 2023


Move part_create_block_devices() to blk uclass and unexpose
the function. This can now be internal to the block uclass.

Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
---
Cc: AKASHI Takahiro <takahiro.akashi at linaro.org>
Cc: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
Cc: Bin Meng <bmeng.cn at gmail.com>
Cc: Heinrich Schuchardt <xypron.glplk at gmx.de>
Cc: Joshua Watt <jpewhacker at gmail.com>
Cc: Michal Suchanek <msuchanek at suse.de>
Cc: Simon Glass <sjg at chromium.org>
Cc: Tobias Waldekranz <tobias at waldekranz.com>
---
 disk/disk-uclass.c         | 48 --------------------------------------
 drivers/block/blk-uclass.c | 48 ++++++++++++++++++++++++++++++++++++++
 include/part.h             |  9 -------
 3 files changed, 48 insertions(+), 57 deletions(-)

diff --git a/disk/disk-uclass.c b/disk/disk-uclass.c
index 90a7c6f0f8a..efe4bf1f949 100644
--- a/disk/disk-uclass.c
+++ b/disk/disk-uclass.c
@@ -55,54 +55,6 @@ static lbaint_t disk_blk_part_offset(struct udevice *dev, lbaint_t start)
 	return start + part->gpt_part_info.start;
 }
 
-int part_create_block_devices(struct udevice *blk_dev)
-{
-	int part, count;
-	struct blk_desc *desc = dev_get_uclass_plat(blk_dev);
-	struct disk_partition info;
-	struct disk_part *part_data;
-	char devname[32];
-	struct udevice *dev;
-	int ret;
-
-	if (!CONFIG_IS_ENABLED(PARTITIONS) || !blk_enabled())
-		return 0;
-
-	if (device_get_uclass_id(blk_dev) != UCLASS_BLK)
-		return 0;
-
-	/* Add devices for each partition */
-	for (count = 0, part = 1; part <= MAX_SEARCH_PARTITIONS; part++) {
-		if (part_get_info(desc, part, &info))
-			continue;
-		snprintf(devname, sizeof(devname), "%s:%d", blk_dev->name,
-			 part);
-
-		ret = device_bind_driver(blk_dev, "blk_partition",
-					 strdup(devname), &dev);
-		if (ret)
-			return ret;
-
-		part_data = dev_get_uclass_plat(dev);
-		part_data->partnum = part;
-		part_data->gpt_part_info = info;
-		count++;
-
-		ret = device_probe(dev);
-		if (ret) {
-			debug("Can't probe\n");
-			count--;
-			device_unbind(dev);
-
-			continue;
-		}
-	}
-	debug("%s: %d partitions found in %s\n", __func__, count,
-	      blk_dev->name);
-
-	return 0;
-}
-
 /*
  * BLOCK IO APIs
  */
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index 614b975e25c..9521b3eb878 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -766,6 +766,54 @@ int blk_unbind_all(int uclass_id)
 	return 0;
 }
 
+static int part_create_block_devices(struct udevice *blk_dev)
+{
+	int part, count;
+	struct blk_desc *desc = dev_get_uclass_plat(blk_dev);
+	struct disk_partition info;
+	struct disk_part *part_data;
+	char devname[32];
+	struct udevice *dev;
+	int ret;
+
+	if (!CONFIG_IS_ENABLED(PARTITIONS) || !blk_enabled())
+		return 0;
+
+	if (device_get_uclass_id(blk_dev) != UCLASS_BLK)
+		return 0;
+
+	/* Add devices for each partition */
+	for (count = 0, part = 1; part <= MAX_SEARCH_PARTITIONS; part++) {
+		if (part_get_info(desc, part, &info))
+			continue;
+		snprintf(devname, sizeof(devname), "%s:%d", blk_dev->name,
+			 part);
+
+		ret = device_bind_driver(blk_dev, "blk_partition",
+					 strdup(devname), &dev);
+		if (ret)
+			return ret;
+
+		part_data = dev_get_uclass_plat(dev);
+		part_data->partnum = part;
+		part_data->gpt_part_info = info;
+		count++;
+
+		ret = device_probe(dev);
+		if (ret) {
+			debug("Can't probe\n");
+			count--;
+			device_unbind(dev);
+
+			continue;
+		}
+	}
+	debug("%s: %d partitions found in %s\n", __func__, count,
+	      blk_dev->name);
+
+	return 0;
+}
+
 static int blk_post_probe(struct udevice *dev)
 {
 	if (CONFIG_IS_ENABLED(PARTITIONS) && blk_enabled()) {
diff --git a/include/part.h b/include/part.h
index edc46f8dcbe..74e4d42263e 100644
--- a/include/part.h
+++ b/include/part.h
@@ -306,15 +306,6 @@ part_get_info_by_dev_and_name_or_num(const char *dev_iface,
 int part_get_bootable(struct blk_desc *desc);
 
 struct udevice;
-/**
- * part_create_block_devices - Create block devices for disk partitions
- *
- * Create UCLASS_PARTITION udevices for each of disk partitions in @parent
- *
- * @blk_dev:	Whole disk device
- */
-int part_create_block_devices(struct udevice *blk_dev);
-
 /**
  * disk_blk_read() - read blocks from a disk partition
  *
-- 
2.40.1



More information about the U-Boot mailing list