ide: remove dead Virtual DMA support
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 23 Jul 2008 17:55:55 +0000 (19:55 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 23 Jul 2008 17:55:55 +0000 (19:55 +0200)
Lets remove dead Virtual DMA support for now so it doesn't clutter
core IDE code (it can be bring back when there is a need for it):

* Remove IDE_HFLAG_VDMA host flag.

* Remove ide_drive_t.vdma flag.

* cs5520.c: remove stale FIXMEs, cs5520_dma_host_set() and cs5520_dma_ops
  (also there is no longer a need to set IDE_HFLAG_NO_ATAPI_DMA).

There should be no functional changes caused by this patch.

Cc: TAKADA Yoshihito <takada@mbf.nifty.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-disk.c
drivers/ide/ide-dma.c
drivers/ide/ide-iops.c
drivers/ide/pci/cs5520.c
include/linux/ide.h

index 3a2e80237c10f5d6daa1a0f377769428af2ba17d..df5fe5756871ca31b135a736dfc64f9d1097bec6 100644 (file)
@@ -158,7 +158,7 @@ static void ide_tf_set_cmd(ide_drive_t *drive, ide_task_t *task, u8 dma)
        write = (task->tf_flags & IDE_TFLAG_WRITE) ? 1 : 0;
 
        if (dma)
-               index = drive->vdma ? 4 : 8;
+               index = 8;
        else
                index = drive->mult_count ? 0 : 4;
 
index ecf60dbbe3e969fb940100c942d2737eadbcdaf0..e72112efab9a0613ac4ca5cc67be18b32c244f7e 100644 (file)
@@ -756,9 +756,8 @@ static int ide_tune_dma(ide_drive_t *drive)
 static int ide_dma_check(ide_drive_t *drive)
 {
        ide_hwif_t *hwif = drive->hwif;
-       int vdma = (hwif->host_flags & IDE_HFLAG_VDMA)? 1 : 0;
 
-       if (!vdma && ide_tune_dma(drive))
+       if (ide_tune_dma(drive))
                return 0;
 
        /* TODO: always do PIO fallback */
@@ -767,7 +766,7 @@ static int ide_dma_check(ide_drive_t *drive)
 
        ide_set_max_pio(drive);
 
-       return vdma ? 0 : -1;
+       return -1;
 }
 
 int ide_id_dma_bug(ide_drive_t *drive)
index 6c54fe1f984170466768c6005054c35bf67a2cbe..c9d15be4c48d3c54eaa998a330082fb6727fd193 100644 (file)
@@ -866,8 +866,7 @@ int ide_config_drive_speed(ide_drive_t *drive, u8 speed)
 
  skip:
 #ifdef CONFIG_BLK_DEV_IDEDMA
-       if ((speed >= XFER_SW_DMA_0 || (hwif->host_flags & IDE_HFLAG_VDMA)) &&
-           drive->using_dma)
+       if (speed >= XFER_SW_DMA_0 && drive->using_dma)
                hwif->dma_ops->dma_host_set(drive, 1);
        else if (hwif->dma_ops) /* check if host supports DMA */
                ide_dma_off_quietly(drive);
index a13f2bc0665c0546207ba6b4bffe77462508d904..d30cb4d99c45ad952d1be154b92655004c6151cb 100644 (file)
@@ -62,8 +62,6 @@ static void cs5520_set_pio_mode(ide_drive_t *drive, const u8 pio)
        struct pci_dev *pdev = to_pci_dev(hwif->dev);
        int controller = drive->dn > 1 ? 1 : 0;
 
-       /* FIXME: if DMA = 1 do we need to set the DMA bit here ? */
-
        /* 8bit CAT/CRT - 8bit command timing for channel */
        pci_write_config_byte(pdev, 0x62 + controller, 
                (cs5520_pio_clocks[pio].recovery << 4) |
@@ -89,45 +87,17 @@ static void cs5520_set_dma_mode(ide_drive_t *drive, const u8 speed)
        cs5520_set_pio_mode(drive, 0);
 }
 
-/*
- *     We wrap the DMA activate to set the vdma flag. This is needed
- *     so that the IDE DMA layer issues PIO not DMA commands over the
- *     DMA channel
- *
- *     ATAPI is harder so disable it for now using IDE_HFLAG_NO_ATAPI_DMA
- */
-
-static void cs5520_dma_host_set(ide_drive_t *drive, int on)
-{
-       drive->vdma = on;
-       ide_dma_host_set(drive, on);
-}
-
 static const struct ide_port_ops cs5520_port_ops = {
        .set_pio_mode           = cs5520_set_pio_mode,
        .set_dma_mode           = cs5520_set_dma_mode,
 };
 
-static const struct ide_dma_ops cs5520_dma_ops = {
-       .dma_host_set           = cs5520_dma_host_set,
-       .dma_setup              = ide_dma_setup,
-       .dma_exec_cmd           = ide_dma_exec_cmd,
-       .dma_start              = ide_dma_start,
-       .dma_end                = __ide_dma_end,
-       .dma_test_irq           = ide_dma_test_irq,
-       .dma_lost_irq           = ide_dma_lost_irq,
-       .dma_timeout            = ide_dma_timeout,
-};
-
-/* FIXME: VDMA is disabled because it caused system hangs */
 #define DECLARE_CS_DEV(name_str)                               \
        {                                                       \
                .name           = name_str,                     \
                .port_ops       = &cs5520_port_ops,             \
-               .dma_ops        = &cs5520_dma_ops,              \
                .host_flags     = IDE_HFLAG_ISA_PORTS |         \
                                  IDE_HFLAG_CS5520 |            \
-                                 IDE_HFLAG_NO_ATAPI_DMA |      \
                                  IDE_HFLAG_ABUSE_SET_DMA_MODE, \
                .pio_mask       = ATA_PIO4,                     \
        }
index 0544ff7d9afc2bf414b395fc4a3c26111bf2326f..3f28894002505678f39e870fa1abcc565b990b7b 100644 (file)
@@ -355,7 +355,6 @@ typedef struct ide_drive_s {
        unsigned nodma          : 1;    /* disallow DMA */
        unsigned remap_0_to_1   : 1;    /* 0=noremap, 1=remap 0->1 (for EZDrive) */
        unsigned blocked        : 1;    /* 1=powermanagment told us not to do anything, so sleep nicely */
-       unsigned vdma           : 1;    /* 1=doing PIO over DMA 0=doing normal DMA */
        unsigned scsi           : 1;    /* 0=default, 1=ide-scsi emulation */
        unsigned sleeping       : 1;    /* 1=sleeping & sleep field valid */
        unsigned post_reset     : 1;
@@ -1097,8 +1096,6 @@ enum {
        IDE_HFLAG_NO_IO_32BIT           = (1 << 30),
        /* never unmask IRQs */
        IDE_HFLAG_NO_UNMASK_IRQS        = (1 << 31),
-       /* host uses VDMA (disabled for now) */
-       IDE_HFLAG_VDMA                  = 0,
 };
 
 #ifdef CONFIG_BLK_DEV_OFFBOARD