diff options
Diffstat (limited to 'drivers/ide/pci/aec62xx.c')
-rw-r--r-- | drivers/ide/pci/aec62xx.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c index 0d5f62c5dfae..d6cb2d5143c8 100644 --- a/drivers/ide/pci/aec62xx.c +++ b/drivers/ide/pci/aec62xx.c | |||
@@ -87,7 +87,7 @@ static u8 pci_bus_clock_list_ultra (u8 speed, struct chipset_bus_clock_list_entr | |||
87 | return chipset_table->ultra_settings; | 87 | return chipset_table->ultra_settings; |
88 | } | 88 | } |
89 | 89 | ||
90 | static int aec6210_tune_chipset(ide_drive_t *drive, const u8 speed) | 90 | static void aec6210_set_mode(ide_drive_t *drive, const u8 speed) |
91 | { | 91 | { |
92 | ide_hwif_t *hwif = HWIF(drive); | 92 | ide_hwif_t *hwif = HWIF(drive); |
93 | struct pci_dev *dev = hwif->pci_dev; | 93 | struct pci_dev *dev = hwif->pci_dev; |
@@ -111,10 +111,9 @@ static int aec6210_tune_chipset(ide_drive_t *drive, const u8 speed) | |||
111 | tmp2 = ((ultra_conf << (2*drive->dn)) | (tmp1 & ~(3 << (2*drive->dn)))); | 111 | tmp2 = ((ultra_conf << (2*drive->dn)) | (tmp1 & ~(3 << (2*drive->dn)))); |
112 | pci_write_config_byte(dev, 0x54, tmp2); | 112 | pci_write_config_byte(dev, 0x54, tmp2); |
113 | local_irq_restore(flags); | 113 | local_irq_restore(flags); |
114 | return(ide_config_drive_speed(drive, speed)); | ||
115 | } | 114 | } |
116 | 115 | ||
117 | static int aec6260_tune_chipset(ide_drive_t *drive, const u8 speed) | 116 | static void aec6260_set_mode(ide_drive_t *drive, const u8 speed) |
118 | { | 117 | { |
119 | ide_hwif_t *hwif = HWIF(drive); | 118 | ide_hwif_t *hwif = HWIF(drive); |
120 | struct pci_dev *dev = hwif->pci_dev; | 119 | struct pci_dev *dev = hwif->pci_dev; |
@@ -135,12 +134,11 @@ static int aec6260_tune_chipset(ide_drive_t *drive, const u8 speed) | |||
135 | tmp2 = ((ultra_conf << (4*unit)) | (tmp1 & ~(7 << (4*unit)))); | 134 | tmp2 = ((ultra_conf << (4*unit)) | (tmp1 & ~(7 << (4*unit)))); |
136 | pci_write_config_byte(dev, (0x44|hwif->channel), tmp2); | 135 | pci_write_config_byte(dev, (0x44|hwif->channel), tmp2); |
137 | local_irq_restore(flags); | 136 | local_irq_restore(flags); |
138 | return(ide_config_drive_speed(drive, speed)); | ||
139 | } | 137 | } |
140 | 138 | ||
141 | static void aec_set_pio_mode(ide_drive_t *drive, const u8 pio) | 139 | static void aec_set_pio_mode(ide_drive_t *drive, const u8 pio) |
142 | { | 140 | { |
143 | (void) HWIF(drive)->speedproc(drive, pio + XFER_PIO_0); | 141 | drive->hwif->set_dma_mode(drive, pio + XFER_PIO_0); |
144 | } | 142 | } |
145 | 143 | ||
146 | static int aec62xx_config_drive_xfer_rate (ide_drive_t *drive) | 144 | static int aec62xx_config_drive_xfer_rate (ide_drive_t *drive) |
@@ -205,9 +203,9 @@ static void __devinit init_hwif_aec62xx(ide_hwif_t *hwif) | |||
205 | if (dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) { | 203 | if (dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) { |
206 | if(hwif->mate) | 204 | if(hwif->mate) |
207 | hwif->mate->serialized = hwif->serialized = 1; | 205 | hwif->mate->serialized = hwif->serialized = 1; |
208 | hwif->speedproc = &aec6210_tune_chipset; | 206 | hwif->set_dma_mode = &aec6210_set_mode; |
209 | } else | 207 | } else |
210 | hwif->speedproc = &aec6260_tune_chipset; | 208 | hwif->set_dma_mode = &aec6260_set_mode; |
211 | 209 | ||
212 | if (!hwif->dma_base) { | 210 | if (!hwif->dma_base) { |
213 | hwif->drives[0].autotune = hwif->drives[1].autotune = 1; | 211 | hwif->drives[0].autotune = hwif->drives[1].autotune = 1; |