Before the patch scsi would report the same device number for all SCSI
devices, e.g.

  Device 0: (1:0) Vendor: ATA Prod.: Crucial_CT128M55 Rev: MU01
            Type: Hard Disk
            Capacity: 122104.3 MB = 119.2 GB (250069680 x 512)
  Device 0: (1:0) Vendor: ATA Prod.:  Rev:
            Type: Hard Disk
            Capacity: not available

With the patch the same device number is reported as is used in
scsi_read():

  Device 0: (1:0) Vendor: ATA Prod.: Crucial_CT128M55 Rev: MU01
            Type: Hard Disk
            Capacity: 122104.3 MB = 119.2 GB (250069680 x 512)
  Device 1: (1:0) Vendor: ATA Prod.:  Rev:
            Type: Hard Disk
            Capacity: not available

Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
 drivers/scsi/scsi.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index df47e2fc78..75900d8228 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -594,7 +594,7 @@ static int do_scsi_scan_one(struct udevice *dev, int id, 
int lun, bool verbose)
        memcpy(&bdesc->revision, &bd.revision,  sizeof(bd.revision));
 
        if (verbose) {
-               printf("  Device %d: ", 0);
+               printf("  Device %d: ", bdesc->devnum);
                dev_print(bdesc);
        }
        return 0;
@@ -659,15 +659,16 @@ int scsi_scan(bool verbose)
        scsi_max_devs = 0;
        for (i = 0; i < CONFIG_SYS_SCSI_MAX_SCSI_ID; i++) {
                for (lun = 0; lun < CONFIG_SYS_SCSI_MAX_LUN; lun++) {
-                       ret = scsi_detect_dev(NULL, i, lun,
-                                             &scsi_dev_desc[scsi_max_devs]);
+                       struct blk_desc *bdesc = &scsi_dev_desc[scsi_max_devs];
+
+                       ret = scsi_detect_dev(NULL, i, lun, bdesc);
                        if (ret)
                                continue;
-                       part_init(&scsi_dev_desc[scsi_max_devs]);
+                       part_init(bdesc);
 
                        if (verbose) {
-                               printf("  Device %d: ", 0);
-                               dev_print(&scsi_dev_desc[scsi_max_devs]);
+                               printf("  Device %d: ", bdesc->devnum);
+                               dev_print(bdesc);
                        }
                        scsi_max_devs++;
                } /* next LUN */
-- 
2.19.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to