libata-pmp: update ata_eh_reset() for PMP
authorTejun Heo <htejun@gmail.com>
Sun, 23 Sep 2007 04:19:53 +0000 (13:19 +0900)
committerJeff Garzik <jeff@garzik.org>
Fri, 12 Oct 2007 18:55:43 +0000 (14:55 -0400)
PMP always requires SRST to be enabled.  Also, hardreset reports
classification code from the first device when PMP is attached, not
from the PMP.  Update ata_eh_reset() such that followup softreset is
performed if the controller is PMP capable and the host link is being
reset.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/libata-eh.c

index 60186f8ac3a133ca6f3bdd38f317538295247b5b..687419b6670867ca794e69a3cfc660876683cee6 100644 (file)
@@ -2003,6 +2003,8 @@ static int ata_eh_followup_srst_needed(struct ata_link *link,
                return 1;
        if (rc != 0)
                return 0;
+       if ((link->ap->flags & ATA_FLAG_PMP) && ata_is_host_link(link))
+               return 1;
        if (classify && !(link->flags & ATA_LFLAG_ASSUME_CLASS) &&
            classes[0] == ATA_DEV_UNKNOWN)
                return 1;