diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2019-02-05 20:06:24 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-02-19 16:55:43 +0300 |
commit | 90037d4c73ed704d85485d4fa68a618d4db2b12a (patch) | |
tree | 286cffe3f6c372700c7dcdb821b512213634c4de | |
parent | c7cd4afb923bd54f18bee71993127aca550f2737 (diff) | |
download | u-boot-90037d4c73ed704d85485d4fa68a618d4db2b12a.tar.xz |
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>
-rw-r--r-- | drivers/scsi/scsi.c | 13 |
1 files 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 */ |