ide: (hopefully) fix VDMA for CS5520
* Set the correct hwif->dma_base for the second channel in ide_get_or_set_dma_base(). * Remove DMA enable code from cs5520_set_pio_mode(), this can be handled by the generic ->dma_host_on method now. * Add VDMA check to ide_config_drive_speed(). * drive->using_dma was never enabled since cs5520 host driver's ->ide_dma_on method overrided the generic ->ide_dma_on (so __ide_dma_on() was never called, drive->using_dma was never set and VDMA was never used since it depends on drive->using_dma). Fix it by using ->dma_host_on method instead of ->ide_dma_on (also add matching ->dma_host_off method). Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
@@ -799,7 +799,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed)
|
||||
|
||||
skip:
|
||||
#ifdef CONFIG_BLK_DEV_IDEDMA
|
||||
if (speed >= XFER_SW_DMA_0)
|
||||
if (speed >= XFER_SW_DMA_0 || (hwif->host_flags & IDE_HFLAG_VDMA))
|
||||
hwif->dma_host_on(drive);
|
||||
else if (hwif->ide_dma_on) /* check if host supports DMA */
|
||||
hwif->dma_off_quietly(drive);
|
||||
|
Reference in New Issue
Block a user