]> git.hungrycats.org Git - linux/commitdiff
ahci: do not fail softreset if PHY reports no device
authorTejun Heo <htejun@gmail.com>
Sun, 17 Sep 2006 04:05:55 +0000 (00:05 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 13 Oct 2006 18:50:11 +0000 (11:50 -0700)
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>
Cc: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/scsi/ahci.c

index b4f8fb1d628b9d95ec70a28ffb81008eefb8f4d0..2dcfc1b8fc421d0d521545afd4d2d5603ecbf4fe 100644 (file)
@@ -548,6 +548,12 @@ static int ahci_softreset(struct ata_port *ap, int verbose, unsigned int *class)
 
        DPRINTK("ENTER\n");
 
+       if (!sata_dev_present(ap)) {
+               DPRINTK("PHY reports no device\n");
+               *class = ATA_DEV_NONE;
+               return 0;
+       }
+
        /* prepare for SRST (AHCI-1.1 10.4.1) */
        rc = ahci_stop_engine(ap);
        if (rc) {