|
@@ -27,7 +27,7 @@
|
|
|
#include <linux/libata.h>
|
|
|
|
|
|
#define DRV_NAME "pata_hpt366"
|
|
|
-#define DRV_VERSION "0.6.7"
|
|
|
+#define DRV_VERSION "0.6.8"
|
|
|
|
|
|
struct hpt_clock {
|
|
|
u8 xfer_mode;
|
|
@@ -207,17 +207,8 @@ static void hpt366_set_mode(struct ata_port *ap, struct ata_device *adev,
|
|
|
{
|
|
|
struct hpt_clock *clocks = ap->host->private_data;
|
|
|
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
|
|
- u32 addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
|
|
|
- u32 addr2 = 0x51 + 4 * ap->port_no;
|
|
|
+ u32 addr = 0x40 + 4 * adev->devno;
|
|
|
u32 mask, reg;
|
|
|
- u8 fast;
|
|
|
-
|
|
|
- /* Fast interrupt prediction disable, hold off interrupt disable */
|
|
|
- pci_read_config_byte(pdev, addr2, &fast);
|
|
|
- if (fast & 0x80) {
|
|
|
- fast &= ~0x80;
|
|
|
- pci_write_config_byte(pdev, addr2, fast);
|
|
|
- }
|
|
|
|
|
|
/* determine timing mask and find matching clock entry */
|
|
|
if (mode < XFER_MW_DMA_0)
|
|
@@ -240,9 +231,9 @@ static void hpt366_set_mode(struct ata_port *ap, struct ata_device *adev,
|
|
|
* on-chip PIO FIFO/buffer (and PIO MST mode as well) to avoid
|
|
|
* problems handling I/O errors later.
|
|
|
*/
|
|
|
- pci_read_config_dword(pdev, addr1, ®);
|
|
|
+ pci_read_config_dword(pdev, addr, ®);
|
|
|
reg = ((reg & ~mask) | (clocks->timing & mask)) & ~0xc0000000;
|
|
|
- pci_write_config_dword(pdev, addr1, reg);
|
|
|
+ pci_write_config_dword(pdev, addr, reg);
|
|
|
}
|
|
|
|
|
|
/**
|