[U-Boot] [PATCH v2 3/7] scsi: Take lun from device block description

Michal Simek michal.simek at xilinx.com
Fri Nov 25 16:00:16 CET 2016


Prepare LUN(Logical unit number) directly in block description structure
and reuse it.

Signed-off-by: Michal Simek <michal.simek at xilinx.com>
Reviewed-by: Simon Glass <sjg at chromium.org>
---

Changes in v2: None

 common/scsi.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/common/scsi.c b/common/scsi.c
index 89926e7a68ae..e8f102a8a4b5 100644
--- a/common/scsi.c
+++ b/common/scsi.c
@@ -485,20 +485,19 @@ static void scsi_init_dev_desc(struct blk_desc *dev_desc, int devnum)
  *
  * @pccb: pointer to temporary SCSI command block
  * @dev_desc: block device description
- * @lun: Logical unit number
  *
  * The scsi_detect_dev detects and fills a dev_desc structure when the device is
- * detected.
+ * detected. The LUN number is taken from the struct blk_desc *dev_desc.
  *
  * Return: 0 on success, error value otherwise
  */
-static int scsi_detect_dev(ccb *pccb, struct blk_desc *dev_desc, int lun)
+static int scsi_detect_dev(ccb *pccb, struct blk_desc *dev_desc)
 {
 	unsigned char perq, modi;
 	lbaint_t capacity;
 	unsigned long blksz;
 
-	pccb->lun = lun;
+	pccb->lun = dev_desc->lun;
 	pccb->pdata = (unsigned char *)&tempbuff;
 	pccb->datalen = 512;
 	scsi_setup_inquiry(pccb);
@@ -573,9 +572,9 @@ void scsi_scan(int mode)
 	for (i = 0; i < CONFIG_SYS_SCSI_MAX_SCSI_ID; i++) {
 		pccb->target = i;
 		for (lun = 0; lun < CONFIG_SYS_SCSI_MAX_LUN; lun++) {
+			scsi_dev_desc[scsi_max_devs].lun = lun;
 			ret = scsi_detect_dev(pccb,
-					      &scsi_dev_desc[scsi_max_devs],
-					      lun);
+					      &scsi_dev_desc[scsi_max_devs]);
 			if (ret)
 				continue;
 
-- 
1.9.1



More information about the U-Boot mailing list