aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/libata-core.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 5d00bb721e23..477afb4a9255 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -2001,9 +2001,19 @@ static unsigned int ata_bus_softreset(struct ata_port *ap,
2001 * status is checked. Because waiting for "a while" before 2001 * status is checked. Because waiting for "a while" before
2002 * checking status is fine, post SRST, we perform this magic 2002 * checking status is fine, post SRST, we perform this magic
2003 * delay here as well. 2003 * delay here as well.
2004 *
2005 * Old drivers/ide uses the 2mS rule and then waits for ready
2004 */ 2006 */
2005 msleep(150); 2007 msleep(150);
2006 2008
2009
2010 /* Before we perform post reset processing we want to see if
2011 the bus shows 0xFF because the odd clown forgets the D7 pulldown
2012 resistor */
2013
2014 if (ata_check_status(ap) == 0xFF)
2015 return 1; /* Positive is failure for some reason */
2016
2007 ata_bus_post_reset(ap, devmask); 2017 ata_bus_post_reset(ap, devmask);
2008 2018
2009 return 0; 2019 return 0;