aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/blk-uclass.c')
-rw-r--r--drivers/block/blk-uclass.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index facf52711c..65a766e586 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -23,6 +23,7 @@ static const char *if_typename_str[IF_TYPE_COUNT] = {
23 [IF_TYPE_HOST] = "host", 23 [IF_TYPE_HOST] = "host",
24 [IF_TYPE_NVME] = "nvme", 24 [IF_TYPE_NVME] = "nvme",
25 [IF_TYPE_EFI] = "efi", 25 [IF_TYPE_EFI] = "efi",
26 [IF_TYPE_VIRTIO] = "virtio",
26}; 27};
27 28
28static enum uclass_id if_type_uclass_id[IF_TYPE_COUNT] = { 29static enum uclass_id if_type_uclass_id[IF_TYPE_COUNT] = {
@@ -37,6 +38,7 @@ static enum uclass_id if_type_uclass_id[IF_TYPE_COUNT] = {
37 [IF_TYPE_HOST] = UCLASS_ROOT, 38 [IF_TYPE_HOST] = UCLASS_ROOT,
38 [IF_TYPE_NVME] = UCLASS_NVME, 39 [IF_TYPE_NVME] = UCLASS_NVME,
39 [IF_TYPE_EFI] = UCLASS_EFI, 40 [IF_TYPE_EFI] = UCLASS_EFI,
41 [IF_TYPE_VIRTIO] = UCLASS_VIRTIO,
40}; 42};
41 43
42static enum if_type if_typename_to_iftype(const char *if_typename) 44static enum if_type if_typename_to_iftype(const char *if_typename)
@@ -471,15 +473,6 @@ unsigned long blk_derase(struct blk_desc *block_dev, lbaint_t start,
471 return ops->erase(dev, start, blkcnt); 473 return ops->erase(dev, start, blkcnt);
472} 474}
473 475
474int blk_prepare_device(struct udevice *dev)
475{
476 struct blk_desc *desc = dev_get_uclass_platdata(dev);
477
478 part_init(desc);
479
480 return 0;
481}
482
483int blk_get_from_parent(struct udevice *parent, struct udevice **devp) 476int blk_get_from_parent(struct udevice *parent, struct udevice **devp)
484{ 477{
485 struct udevice *dev; 478 struct udevice *dev;
@@ -526,7 +519,7 @@ int blk_find_max_devnum(enum if_type if_type)
526 return max_devnum; 519 return max_devnum;
527} 520}
528 521
529static int blk_next_free_devnum(enum if_type if_type) 522int blk_next_free_devnum(enum if_type if_type)
530{ 523{
531 int ret; 524 int ret;
532 525
@@ -644,8 +637,20 @@ int blk_unbind_all(int if_type)
644 return 0; 637 return 0;
645} 638}
646 639
640static int blk_post_probe(struct udevice *dev)
641{
642#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBDISK_SUPPORT)
643 struct blk_desc *desc = dev_get_uclass_platdata(dev);
644
645 part_init(desc);
646#endif
647
648 return 0;
649}
650
647UCLASS_DRIVER(blk) = { 651UCLASS_DRIVER(blk) = {
648 .id = UCLASS_BLK, 652 .id = UCLASS_BLK,
649 .name = "blk", 653 .name = "blk",
654 .post_probe = blk_post_probe,
650 .per_device_platdata_auto_alloc_size = sizeof(struct blk_desc), 655 .per_device_platdata_auto_alloc_size = sizeof(struct blk_desc),
651}; 656};