mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 13:43:28 +00:00
disk: Move part_create_block_devices() to blk uclass
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@mailbox.org>
This commit is contained in:
parent
30a12e0801
commit
804f7d63f2
3 changed files with 48 additions and 57 deletions
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -315,15 +315,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
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue