diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-29 03:57:16 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-29 03:57:16 -0500 |
| commit | 5e3c2b95dd560baa41b08c8f5f00bbd6fbeebdcb (patch) | |
| tree | 639d83b9bc4d08104e014b8903a773a04b7f1cac | |
| parent | 4fe1eaf6f39ed3270aff6068d84a2e6a452da734 (diff) | |
| parent | b71d4da092801634d04190693a38ca03bdbe2505 (diff) | |
Merge branch 'upstream'
| -rw-r--r-- | drivers/scsi/libata-core.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 665ae79e1fd6..9f27e8d0e774 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -1444,11 +1444,23 @@ void __sata_phy_reset(struct ata_port *ap) } while (time_before(jiffies, timeout)); /* TODO: phy layer with polling, timeouts, etc. */ - if (sata_dev_present(ap)) + sstatus = scr_read(ap, SCR_STATUS); + if (sata_dev_present(ap)) { + const char *speed; + u32 tmp; + + tmp = (sstatus >> 4) & 0xf; + if (tmp & (1 << 0)) + speed = "1.5"; + else if (tmp & (1 << 1)) + speed = "3.0"; + else + speed = "<unknown>"; + printk(KERN_INFO "ata%u: SATA link up %s Gbps (SStatus %X)\n", + ap->id, speed, sstatus); ata_port_probe(ap); - else { - sstatus = scr_read(ap, SCR_STATUS); - printk(KERN_INFO "ata%u: no device found (phy stat %08x)\n", + } else { + printk(KERN_INFO "ata%u: SATA link down (SStatus %X)\n", ap->id, sstatus); ata_port_disable(ap); } |
