ide: remove ->mmio flag from ide_hwif_t
Bartlomiej Zolnierkiewicz [Tue, 15 Jul 2008 19:21:49 +0000 (21:21 +0200)]
Since scc_pata host driver no longer uses IDE PCI layer / ide_dma_setup()
and all other ->mmio users set also IDE_HFLAG_MMIO host flag we can safely
remove ->mmio flag.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

drivers/ide/arm/palm_bk3710.c
drivers/ide/ide-dma.c
drivers/ide/pci/scc_pata.c
drivers/ide/pci/siimage.c
drivers/ide/setup-pci.c
include/linux/ide.h

index 74a05dc..3839f57 100644 (file)
@@ -405,7 +405,6 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
        ide_init_port_data(hwif, i);
        ide_init_port_hw(hwif, &hw);
 
-       hwif->mmio = 1;
        default_hwif_mmiops(hwif);
 
        idx[0] = i;
index 174f470..7ee44f8 100644 (file)
@@ -463,7 +463,7 @@ int ide_dma_setup(ide_drive_t *drive)
        }
 
        /* PRD table */
-       if (hwif->mmio)
+       if (hwif->host_flags & IDE_HFLAG_MMIO)
                writel(hwif->dmatable_dma,
                       (void __iomem *)(hwif->dma_base + ATA_DMA_TABLE_OFS));
        else
index 37e8cfc..133053c 100644 (file)
@@ -793,7 +793,6 @@ static void __devinit init_mmio_iops_scc(ide_hwif_t *hwif)
 
        hwif->dma_base = dma_base;
        hwif->config_data = ports->ctl;
-       hwif->mmio = 1;
 }
 
 /**
index 0006b9e..b75e9bb 100644 (file)
@@ -94,7 +94,7 @@ static unsigned long siimage_selreg(ide_hwif_t *hwif, int r)
        unsigned long base = (unsigned long)hwif->hwif_data;
 
        base += 0xA0 + r;
-       if (hwif->mmio)
+       if (hwif->host_flags & IDE_HFLAG_MMIO)
                base += hwif->channel << 6;
        else
                base += hwif->channel << 4;
@@ -117,7 +117,7 @@ static inline unsigned long siimage_seldev(ide_drive_t *drive, int r)
        unsigned long base      = (unsigned long)hwif->hwif_data;
 
        base += 0xA0 + r;
-       if (hwif->mmio)
+       if (hwif->host_flags & IDE_HFLAG_MMIO)
                base += hwif->channel << 6;
        else
                base += hwif->channel << 4;
@@ -190,7 +190,9 @@ static u8 sil_pata_udma_filter(ide_drive_t *drive)
        unsigned long base      = (unsigned long)hwif->hwif_data;
        u8 scsc, mask           = 0;
 
-       scsc = sil_ioread8(dev, base + (hwif->mmio ? 0x4A : 0x8A));
+       base += (hwif->host_flags & IDE_HFLAG_MMIO) ? 0x4A : 0x8A;
+
+       scsc = sil_ioread8(dev, base);
 
        switch (scsc & 0x30) {
        case 0x10:      /* 133 */
@@ -238,8 +240,9 @@ static void sil_set_pio_mode(ide_drive_t *drive, u8 pio)
        unsigned long tfaddr    = siimage_selreg(hwif,  0x02);
        unsigned long base      = (unsigned long)hwif->hwif_data;
        u8 tf_pio               = pio;
-       u8 addr_mask            = hwif->channel ? (hwif->mmio ? 0xF4 : 0x84)
-                                               : (hwif->mmio ? 0xB4 : 0x80);
+       u8 mmio                 = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0;
+       u8 addr_mask            = hwif->channel ? (mmio ? 0xF4 : 0x84)
+                                               : (mmio ? 0xB4 : 0x80);
        u8 mode                 = 0;
        u8 unit                 = drive->select.b.unit;
 
@@ -290,13 +293,13 @@ static void sil_set_dma_mode(ide_drive_t *drive, const u8 speed)
        u16 ultra = 0, multi    = 0;
        u8 mode = 0, unit       = drive->select.b.unit;
        unsigned long base      = (unsigned long)hwif->hwif_data;
-       u8 scsc = 0, addr_mask  = hwif->channel ?
-                                       (hwif->mmio ? 0xF4 : 0x84) :
-                                       (hwif->mmio ? 0xB4 : 0x80);
+       u8 mmio                 = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0;
+       u8 scsc = 0, addr_mask  = hwif->channel ? (mmio ? 0xF4 : 0x84)
+                                               : (mmio ? 0xB4 : 0x80);
        unsigned long ma        = siimage_seldev(drive, 0x08);
        unsigned long ua        = siimage_seldev(drive, 0x0C);
 
-       scsc  = sil_ioread8 (dev, base + (hwif->mmio ? 0x4A : 0x8A));
+       scsc  = sil_ioread8 (dev, base + (mmio ? 0x4A : 0x8A));
        mode  = sil_ioread8 (dev, base + addr_mask);
        multi = sil_ioread16(dev, ma);
        ultra = sil_ioread16(dev, ua);
@@ -391,7 +394,7 @@ static int siimage_mmio_dma_test_irq(ide_drive_t *drive)
 
 static int siimage_dma_test_irq(ide_drive_t *drive)
 {
-       if (drive->hwif->mmio)
+       if (drive->hwif->host_flags & IDE_HFLAG_MMIO)
                return siimage_mmio_dma_test_irq(drive);
        else
                return siimage_io_dma_test_irq(drive);
@@ -640,8 +643,6 @@ static void __devinit init_mmio_iops_siimage(ide_hwif_t *hwif)
        hwif->irq = dev->irq;
 
        hwif->dma_base = (unsigned long)addr + (ch ? 0x08 : 0x00);
-
-       hwif->mmio = 1;
 }
 
 static int is_dev_seagate_sata(ide_drive_t *drive)
index 5171601..abcfb17 100644 (file)
@@ -87,7 +87,7 @@ unsigned long ide_pci_dma_base(ide_hwif_t *hwif, const struct ide_port_info *d)
        unsigned long dma_base = 0;
        u8 dma_stat = 0;
 
-       if (hwif->mmio)
+       if (hwif->host_flags & IDE_HFLAG_MMIO)
                return hwif->dma_base;
 
        if (hwif->mate && hwif->mate->dma_base) {
@@ -374,7 +374,7 @@ int ide_hwif_setup_dma(ide_hwif_t *hwif, const struct ide_port_info *d)
                if (base == 0 || ide_pci_set_master(dev, d->name) < 0)
                        return -1;
 
-               if (hwif->mmio)
+               if (hwif->host_flags & IDE_HFLAG_MMIO)
                        printk(KERN_INFO "    %s: MMIO-DMA\n", hwif->name);
                else
                        printk(KERN_INFO "    %s: BM-DMA at 0x%04lx-0x%04lx\n",
index 56d0bc2..b01b102 100644 (file)
@@ -532,7 +532,6 @@ typedef struct hwif_s {
        unsigned        serialized : 1; /* serialized all channel operation */
        unsigned        sharing_irq: 1; /* 1 = sharing irq with another hwif */
        unsigned        sg_mapped  : 1; /* sg_table and sg_nents are ready */
-       unsigned        mmio       : 1; /* host uses MMIO */
 
        struct device           gendev;
        struct device           *portdev;