From: Park, Aiden Date: Tue, 20 Aug 2019 16:47:42 +0000 (+0000) Subject: dm: scsi: Scan the actual number of ports X-Git-Tag: v2019.10-rc3~1^2~15 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=bd98e6ae7160d5a4fc013266183506068227dd79;p=oweals%2Fu-boot.git 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 Reviewed-by: Bin Meng --- 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; }