pata_hpt3x2n: always stretch UltraDMA timing
authorSergei Shtylyov <sshtylyov@ru.mvista.com>
Mon, 7 Dec 2009 19:25:52 +0000 (23:25 +0400)
committerJeff Garzik <jgarzik@redhat.com>
Mon, 1 Mar 2010 19:58:42 +0000 (14:58 -0500)
The UltraDMA Tss timing must be stretched with ATA clock of 66 MHz, but the
driver only does this when PCI clock is 66 MHz, whereas it always programs
DPLL clock (which is used as the ATA clock) to 66 MHz.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: <stable@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/pata_hpt3x2n.c

index dd26bc73bd9aaca7b2f7839c0f71da3d7f87078d..269b5dbe51bb934b9ba4cf4910dee3a97df724c5 100644 (file)
@@ -25,7 +25,7 @@
 #include <linux/libata.h>
 
 #define DRV_NAME       "pata_hpt3x2n"
-#define DRV_VERSION    "0.3.8"
+#define DRV_VERSION    "0.3.9"
 
 enum {
        HPT_PCI_FAST    =       (1 << 31),
@@ -544,16 +544,16 @@ static int hpt3x2n_init_one(struct pci_dev *dev, const struct pci_device_id *id)
               pci_mhz);
        /* Set our private data up. We only need a few flags so we use
           it directly */
-       if (pci_mhz > 60) {
+       if (pci_mhz > 60)
                hpriv = (void *)(PCI66 | USE_DPLL);
-               /*
-                * On  HPT371N, if ATA clock is 66 MHz we must set bit 2 in
-                * the MISC. register to stretch the UltraDMA Tss timing.
-                * NOTE: This register is only writeable via I/O space.
-                */
-               if (dev->device == PCI_DEVICE_ID_TTI_HPT371)
-                       outb(inb(iobase + 0x9c) | 0x04, iobase + 0x9c);
-       }
+
+       /*
+        * On  HPT371N, if ATA clock is 66 MHz we must set bit 2 in
+        * the MISC. register to stretch the UltraDMA Tss timing.
+        * NOTE: This register is only writeable via I/O space.
+        */
+       if (dev->device == PCI_DEVICE_ID_TTI_HPT371)
+               outb(inb(iobase + 0x9c) | 0x04, iobase + 0x9c);
 
        /* Now kick off ATA set up */
        return ata_pci_sff_init_one(dev, ppi, &hpt3x2n_sht, hpriv);