]> 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 124445c20921a5fe043803c34e80957f5e9ca26d..061456914ca352469ca644df2e83e311ac92d9fb 100644 (file)
@@ -419,17 +419,19 @@ 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 = 0; i <= 7; i++) {
-                       hwif->io_ports_array[i] = port;
-                       port += 1 << info->stepping;
-               }
+               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;
@@ -481,7 +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,
+       .host_flags             = IDE_HFLAG_SERIALIZE | IDE_HFLAG_MMIO,
        .mwdma_mask             = ATA_MWDMA2,
        .swdma_mask             = ATA_SWDMA2,
 };