-
- if (id && (id->capability & 1) && drive->autodma) {
- if (__ide_dma_bad_drive(drive))
- goto tune_pio;
- if (id->field_valid & 2) {
- if ((id->dma_mword & hwif->mwdma_mask) ||
- (id->dma_1word & hwif->swdma_mask)) {
- if (!triflex_config_drive_for_dma(drive))
- goto tune_pio;
- }
- } else
- goto tune_pio;
- } else {
-tune_pio:
- hwif->tuneproc(drive, 255);
- return hwif->ide_dma_off_quietly(drive);
+
+ if ((id->capability & 1) && drive->autodma) {
+ if (ide_use_dma(drive)) {
+ if (triflex_config_drive_for_dma(drive))
+ return hwif->ide_dma_on(drive);
+ }