From c76d46dc0d02d43b147617a500567227452c94c0 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Sun, 20 Nov 2005 03:36:45 -0500 Subject: [PATCH] --- yaml --- r: 15846 b: refs/heads/master c: 656563e32c3f1dfdc35b3944305ece1c5dfeade5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/libata-core.c | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 5fcd2889d791..ad01c84e9a67 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1b15688b31d8c88881102426279e8cc03953860b +refs/heads/master: 656563e32c3f1dfdc35b3944305ece1c5dfeade5 diff --git a/trunk/drivers/scsi/libata-core.c b/trunk/drivers/scsi/libata-core.c index 665ae79e1fd6..9f27e8d0e774 100644 --- a/trunk/drivers/scsi/libata-core.c +++ b/trunk/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 = ""; + 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); }