diff options
author | Michal Simek <michal.simek@xilinx.com> | 2016-11-30 14:50:58 +0300 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2016-12-02 16:37:27 +0300 |
commit | 0b3a58eeee43e52ae1cfef920844952bc45d5cdb (patch) | |
tree | 56f957ee4c57c5ae4ad4029ef29aaa86cef5b6a3 /common | |
parent | c002e39ae669403baf21a7e04473447387f6302d (diff) | |
download | u-boot-0b3a58eeee43e52ae1cfef920844952bc45d5cdb.tar.xz |
scsi: Separate SCSI private block description initialization
When blk_create_device() is called some parameters in blk_desc are
automatically filled. Separate SCSI private initialization and SCSI full
block device initialization not to rewrite already prepared data.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/scsi.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/common/scsi.c b/common/scsi.c index 839b30b9bb..04add62495 100644 --- a/common/scsi.c +++ b/common/scsi.c @@ -422,12 +422,15 @@ static void scsi_setup_test_unit_ready(ccb *pccb) pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */ } -static void scsi_init_dev_desc(struct blk_desc *dev_desc, int devnum) +/** + * scsi_init_dev_desc_priv - initialize only SCSI specific blk_desc properties + * + * @dev_desc: Block device description pointer + */ +static void scsi_init_dev_desc_priv(struct blk_desc *dev_desc) { dev_desc->target = 0xff; dev_desc->lun = 0xff; - dev_desc->lba = 0; - dev_desc->blksz = 0; dev_desc->log2blksz = LOG2_INVALID(typeof(dev_desc->log2blksz)); dev_desc->type = DEV_TYPE_UNKNOWN; @@ -435,15 +438,28 @@ static void scsi_init_dev_desc(struct blk_desc *dev_desc, int devnum) dev_desc->product[0] = 0; dev_desc->revision[0] = 0; dev_desc->removable = false; - dev_desc->if_type = IF_TYPE_SCSI; - dev_desc->devnum = devnum; - dev_desc->part_type = PART_TYPE_UNKNOWN; #ifndef CONFIG_BLK dev_desc->block_read = scsi_read; dev_desc->block_write = scsi_write; #endif } +/** + * scsi_init_dev_desc - initialize all SCSI specific blk_desc properties + * + * @dev_desc: Block device description pointer + * @devnum: Device number + */ +static void scsi_init_dev_desc(struct blk_desc *dev_desc, int devnum) +{ + dev_desc->lba = 0; + dev_desc->blksz = 0; + dev_desc->if_type = IF_TYPE_SCSI; + dev_desc->devnum = devnum; + dev_desc->part_type = PART_TYPE_UNKNOWN; + + scsi_init_dev_desc_priv(dev_desc); +} /** * scsi_detect_dev - Detect scsi device |