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
					
				|  | @ -51,7 +51,6 @@ int sata_probe(int devnum) | ||||||
| { | { | ||||||
| #ifdef CONFIG_AHCI | #ifdef CONFIG_AHCI | ||||||
| 	struct udevice *dev; | 	struct udevice *dev; | ||||||
| 	struct udevice *blk; |  | ||||||
| 	int rc; | 	int rc; | ||||||
| 
 | 
 | ||||||
| 	rc = uclass_get_device(UCLASS_AHCI, devnum, &dev); | 	rc = uclass_get_device(UCLASS_AHCI, devnum, &dev); | ||||||
|  | @ -67,14 +66,6 @@ int sata_probe(int devnum) | ||||||
| 		return CMD_RET_FAILURE; | 		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; | 	return 0; | ||||||
| #else | #else | ||||||
| 	return sata_initialize() < 0 ? CMD_RET_FAILURE : CMD_RET_SUCCESS; | 	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; | 		blkdev->lun = lun; | ||||||
| 
 | 
 | ||||||
| 		ret = usb_stor_get_info(udev, data, blkdev); | 		ret = usb_stor_get_info(udev, data, blkdev); | ||||||
| 		if (ret == 1) | 		if (ret == 1) { | ||||||
| 			ret = blk_prepare_device(dev); |  | ||||||
| 		if (!ret) { |  | ||||||
| 			usb_max_devs++; | 			usb_max_devs++; | ||||||
| 			debug("%s: Found device %p\n", __func__, udev); | 			debug("%s: Found device %p\n", __func__, udev); | ||||||
| 		} else { | 		} else { | ||||||
|  |  | ||||||
|  | @ -644,8 +644,20 @@ int blk_unbind_all(int if_type) | ||||||
| 	return 0; | 	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) = { | UCLASS_DRIVER(blk) = { | ||||||
| 	.id		= UCLASS_BLK, | 	.id		= UCLASS_BLK, | ||||||
| 	.name		= "blk", | 	.name		= "blk", | ||||||
|  | 	.post_probe	= blk_post_probe, | ||||||
| 	.per_device_platdata_auto_alloc_size = sizeof(struct blk_desc), | 	.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); | 		BLK_REV_SIZE); | ||||||
| 	desc->revision[BLK_REV_SIZE] = '\0'; | 	desc->revision[BLK_REV_SIZE] = '\0'; | ||||||
| 
 | 
 | ||||||
| 	part_init(desc); |  | ||||||
| 
 |  | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -142,7 +142,7 @@ int host_dev_bind(int devnum, char *filename) | ||||||
| 		goto err_file; | 		goto err_file; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return blk_prepare_device(dev); | 	return 0; | ||||||
| err_file: | err_file: | ||||||
| 	os_close(fd); | 	os_close(fd); | ||||||
| err: | err: | ||||||
|  |  | ||||||
|  | @ -2444,9 +2444,6 @@ static int mmc_startup(struct mmc *mmc) | ||||||
| 	bdesc->product[0] = 0; | 	bdesc->product[0] = 0; | ||||||
| 	bdesc->revision[0] = 0; | 	bdesc->revision[0] = 0; | ||||||
| #endif | #endif | ||||||
| #if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBDISK_SUPPORT) |  | ||||||
| 	part_init(bdesc); |  | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -664,7 +664,6 @@ static int nvme_blk_probe(struct udevice *udev) | ||||||
| 	sprintf(desc->vendor, "0x%.4x", pplat->vendor); | 	sprintf(desc->vendor, "0x%.4x", pplat->vendor); | ||||||
| 	memcpy(desc->product, ndev->serial, sizeof(ndev->serial)); | 	memcpy(desc->product, ndev->serial, sizeof(ndev->serial)); | ||||||
| 	memcpy(desc->revision, ndev->firmware_rev, sizeof(ndev->firmware_rev)); | 	memcpy(desc->revision, ndev->firmware_rev, sizeof(ndev->firmware_rev)); | ||||||
| 	part_init(desc); |  | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	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->vendor, &bd.vendor, sizeof(bd.vendor)); | ||||||
| 	memcpy(&bdesc->product, &bd.product, sizeof(bd.product)); | 	memcpy(&bdesc->product, &bd.product, sizeof(bd.product)); | ||||||
| 	memcpy(&bdesc->revision, &bd.revision,	sizeof(bd.revision)); | 	memcpy(&bdesc->revision, &bd.revision,	sizeof(bd.revision)); | ||||||
| 	part_init(bdesc); |  | ||||||
| 
 | 
 | ||||||
| 	if (verbose) { | 	if (verbose) { | ||||||
| 		printf("  Device %d: ", 0); | 		printf("  Device %d: ", 0); | ||||||
|  |  | ||||||
|  | @ -173,8 +173,6 @@ static int efi_bl_bind(efi_handle_t handle, void *interface) | ||||||
| 		return ret; | 		return ret; | ||||||
| 	EFI_PRINT("%s: block device '%s' created\n", __func__, bdev->name); | 	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 */ | 	/* Create handles for the partions of the block device */ | ||||||
| 	disks = efi_bl_bind_partitions(handle, bdev); | 	disks = efi_bl_bind_partitions(handle, bdev); | ||||||
| 	EFI_PRINT("Found %d partitions\n", disks); | 	EFI_PRINT("Found %d partitions\n", disks); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue