summaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-pmp.c
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@google.com>2011-10-19 17:17:02 -0700
committerJeff Garzik <jgarzik@redhat.com>2011-11-09 01:38:00 -0500
commit7a46c0780babea7d0b3f277a33ea243be38eb942 (patch)
tree75d599d93a0f9faeadb421e0c83d8533e293630a /drivers/ata/libata-pmp.c
parent142924cf402f9c0568004f0e2a27988fe3556c61 (diff)
downloadlinux-stable-7a46c0780babea7d0b3f277a33ea243be38eb942.tar.gz
linux-stable-7a46c0780babea7d0b3f277a33ea243be38eb942.tar.bz2
linux-stable-7a46c0780babea7d0b3f277a33ea243be38eb942.zip
[libata] Issue SRST to Sil3726 PMP
Reenable sending SRST to devices connected behind a Sil3726 PMP. This allow staggered spinups and handles drives that spins up slowly. While the drives spin up, the PMP will not accept SRST. Most controller reissues the reset until the drive is ready, while some [Sil3124] returns an error. In ata_eh_error, wait 10s before reset the ATA port and try again. Signed-off-by: Gwendal Grignou <gwendal@google.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/libata-pmp.c')
-rw-r--r--drivers/ata/libata-pmp.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/ata/libata-pmp.c b/drivers/ata/libata-pmp.c
index 104462dbc524..21b80c555c60 100644
--- a/drivers/ata/libata-pmp.c
+++ b/drivers/ata/libata-pmp.c
@@ -389,12 +389,9 @@ static void sata_pmp_quirks(struct ata_port *ap)
/* link reports offline after LPM */
link->flags |= ATA_LFLAG_NO_LPM;
- /* Class code report is unreliable and SRST
- * times out under certain configurations.
- */
+ /* Class code report is unreliable. */
if (link->pmp < 5)
- link->flags |= ATA_LFLAG_NO_SRST |
- ATA_LFLAG_ASSUME_ATA;
+ link->flags |= ATA_LFLAG_ASSUME_ATA;
/* port 5 is for SEMB device and it doesn't like SRST */
if (link->pmp == 5)