mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
blk: Call part_init() in the post_probe() method
part_init() is currently called in every DM BLK driver, either in its bind() or probe() method. However we can use the BLK uclass driver's post_probe() method to do it automatically. Update all DM BLK drivers to adopt this change. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
f26ce03b44
commit
d0851c8937
9 changed files with 14 additions and 22 deletions
|
@ -51,7 +51,6 @@ int sata_probe(int devnum)
|
|||
{
|
||||
#ifdef CONFIG_AHCI
|
||||
struct udevice *dev;
|
||||
struct udevice *blk;
|
||||
int rc;
|
||||
|
||||
rc = uclass_get_device(UCLASS_AHCI, devnum, &dev);
|
||||
|
@ -67,14 +66,6 @@ int sata_probe(int devnum)
|
|||
return CMD_RET_FAILURE;
|
||||
}
|
||||
|
||||
rc = blk_get_from_parent(dev, &blk);
|
||||
if (!rc) {
|
||||
struct blk_desc *desc = dev_get_uclass_platdata(blk);
|
||||
|
||||
if (desc->lba > 0 && desc->blksz > 0)
|
||||
part_init(desc);
|
||||
}
|
||||
|
||||
return 0;
|
||||
#else
|
||||
return sata_initialize() < 0 ? CMD_RET_FAILURE : CMD_RET_SUCCESS;
|
||||
|
|
|
@ -226,9 +226,7 @@ static int usb_stor_probe_device(struct usb_device *udev)
|
|||
blkdev->lun = lun;
|
||||
|
||||
ret = usb_stor_get_info(udev, data, blkdev);
|
||||
if (ret == 1)
|
||||
ret = blk_prepare_device(dev);
|
||||
if (!ret) {
|
||||
if (ret == 1) {
|
||||
usb_max_devs++;
|
||||
debug("%s: Found device %p\n", __func__, udev);
|
||||
} else {
|
||||
|
|
|
@ -644,8 +644,20 @@ int blk_unbind_all(int if_type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int blk_post_probe(struct udevice *dev)
|
||||
{
|
||||
#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBDISK_SUPPORT)
|
||||
struct blk_desc *desc = dev_get_uclass_platdata(dev);
|
||||
|
||||
part_init(desc);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UCLASS_DRIVER(blk) = {
|
||||
.id = UCLASS_BLK,
|
||||
.name = "blk",
|
||||
.post_probe = blk_post_probe,
|
||||
.per_device_platdata_auto_alloc_size = sizeof(struct blk_desc),
|
||||
};
|
||||
|
|
|
@ -1169,8 +1169,6 @@ static int ide_blk_probe(struct udevice *udev)
|
|||
BLK_REV_SIZE);
|
||||
desc->revision[BLK_REV_SIZE] = '\0';
|
||||
|
||||
part_init(desc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ int host_dev_bind(int devnum, char *filename)
|
|||
goto err_file;
|
||||
}
|
||||
|
||||
return blk_prepare_device(dev);
|
||||
return 0;
|
||||
err_file:
|
||||
os_close(fd);
|
||||
err:
|
||||
|
|
|
@ -2444,9 +2444,6 @@ static int mmc_startup(struct mmc *mmc)
|
|||
bdesc->product[0] = 0;
|
||||
bdesc->revision[0] = 0;
|
||||
#endif
|
||||
#if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBDISK_SUPPORT)
|
||||
part_init(bdesc);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -664,7 +664,6 @@ static int nvme_blk_probe(struct udevice *udev)
|
|||
sprintf(desc->vendor, "0x%.4x", pplat->vendor);
|
||||
memcpy(desc->product, ndev->serial, sizeof(ndev->serial));
|
||||
memcpy(desc->revision, ndev->firmware_rev, sizeof(ndev->firmware_rev));
|
||||
part_init(desc);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -592,7 +592,6 @@ static int do_scsi_scan_one(struct udevice *dev, int id, int lun, bool verbose)
|
|||
memcpy(&bdesc->vendor, &bd.vendor, sizeof(bd.vendor));
|
||||
memcpy(&bdesc->product, &bd.product, sizeof(bd.product));
|
||||
memcpy(&bdesc->revision, &bd.revision, sizeof(bd.revision));
|
||||
part_init(bdesc);
|
||||
|
||||
if (verbose) {
|
||||
printf(" Device %d: ", 0);
|
||||
|
|
|
@ -173,8 +173,6 @@ static int efi_bl_bind(efi_handle_t handle, void *interface)
|
|||
return ret;
|
||||
EFI_PRINT("%s: block device '%s' created\n", __func__, bdev->name);
|
||||
|
||||
ret = blk_prepare_device(bdev);
|
||||
|
||||
/* Create handles for the partions of the block device */
|
||||
disks = efi_bl_bind_partitions(handle, bdev);
|
||||
EFI_PRINT("Found %d partitions\n", disks);
|
||||
|
|
Loading…
Reference in a new issue