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