diff options
Diffstat (limited to 'drivers/ide/pci/serverworks.c')
-rw-r--r-- | drivers/ide/pci/serverworks.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/ide/pci/serverworks.c b/drivers/ide/pci/serverworks.c index 81a0742c4594..9e92e7ba0227 100644 --- a/drivers/ide/pci/serverworks.c +++ b/drivers/ide/pci/serverworks.c | |||
@@ -316,21 +316,13 @@ static int config_chipset_for_dma (ide_drive_t *drive) | |||
316 | static int svwks_config_drive_xfer_rate (ide_drive_t *drive) | 316 | static int svwks_config_drive_xfer_rate (ide_drive_t *drive) |
317 | { | 317 | { |
318 | ide_hwif_t *hwif = HWIF(drive); | 318 | ide_hwif_t *hwif = HWIF(drive); |
319 | struct hd_driveid *id = drive->id; | ||
320 | 319 | ||
321 | drive->init_speed = 0; | 320 | drive->init_speed = 0; |
322 | 321 | ||
323 | if ((id->capability & 1) && drive->autodma) { | 322 | if (ide_use_dma(drive) && config_chipset_for_dma(drive)) |
323 | return hwif->ide_dma_on(drive); | ||
324 | 324 | ||
325 | if (ide_use_dma(drive)) { | 325 | if (ide_use_fast_pio(drive)) { |
326 | if (config_chipset_for_dma(drive)) | ||
327 | return hwif->ide_dma_on(drive); | ||
328 | } | ||
329 | |||
330 | goto fast_ata_pio; | ||
331 | |||
332 | } else if ((id->capability & 8) || (id->field_valid & 2)) { | ||
333 | fast_ata_pio: | ||
334 | config_chipset_for_pio(drive); | 326 | config_chipset_for_pio(drive); |
335 | // hwif->tuneproc(drive, 5); | 327 | // hwif->tuneproc(drive, 5); |
336 | return hwif->ide_dma_off_quietly(drive); | 328 | return hwif->ide_dma_off_quietly(drive); |