diff options
Diffstat (limited to 'drivers/ide/pci/aec62xx.c')
-rw-r--r-- | drivers/ide/pci/aec62xx.c | 14 |
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) | |||
210 | static int aec62xx_config_drive_xfer_rate (ide_drive_t *drive) | 210 | static 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)) { | ||
225 | fast_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 | } |