diff mbox series

[U-Boot,08/27] efi_driver: blk: Switch to use platdata_auto_alloc_size for the driver data

Message ID 1537710145-1888-9-git-send-email-bmeng.cn@gmail.com
State Changes Requested
Delegated to: Simon Glass
Headers show
Series virtio: Introduce VirtIO driver support | expand

Commit Message

Bin Meng Sept. 23, 2018, 1:42 p.m. UTC
Currently the efi block driver uses priv_auto_alloc_size for the
driver data, however that's only available after the device probe
phase. In order to make it accessible in an earlier phase, switch
to use platdata_auto_alloc_size instead.

This patch is the prerequisite for the follow up patch of DM BLK
driver changes to work with EFI loader.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---

 lib/efi_driver/efi_block_device.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

Comments

Simon Glass Sept. 27, 2018, 1:42 p.m. UTC | #1
On 23 September 2018 at 06:42, Bin Meng <bmeng.cn@gmail.com> wrote:
> Currently the efi block driver uses priv_auto_alloc_size for the
> driver data, however that's only available after the device probe
> phase. In order to make it accessible in an earlier phase, switch
> to use platdata_auto_alloc_size instead.
>
> This patch is the prerequisite for the follow up patch of DM BLK
> driver changes to work with EFI loader.
>
> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> ---
>
>  lib/efi_driver/efi_block_device.c | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
diff mbox series

Patch

diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c
index 5b9c139..7b71b4d 100644
--- a/lib/efi_driver/efi_block_device.c
+++ b/lib/efi_driver/efi_block_device.c
@@ -38,7 +38,7 @@ 
  * handle	handle of the controller on which this driver is installed
  * io		block io protocol proxied by this driver
  */
-struct efi_blk_priv {
+struct efi_blk_platdata {
 	efi_handle_t		handle;
 	struct efi_block_io	*io;
 };
@@ -55,8 +55,8 @@  struct efi_blk_priv {
 static ulong efi_bl_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 			 void *buffer)
 {
-	struct efi_blk_priv *priv = dev->priv;
-	struct efi_block_io *io = priv->io;
+	struct efi_blk_platdata *platdata = dev_get_platdata(dev);
+	struct efi_block_io *io = platdata->io;
 	efi_status_t ret;
 
 	EFI_PRINT("%s: read '%s', from block " LBAFU ", " LBAFU " blocks\n",
@@ -84,8 +84,8 @@  static ulong efi_bl_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 static ulong efi_bl_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 			  const void *buffer)
 {
-	struct efi_blk_priv *priv = dev->priv;
-	struct efi_block_io *io = priv->io;
+	struct efi_blk_platdata *platdata = dev_get_platdata(dev);
+	struct efi_block_io *io = platdata->io;
 	efi_status_t ret;
 
 	EFI_PRINT("%s: write '%s', from block " LBAFU ", " LBAFU " blocks\n",
@@ -135,7 +135,7 @@  static int efi_bl_bind(efi_handle_t handle, void *interface)
 	struct efi_object *obj = efi_search_obj(handle);
 	struct efi_block_io *io = interface;
 	int disks;
-	struct efi_blk_priv *priv;
+	struct efi_blk_platdata *platdata;
 
 	EFI_PRINT("%s: handle %p, interface %p\n", __func__, handle, io);
 
@@ -163,16 +163,16 @@  static int efi_bl_bind(efi_handle_t handle, void *interface)
 		return -ENOENT;
 	/* Set the DM_FLAG_NAME_ALLOCED flag to avoid a memory leak */
 	device_set_name_alloced(bdev);
-	/* Allocate priv */
+
+	platdata = dev_get_platdata(bdev);
+	platdata->handle = handle;
+	platdata->io = interface;
+
 	ret = device_probe(bdev);
 	if (ret)
 		return ret;
 	EFI_PRINT("%s: block device '%s' created\n", __func__, bdev->name);
 
-	priv = bdev->priv;
-	priv->handle = handle;
-	priv->io = interface;
-
 	ret = blk_prepare_device(bdev);
 
 	/* Create handles for the partions of the block device */
@@ -193,7 +193,7 @@  U_BOOT_DRIVER(efi_blk) = {
 	.name			= "efi_blk",
 	.id			= UCLASS_BLK,
 	.ops			= &efi_blk_ops,
-	.priv_auto_alloc_size	= sizeof(struct efi_blk_priv),
+	.platdata_auto_alloc_size = sizeof(struct efi_blk_platdata),
 };
 
 /* EFI driver operators */