dm: scsi: report correct device number

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.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2019-02-05 18:06:24 +01:00 committed by Tom Rini
parent c7cd4afb92
commit 90037d4c73

View File

@ -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 */