aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/aec62xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/aec62xx.c')
-rw-r--r--drivers/ide/pci/aec62xx.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c
index cac12c38b940..199507391ae8 100644
--- a/drivers/ide/pci/aec62xx.c
+++ b/drivers/ide/pci/aec62xx.c
@@ -210,19 +210,11 @@ static void aec62xx_tune_drive (ide_drive_t *drive, u8 pio)
210static int aec62xx_config_drive_xfer_rate (ide_drive_t *drive) 210static int aec62xx_config_drive_xfer_rate (ide_drive_t *drive)
211{ 211{
212 ide_hwif_t *hwif = HWIF(drive); 212 ide_hwif_t *hwif = HWIF(drive);
213 struct hd_driveid *id = drive->id;
214 213
215 if ((id->capability & 1) && drive->autodma) { 214 if (ide_use_dma(drive) && config_chipset_for_dma(drive))
215 return hwif->ide_dma_on(drive);
216 216
217 if (ide_use_dma(drive)) { 217 if (ide_use_fast_pio(drive)) {
218 if (config_chipset_for_dma(drive))
219 return hwif->ide_dma_on(drive);
220 }
221
222 goto fast_ata_pio;
223
224 } else if ((id->capability & 8) || (id->field_valid & 2)) {
225fast_ata_pio:
226 aec62xx_tune_drive(drive, 5); 218 aec62xx_tune_drive(drive, 5);
227 return hwif->ide_dma_off_quietly(drive); 219 return hwif->ide_dma_off_quietly(drive);
228 } 220 }