]> err.no Git - linux-2.6/blobdiff - drivers/ide/arm/icside.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
[linux-2.6] / drivers / ide / arm / icside.c
index 7d642f44e35b88b309375e7ef6b59c257836e644..061456914ca352469ca644df2e83e311ac92d9fb 100644 (file)
@@ -419,18 +419,21 @@ icside_setup(void __iomem *base, struct cardinfo *info, struct expansion_card *e
 
        hwif = ide_find_port();
        if (hwif) {
-               int i;
-
                /*
                 * Ensure we're using MMIO
                 */
                default_hwif_mmiops(hwif);
 
-               for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
-                       hwif->io_ports[i] = port;
-                       port += 1 << info->stepping;
-               }
-               hwif->io_ports[IDE_CONTROL_OFFSET] = (unsigned long)base + info->ctrloffset;
+               hwif->io_ports.data_addr = port;
+               hwif->io_ports.error_addr = port + (1 << info->stepping);
+               hwif->io_ports.nsect_addr = port + (2 << info->stepping);
+               hwif->io_ports.lbal_addr = port + (3 << info->stepping);
+               hwif->io_ports.lbam_addr = port + (4 << info->stepping);
+               hwif->io_ports.lbah_addr = port + (5 << info->stepping);
+               hwif->io_ports.device_addr = port + (6 << info->stepping);
+               hwif->io_ports.status_addr = port + (7 << info->stepping);
+               hwif->io_ports.ctl_addr =
+                       (unsigned long)base + info->ctrloffset;
                hwif->irq     = ec->irq;
                hwif->chipset = ide_acorn;
                hwif->gendev.parent = &ec->dev;
@@ -480,8 +483,7 @@ static const struct ide_port_info icside_v6_port_info __initdata = {
        .init_dma               = icside_dma_off_init,
        .port_ops               = &icside_v6_no_dma_port_ops,
        .dma_ops                = &icside_v6_dma_ops,
-       .host_flags             = IDE_HFLAG_SERIALIZE |
-                                 IDE_HFLAG_NO_AUTOTUNE,
+       .host_flags             = IDE_HFLAG_SERIALIZE | IDE_HFLAG_MMIO,
        .mwdma_mask             = ATA_MWDMA2,
        .swdma_mask             = ATA_SWDMA2,
 };
@@ -547,14 +549,13 @@ icside_register_v6(struct icside_state *state, struct expansion_card *ec)
        hwif->config_data = (unsigned long)ioc_base;
        hwif->select_data = sel;
 
-       mate->maskproc    = icside_maskproc;
        mate->hwif_data   = state;
        mate->config_data = (unsigned long)ioc_base;
        mate->select_data = sel | 1;
 
        if (ec->dma != NO_DMA && !request_dma(ec->dma, hwif->name)) {
                d.init_dma = icside_dma_init;
-               d.port_ops = &icside_v6_dma_port_ops;
+               d.port_ops = &icside_v6_port_ops;
                d.dma_ops = NULL;
        }