]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
ide: remove write-only hwif->hw
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 19 Oct 2007 22:32:33 +0000 (00:32 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 19 Oct 2007 22:32:33 +0000 (00:32 +0200)
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/arm/icside.c
drivers/ide/arm/rapide.c
drivers/ide/ide.c
drivers/ide/legacy/ide_platform.c
drivers/ide/mips/au1xxx-ide.c
drivers/ide/mips/swarm.c
drivers/ide/pci/sgiioc4.c
drivers/ide/pci/siimage.c
drivers/ide/ppc/pmac.c
drivers/ide/setup-pci.c
include/linux/ide.h

index 22fc46d6344825dcfa173b93a5bffe4c046bbd21..410a0d13e35e847ad8695a7e8585cbb3d322e72b 100644 (file)
@@ -450,8 +450,6 @@ icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *e
        if (hwif) {
                int i;
 
-               memset(&hwif->hw, 0, sizeof(hw_regs_t));
-
                /*
                 * Ensure we're using MMIO
                 */
@@ -459,13 +457,10 @@ icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *e
                hwif->mmio = 1;
 
                for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
-                       hwif->hw.io_ports[i] = port;
                        hwif->io_ports[i] = port;
                        port += 1 << info->stepping;
                }
-               hwif->hw.io_ports[IDE_CONTROL_OFFSET] = (unsigned long)base + info->ctrloffset;
                hwif->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)base + info->ctrloffset;
-               hwif->hw.irq  = ec->irq;
                hwif->irq     = ec->irq;
                hwif->noprobe = 0;
                hwif->chipset = ide_acorn;
index 96cd3f5b9adc25f4d8acc8378c3b2c403850ab8c..0775a3afef4862d5e5b2b5646443cbcfdec1448c 100644 (file)
@@ -24,13 +24,11 @@ rapide_locate_hwif(void __iomem *base, void __iomem *ctrl, unsigned int sz, int
                goto out;
 
        for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
-               hwif->hw.io_ports[i] = port;
                hwif->io_ports[i] = port;
                port += sz;
        }
-       hwif->hw.io_ports[IDE_CONTROL_OFFSET] = (unsigned long)ctrl;
        hwif->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)ctrl;
-       hwif->hw.irq = hwif->irq = irq;
+       hwif->irq = irq;
        hwif->mmio = 1;
        default_hwif_mmiops(hwif);
 out:
index b7e872e29f9c607f19b477438939fbf8a3e81111..674a65c1a1308986743237c46792a6c7661d1c7c 100644 (file)
@@ -168,7 +168,6 @@ static void init_hwif_default(ide_hwif_t *hwif, unsigned int index)
 
        ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, &hwif->irq);
 
-       memcpy(&hwif->hw, &hw, sizeof(hw));
        memcpy(hwif->io_ports, hw.io_ports, sizeof(hw.io_ports));
 
        hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET];
@@ -214,7 +213,7 @@ static void __init init_ide_data (void)
                init_hwif_data(hwif, index);
                init_hwif_default(hwif, index);
 #if !defined(CONFIG_PPC32) || !defined(CONFIG_PCI)
-               hwif->irq = hwif->hw.irq =
+               hwif->irq =
                        ide_init_default_irq(hwif->io_ports[IDE_DATA_OFFSET]);
 #endif
        }
@@ -730,8 +729,7 @@ found:
        }
        if (hwif->present)
                return -1;
-       memcpy(&hwif->hw, hw, sizeof(*hw));
-       memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->hw.io_ports));
+       memcpy(hwif->io_ports, hw->io_ports, sizeof(hwif->io_ports));
        hwif->irq = hw->irq;
        hwif->noprobe = 0;
        hwif->fixup = fixup;
@@ -1417,6 +1415,9 @@ static int __init ide_setup(char *s)
                        "reset", "minus6", "ata66", "minus8", "minus9",
                        "minus10", "four", "qd65xx", "ht6560b", "cmd640_vlb",
                        "dtc2278", "umc8672", "ali14xx", NULL };
+
+               hw_regs_t hwregs;
+
                hw = s[3] - '0';
                hwif = &ide_hwifs[hw];
                i = match_parm(&s[4], ide_words, vals, 3);
@@ -1526,9 +1527,9 @@ static int __init ide_setup(char *s)
                        case 2: /* base,ctl */
                                vals[2] = 0;    /* default irq = probe for it */
                        case 3: /* base,ctl,irq */
-                               hwif->hw.irq = vals[2];
-                               ide_init_hwif_ports(&hwif->hw, (unsigned long) vals[0], (unsigned long) vals[1], &hwif->irq);
-                               memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
+                               memset(&hwregs, 0, sizeof(hwregs));
+                               ide_init_hwif_ports(&hwregs, vals[0], vals[1], &hwif->irq);
+                               memcpy(hwif->io_ports, hwregs.io_ports, sizeof(hwif->io_ports));
                                hwif->irq      = vals[2];
                                hwif->noprobe  = 0;
                                hwif->chipset  = ide_forced;
index 1bc9a57b6198d219d05e277d5cb7f018194b2ae3..7bb79f53dac804e708ef6a49e110804d903f993d 100644 (file)
@@ -39,19 +39,18 @@ static ide_hwif_t *__devinit plat_ide_locate_hwif(void __iomem *base,
        if (hwif == NULL)
                goto out;
 
-       hwif->hw.io_ports[IDE_DATA_OFFSET] = port;
+       hwif->io_ports[IDE_DATA_OFFSET] = port;
 
        port += (1 << pdata->ioport_shift);
        for (i = IDE_ERROR_OFFSET; i <= IDE_STATUS_OFFSET;
             i++, port += (1 << pdata->ioport_shift))
-               hwif->hw.io_ports[i] = port;
+               hwif->io_ports[i] = port;
 
-       hwif->hw.io_ports[IDE_CONTROL_OFFSET] = (unsigned long)ctrl;
+       hwif->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)ctrl;
 
-       memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->hw.io_ports));
-       hwif->hw.irq = hwif->irq = irq;
+       hwif->irq = irq;
 
-       hwif->chipset = hwif->hw.chipset = ide_generic;
+       hwif->chipset = ide_generic;
 
        if (mmio) {
                hwif->mmio = 1;
index be43024a359c590da1138e2c53a757a54902c75e..97af57a714cdfcb0c200055dac0929c089d7c383 100644 (file)
@@ -601,9 +601,9 @@ static int au_ide_probe(struct device *dev)
        _auide_hwif *ahwif = &auide_hwif;
        ide_hwif_t *hwif;
        struct resource *res;
-       hw_regs_t *hw;
        int ret = 0;
        u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
+       hw_regs_t hw;
 
 #if defined(CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA)
        char *mode = "MWDMA2";
@@ -645,12 +645,12 @@ static int au_ide_probe(struct device *dev)
        /* FIXME:  This might possibly break PCMCIA IDE devices */
 
        hwif                            = &ide_hwifs[pdev->id];
-       hw                              = &hwif->hw;
-       hwif->irq = hw->irq             = ahwif->irq;
+       hwif->irq                       = ahwif->irq;
        hwif->chipset                   = ide_au1xxx;
 
-       auide_setup_ports(hw, ahwif);
-       memcpy(hwif->io_ports, hw->io_ports, sizeof(hwif->io_ports));
+       memset(&hw, 0, sizeof(hw));
+       auide_setup_ports(&hw, ahwif);
+       memcpy(hwif->io_ports, hw.io_ports, sizeof(hwif->io_ports));
 
        hwif->ultra_mask                = 0x0;  /* Disable Ultra DMA */
 #ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
index 6ccc51d77e884304f00136f7b16e2d3c3a53ca9f..521edd41b572b0e9c00a82d218c9ec91acb72046 100644 (file)
@@ -120,14 +120,11 @@ static int __devinit swarm_ide_probe(struct device *dev)
        hwif->noprobe = 0;
 
        for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++)
-               hwif->hw.io_ports[i] =
+               hwif->io_ports[i] =
                                (unsigned long)(base + ((0x1f0 + i) << 5));
-       hwif->hw.io_ports[IDE_CONTROL_OFFSET] =
+       hwif->io_ports[IDE_CONTROL_OFFSET] =
                                (unsigned long)(base + (0x3f6 << 5));
-       hwif->hw.irq = K_INT_GB_IDE;
-
-       memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
-       hwif->irq = hwif->hw.irq;
+       hwif->irq = K_INT_GB_IDE;
 
        idx[0] = hwif->index;
 
index f6d4b4136a89f36e29408485dd309ca46b887123..de820aa58cd0e47057b9a8028d9fd3b8c1bfe515 100644 (file)
@@ -655,10 +655,12 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
        }
 
        if (hwif->io_ports[IDE_DATA_OFFSET] != cmd_base) {
+               hw_regs_t hw;
+
                /* Initialize the IO registers */
-               sgiioc4_init_hwif_ports(&hwif->hw, cmd_base, ctl, irqport);
-               memcpy(hwif->io_ports, hwif->hw.io_ports,
-                      sizeof (hwif->io_ports));
+               memset(&hw, 0, sizeof(hw));
+               sgiioc4_init_hwif_ports(&hw, cmd_base, ctl, irqport);
+               memcpy(hwif->io_ports, hw.io_ports, sizeof(hwif->io_ports));
                hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET];
        }
 
index 463bfda84265dc02dd1f222aa42d2fdc3805467b..732043b4deb8cb86d936bae63fa0b44d64165087 100644 (file)
@@ -754,16 +754,11 @@ static void __devinit init_mmio_iops_siimage(ide_hwif_t *hwif)
                hwif->sata_misc[SATA_IEN_OFFSET]        = base + 0x148;
        }
 
-       hw.irq                          = hwif->pci_dev->irq;
+       memcpy(hwif->io_ports, hw.io_ports, sizeof(hwif->io_ports));
 
-       memcpy(&hwif->hw, &hw, sizeof(hw));
-       memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->hw.io_ports));
+       hwif->irq = dev->irq;
 
-       hwif->irq                       = hw.irq;
-
-               base = (unsigned long) addr;
-
-       hwif->dma_base                  = base + (ch ? 0x08 : 0x00);
+       hwif->dma_base = (unsigned long)addr + (ch ? 0x08 : 0x00);
 
        hwif->mmio = 1;
 }
index 959afe47c3748bb1a178eb1ac63c59757e699295..816b5311dad647febb4577991f53102c4e537d1b 100644 (file)
@@ -1040,6 +1040,7 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
        struct device_node *np = pmif->node;
        const int *bidp;
        u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
+       hw_regs_t hw;
 
        pmif->cable_80 = 0;
        pmif->broken_dma = pmif->broken_dma_warn = 0;
@@ -1125,8 +1126,9 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
        /* Tell common code _not_ to mess with resources */
        hwif->mmio = 1;
        hwif->hwif_data = pmif;
-       pmac_ide_init_hwif_ports(&hwif->hw, pmif->regbase, 0, &hwif->irq);
-       memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
+       memset(&hw, 0, sizeof(hw));
+       pmac_ide_init_hwif_ports(&hw, pmif->regbase, 0, &hwif->irq);
+       memcpy(hwif->io_ports, hw.io_ports, sizeof(hwif->io_ports));
        hwif->chipset = ide_pmac;
        hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET] || pmif->mediabay;
        hwif->hold = pmif->mediabay;
index 875167e11cd12bc131f47c6ac7ef04262ada11cd..71be6999f9678be6a833f2a0eb2cf6c67db27a7f 100644 (file)
@@ -387,14 +387,15 @@ static ide_hwif_t *ide_hwif_configure(struct pci_dev *dev, ide_pci_device_t *d,
                return NULL;    /* no room in ide_hwifs[] */
        if (hwif->io_ports[IDE_DATA_OFFSET] != base ||
            hwif->io_ports[IDE_CONTROL_OFFSET] != (ctl | 2)) {
-               memset(&hwif->hw, 0, sizeof(hwif->hw));
+               hw_regs_t hw;
+
+               memset(&hw, 0, sizeof(hw));
 #ifndef CONFIG_IDE_ARCH_OBSOLETE_INIT
-               ide_std_init_ports(&hwif->hw, base, (ctl | 2));
-               hwif->hw.io_ports[IDE_IRQ_OFFSET] = 0;
+               ide_std_init_ports(&hw, base, ctl | 2);
 #else
-               ide_init_hwif_ports(&hwif->hw, base, (ctl | 2), NULL);
+               ide_init_hwif_ports(&hw, base, ctl | 2, NULL);
 #endif
-               memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
+               memcpy(hwif->io_ports, hw.io_ports, sizeof(hwif->io_ports));
                hwif->noprobe = !hwif->io_ports[IDE_DATA_OFFSET];
        }
        hwif->chipset = d->chipset ? d->chipset : ide_pci;
index 1e6bf04160d8fa172648e18b606729caf33e8913..ff1024eadbd1d43ee139e7c14f8d1ace5b4d555e 100644 (file)
@@ -659,7 +659,6 @@ typedef struct hwif_s {
        unsigned long   sata_scr[SATA_NR_PORTS];
        unsigned long   sata_misc[SATA_NR_PORTS];
 
-       hw_regs_t       hw;             /* Hardware info */
        ide_drive_t     drives[MAX_DRIVES];     /* drive info */
 
        u8 major;       /* our major number */