sata_promise: fix missing PATA cable detection
authorMikael Pettersson <mikpe@it.uu.se>
Wed, 7 Feb 2007 21:29:56 +0000 (22:29 +0100)
committerJeff Garzik <jeff@garzik.org>
Thu, 15 Feb 2007 23:04:00 +0000 (18:04 -0500)
This patch fixes an oversight which caused sata_promise to
not perform cable detection on the TX2plus chips' PATA ports.

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/sata_promise.c

index b2e2e695c92ecaa037349b5cf06f0e82ed482581..da8c362c3eb02432c941d677c167cd69ba9a32b9 100644 (file)
@@ -564,6 +564,13 @@ static void pdc_thaw(struct ata_port *ap)
        readl(mmio + PDC_CTLSTAT); /* flush */
 }
 
+static int pdc_pre_reset(struct ata_port *ap)
+{
+       if (!sata_scr_valid(ap))
+               pdc_pata_cbl_detect(ap);
+       return ata_std_prereset(ap);
+}
+
 static void pdc_error_handler(struct ata_port *ap)
 {
        ata_reset_fn_t hardreset;
@@ -576,7 +583,7 @@ static void pdc_error_handler(struct ata_port *ap)
                hardreset = sata_std_hardreset;
 
        /* perform recovery */
-       ata_do_eh(ap, ata_std_prereset, ata_std_softreset, hardreset,
+       ata_do_eh(ap, pdc_pre_reset, ata_std_softreset, hardreset,
                  ata_std_postreset);
 }