aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-09-23 00:19:53 -0400
committerJeff Garzik <jeff@garzik.org>2007-10-12 14:55:43 -0400
commit3495de733633d24ee97852080b737b436c110d6e (patch)
treee4b521a1bc1563679185ae15f32a74c3e1ae3b88 /drivers/ata
parent93328e1145c1989d1a214d34ac4e968dea7f7ed7 (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')
-rw-r--r--drivers/ata/libata-eh.c2
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;