]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/ide-io.c
ide-pmac: remove pmac_ide_do_setfeature() (take 2)
[linux-2.6-omap-h63xx.git] / drivers / ide / ide-io.c
index 9560a8f4a86c853832d45b71ff09ca55994367dd..4cece930114cf637cbacfc239b0a6aa3f083e5b6 100644 (file)
@@ -836,9 +836,17 @@ static ide_startstop_t do_special (ide_drive_t *drive)
                if (set_pio_mode_abuse(drive->hwif, req_pio)) {
                        if (hwif->set_pio_mode)
                                hwif->set_pio_mode(drive, req_pio);
-               } else
+               } else {
+                       int keep_dma = drive->using_dma;
+
                        ide_set_pio(drive, req_pio);
 
+                       if (hwif->host_flags & IDE_HFLAG_SET_PIO_MODE_KEEP_DMA) {
+                               if (keep_dma)
+                                       hwif->ide_dma_on(drive);
+                       }
+               }
+
                return ide_stopped;
        } else {
                if (drive->media == ide_disk)