aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-04-02 12:58:06 -0400
committerJeff Garzik <jeff@garzik.org>2006-04-04 08:44:24 -0400
commitc2a6585296009379e0f4eff39cdcb108b457ebf2 (patch)
treed6c123aca21e0e54a3b2a52c93f26b6352b068de /drivers/scsi
parent95de719adc94392a95c3c4d0a2d6b8b1ea39d236 (diff)
[PATCH] ahci: do not fail softreset if PHY reports no device
All softreset methods are responsible for detecting device presence and succeed softreset in such cases. AHCI didn't use to check for device presence before proceeding with softreset and this caused unnecessary reset retrials during probing. This patch adds presence detection to AHCI softreset. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/ahci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c
index 0c5f0c844d21..ff48066d4c4f 100644
--- a/drivers/scsi/ahci.c
+++ b/drivers/scsi/ahci.c
@@ -549,6 +549,12 @@ static int ahci_softreset(struct ata_port *ap, int verbose, unsigned int *class)
549 549
550 DPRINTK("ENTER\n"); 550 DPRINTK("ENTER\n");
551 551
552 if (!sata_dev_present(ap)) {
553 DPRINTK("PHY reports no device\n");
554 *class = ATA_DEV_NONE;
555 return 0;
556 }
557
552 /* prepare for SRST (AHCI-1.1 10.4.1) */ 558 /* prepare for SRST (AHCI-1.1 10.4.1) */
553 rc = ahci_stop_engine(ap); 559 rc = ahci_stop_engine(ap);
554 if (rc) { 560 if (rc) {