|
@@ -799,7 +799,8 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed)
|
|
|
|
|
|
skip:
|
|
skip:
|
|
#ifdef CONFIG_BLK_DEV_IDEDMA
|
|
#ifdef CONFIG_BLK_DEV_IDEDMA
|
|
- if (speed >= XFER_SW_DMA_0 || (hwif->host_flags & IDE_HFLAG_VDMA))
|
|
|
|
|
|
+ if ((speed >= XFER_SW_DMA_0 || (hwif->host_flags & IDE_HFLAG_VDMA)) &&
|
|
|
|
+ drive->using_dma)
|
|
hwif->dma_host_on(drive);
|
|
hwif->dma_host_on(drive);
|
|
else if (hwif->dma_host_on) /* check if host supports DMA */
|
|
else if (hwif->dma_host_on) /* check if host supports DMA */
|
|
ide_dma_off_quietly(drive);
|
|
ide_dma_off_quietly(drive);
|