diff options
Diffstat (limited to 'disk/part.c')
-rw-r--r-- | disk/part.c | 54 |
1 files changed, 8 insertions, 46 deletions
diff --git a/disk/part.c b/disk/part.c index 36b88205eca..2bee6695828 100644 --- a/disk/part.c +++ b/disk/part.c @@ -14,6 +14,7 @@ #include <malloc.h> #include <part.h> #include <ubifs_uboot.h> +#include <dm/uclass.h> #undef PART_DEBUG @@ -305,50 +306,8 @@ static void print_part_header(const char *type, struct blk_desc *desc) CONFIG_IS_ENABLED(ISO_PARTITION) || \ CONFIG_IS_ENABLED(AMIGA_PARTITION) || \ CONFIG_IS_ENABLED(EFI_PARTITION) - puts ("\nPartition Map for "); - switch (desc->uclass_id) { - case UCLASS_IDE: - puts ("IDE"); - break; - case UCLASS_AHCI: - puts ("SATA"); - break; - case UCLASS_SCSI: - puts ("SCSI"); - break; - case UCLASS_USB: - puts ("USB"); - break; - case UCLASS_MMC: - puts ("MMC"); - break; - case UCLASS_HOST: - puts ("HOST"); - break; - case UCLASS_NVME: - puts ("NVMe"); - break; - case UCLASS_PVBLOCK: - puts("PV BLOCK"); - break; - case UCLASS_RKMTD: - puts("RKMTD"); - break; - case UCLASS_VIRTIO: - puts("VirtIO"); - break; - case UCLASS_EFI_MEDIA: - puts("EFI"); - break; - case UCLASS_BLKMAP: - puts("BLKMAP"); - break; - default: - printf("UNKNOWN(%d)", desc->uclass_id); - break; - } - printf (" device %d -- Partition Type: %s\n\n", - desc->devnum, type); + printf("\nPartition Map for %s device %d -- Partition Type: %s\n\n", + uclass_get_name(desc->uclass_id), desc->devnum, type); #endif /* any CONFIG_..._PARTITION */ } @@ -717,8 +676,11 @@ int part_get_info_by_name(struct blk_desc *desc, const char *name, for (i = 1; i < part_drv->max_entries; i++) { ret = part_drv->get_info(desc, i, info); if (ret != 0) { - /* no more entries in table */ - break; + /* + * Partition with this index can't be obtained, but + * further partitions might be, so keep checking. + */ + continue; } if (strcmp(name, (const char *)info->name) == 0) { /* matched */ |