static int scc_config_drive_for_dma(ide_drive_t *drive)
{
ide_hwif_t *hwif = HWIF(drive);
- struct hd_driveid *id = drive->id;
- if ((id->capability & 1) != 0 && drive->autodma) {
- if (ide_use_dma(drive)) {
- if (scc_config_chipset_for_dma(drive))
- return hwif->ide_dma_on(drive);
- }
- goto fast_ata_pio;
- } else if ((id->capability & 8) || (id->field_valid & 2)) {
- fast_ata_pio:
+ if (ide_use_dma(drive) && scc_config_chipset_for_dma(drive))
+ return hwif->ide_dma_on(drive);
+
+ if (ide_use_fast_pio(drive)) {
hwif->tuneproc(drive, 4);
hwif->ide_dma_off_quietly(drive);
}