| 1 |
From: Mikael Pettersson <mikpe@it.uu.se>
|
| 2 |
Date: Wed, 7 Feb 2007 21:29:56 +0000 (+0100)
|
| 3 |
Subject: sata_promise: fix missing PATA cable detection
|
| 4 |
X-Git-Tag: v2.6.21-rc1^0~178
|
| 5 |
X-Git-Url: http://www2.kernel.org/git/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=2fb8b49fb2eac583f0e8dd0ece06f9ad6d8fd792
|
| 6 |
|
| 7 |
sata_promise: fix missing PATA cable detection
|
| 8 |
|
| 9 |
This patch fixes an oversight which caused sata_promise to
|
| 10 |
not perform cable detection on the TX2plus chips' PATA ports.
|
| 11 |
|
| 12 |
Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
|
| 13 |
Signed-off-by: Jeff Garzik <jeff@garzik.org>
|
| 14 |
---
|
| 15 |
|
| 16 |
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
|
| 17 |
index b2e2e69..da8c362 100644
|
| 18 |
--- a/drivers/ata/sata_promise.c
|
| 19 |
+++ b/drivers/ata/sata_promise.c
|
| 20 |
@@ -564,6 +564,13 @@ static void pdc_thaw(struct ata_port *ap)
|
| 21 |
readl(mmio + PDC_CTLSTAT); /* flush */
|
| 22 |
}
|
| 23 |
|
| 24 |
+static int pdc_pre_reset(struct ata_port *ap)
|
| 25 |
+{
|
| 26 |
+ if (!sata_scr_valid(ap))
|
| 27 |
+ pdc_pata_cbl_detect(ap);
|
| 28 |
+ return ata_std_prereset(ap);
|
| 29 |
+}
|
| 30 |
+
|
| 31 |
static void pdc_error_handler(struct ata_port *ap)
|
| 32 |
{
|
| 33 |
ata_reset_fn_t hardreset;
|
| 34 |
@@ -576,7 +583,7 @@ static void pdc_error_handler(struct ata_port *ap)
|
| 35 |
hardreset = sata_std_hardreset;
|
| 36 |
|
| 37 |
/* perform recovery */
|
| 38 |
- ata_do_eh(ap, ata_std_prereset, ata_std_softreset, hardreset,
|
| 39 |
+ ata_do_eh(ap, pdc_pre_reset, ata_std_softreset, hardreset,
|
| 40 |
ata_std_postreset);
|
| 41 |
}
|
| 42 |
|