diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:12:59 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:12:59 -0500 |
commit | aea5d375600f132537adf45942c0fbdcd25eb995 (patch) | |
tree | 6226c25e9024a35755d193440e6e03ab27eef066 /drivers/ide/ide-iops.c | |
parent | 29ec683f019608ca0cb6cf69011426ecb5daa69e (diff) |
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>
Diffstat (limited to 'drivers/ide/ide-iops.c')
-rw-r--r-- | drivers/ide/ide-iops.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index c97c0719ddf1..e3e5e39f4906 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
@@ -799,7 +799,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed) | |||
799 | 799 | ||
800 | skip: | 800 | skip: |
801 | #ifdef CONFIG_BLK_DEV_IDEDMA | 801 | #ifdef CONFIG_BLK_DEV_IDEDMA |
802 | if (speed >= XFER_SW_DMA_0) | 802 | if (speed >= XFER_SW_DMA_0 || (hwif->host_flags & IDE_HFLAG_VDMA)) |
803 | hwif->dma_host_on(drive); | 803 | hwif->dma_host_on(drive); |
804 | else if (hwif->ide_dma_on) /* check if host supports DMA */ | 804 | else if (hwif->ide_dma_on) /* check if host supports DMA */ |
805 | hwif->dma_off_quietly(drive); | 805 | hwif->dma_off_quietly(drive); |