aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/serverworks.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/serverworks.c')
-rw-r--r--drivers/ide/pci/serverworks.c14
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)
316static int svwks_config_drive_xfer_rate (ide_drive_t *drive) 316static 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)) {
333fast_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);