diff options
author | Tejun Heo <htejun@gmail.com> | 2007-09-23 00:19:53 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-10-12 14:55:43 -0400 |
commit | 3495de733633d24ee97852080b737b436c110d6e (patch) | |
tree | e4b521a1bc1563679185ae15f32a74c3e1ae3b88 /drivers/ata/libata-eh.c | |
parent | 93328e1145c1989d1a214d34ac4e968dea7f7ed7 (diff) |
libata-pmp: update ata_eh_reset() for PMP
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>
Diffstat (limited to 'drivers/ata/libata-eh.c')
-rw-r--r-- | drivers/ata/libata-eh.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 60186f8ac3a1..687419b66708 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -2003,6 +2003,8 @@ static int ata_eh_followup_srst_needed(struct ata_link *link, | |||
2003 | return 1; | 2003 | return 1; |
2004 | if (rc != 0) | 2004 | if (rc != 0) |
2005 | return 0; | 2005 | return 0; |
2006 | if ((link->ap->flags & ATA_FLAG_PMP) && ata_is_host_link(link)) | ||
2007 | return 1; | ||
2006 | if (classify && !(link->flags & ATA_LFLAG_ASSUME_CLASS) && | 2008 | if (classify && !(link->flags & ATA_LFLAG_ASSUME_CLASS) && |
2007 | classes[0] == ATA_DEV_UNKNOWN) | 2009 | classes[0] == ATA_DEV_UNKNOWN) |
2008 | return 1; | 2010 | return 1; |