aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/siimage.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/pci/siimage.c')
-rw-r--r--drivers/ide/pci/siimage.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/ide/pci/siimage.c b/drivers/ide/pci/siimage.c
index ad98510026a5..367733c8c1de 100644
--- a/drivers/ide/pci/siimage.c
+++ b/drivers/ide/pci/siimage.c
@@ -415,19 +415,11 @@ static int config_chipset_for_dma (ide_drive_t *drive)
415static int siimage_config_drive_for_dma (ide_drive_t *drive) 415static int siimage_config_drive_for_dma (ide_drive_t *drive)
416{ 416{
417 ide_hwif_t *hwif = HWIF(drive); 417 ide_hwif_t *hwif = HWIF(drive);
418 struct hd_driveid *id = drive->id;
419 418
420 if ((id->capability & 1) != 0 && drive->autodma) { 419 if (ide_use_dma(drive) && config_chipset_for_dma(drive))
420 return hwif->ide_dma_on(drive);
421 421
422 if (ide_use_dma(drive)) { 422 if (ide_use_fast_pio(drive)) {
423 if (config_chipset_for_dma(drive))
424 return hwif->ide_dma_on(drive);
425 }
426
427 goto fast_ata_pio;
428
429 } else if ((id->capability & 8) || (id->field_valid & 2)) {
430fast_ata_pio:
431 config_chipset_for_pio(drive, 1); 423 config_chipset_for_pio(drive, 1);
432 return hwif->ide_dma_off_quietly(drive); 424 return hwif->ide_dma_off_quietly(drive);
433 } 425 }