mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 13:14:19 +08:00
ahci: handle COMINIT received during spin-up
Some Intel SSDs can send a COMINIT after the initial COMRESET. This causes the link to go down and we need to re-initialize the link. Signed-off-by: Rob Herring <rob.herring@calxeda.com>
This commit is contained in:
parent
124e9fa132
commit
178210847f
@ -243,8 +243,20 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent)
|
||||
if (!(tmp & (ATA_STAT_BUSY | ATA_STAT_DRQ)))
|
||||
break;
|
||||
udelay(1000);
|
||||
tmp = readl(port_mmio + PORT_SCR_STAT);
|
||||
tmp &= PORT_SCR_STAT_DET_MASK;
|
||||
if (tmp == PORT_SCR_STAT_DET_PHYRDY)
|
||||
break;
|
||||
j++;
|
||||
}
|
||||
|
||||
tmp = readl(port_mmio + PORT_SCR_STAT) & PORT_SCR_STAT_DET_MASK;
|
||||
if (tmp == PORT_SCR_STAT_DET_COMINIT) {
|
||||
debug("SATA link %d down (COMINIT received), retrying...\n", i);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
|
||||
printf("Target spinup took %d ms.\n", j);
|
||||
if (j == WAIT_MS_SPINUP)
|
||||
debug("timeout.\n");
|
||||
|
Loading…
Reference in New Issue
Block a user