diff options
Diffstat (limited to 'drivers/block/ahci.c')
-rw-r--r-- | drivers/block/ahci.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c index f08806348b..ad7e95fe08 100644 --- a/drivers/block/ahci.c +++ b/drivers/block/ahci.c @@ -207,7 +207,8 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent) j = 0; while (j < WAIT_MS_LINKUP) { tmp = readl(port_mmio + PORT_SCR_STAT); - if ((tmp & 0xf) == 0x3) + tmp &= PORT_SCR_STAT_DET_MASK; + if (tmp == PORT_SCR_STAT_DET_PHYRDY) break; udelay(1000); j++; @@ -258,7 +259,7 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent) /* register linkup ports */ tmp = readl(port_mmio + PORT_SCR_STAT); debug("SATA port %d status: 0x%x\n", i, tmp); - if ((tmp & 0xf) == 0x03) + if ((tmp & PORT_SCR_STAT_DET_MASK) == PORT_SCR_STAT_DET_PHYRDY) probe_ent->link_port_map |= (0x01 << i); } |