[U-Boot] [PATCH 1/1] dm: scsi: Scan the actual number of ports

The scsi_scan_dev() is looping over the number of uc_plat->max_id. The number of actual ports a AHCI controller has can be greater than max_id. Update uc_plat->max_id to make SCSI scan all detected ports.
Signed-off-by: Aiden Park aiden.park@intel.com --- drivers/ata/ahci.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index e3135bb75f..9a08575053 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -1167,6 +1167,14 @@ int ahci_probe_scsi(struct udevice *ahci_dev, ulong base) if (ret) return ret;
+ /* + * scsi_scan_dev() scans devices up-to the number of max_id. + * Update max_id if the number of detected ports exceeds max_id. + * This allows SCSI to scan all detected ports. + */ + uc_plat->max_id = max_t(unsigned long, uc_priv->n_ports, + uc_plat->max_id); + return 0; }

On Wed, Aug 21, 2019 at 12:47 AM Park, Aiden aiden.park@intel.com wrote:
The scsi_scan_dev() is looping over the number of uc_plat->max_id. The number of actual ports a AHCI controller has can be greater than max_id. Update uc_plat->max_id to make SCSI scan all detected ports.
Signed-off-by: Aiden Park aiden.park@intel.com
drivers/ata/ahci.c | 8 ++++++++ 1 file changed, 8 insertions(+)
Reviewed-by: Bin Meng bmeng.cn@gmail.com

On Tue, Aug 20, 2019 at 04:47:42PM +0000, Park, Aiden wrote:
The scsi_scan_dev() is looping over the number of uc_plat->max_id. The number of actual ports a AHCI controller has can be greater than max_id. Update uc_plat->max_id to make SCSI scan all detected ports.
Signed-off-by: Aiden Park aiden.park@intel.com Reviewed-by: Bin Meng bmeng.cn@gmail.com
Applied to u-boot/master, thanks!
participants (3)
-
Bin Meng
-
Park, Aiden
-
Tom Rini