[MIPS] SB1250: Initialize io_map_base
authorMaciej W. Rozycki <macro@linux-mips.org>
Mon, 9 Jun 2008 16:20:03 +0000 (17:20 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 16 Jun 2008 14:14:46 +0000 (15:14 +0100)
Correctly initialize io_map_base for the SB1250 PCI controller as required
for proper iomap support.  Based on a proposal from Daniel Jacobowitz.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/pci/pci-sb1250.c

index 42e4d2c800fae5952a1621b66d147a0a2505fd6b..2a09ad91ec8c6ffe714b293d43f7761e50f4e131 100644 (file)
@@ -207,6 +207,7 @@ struct pci_controller sb1250_controller = {
 
 static int __init sb1250_pcibios_init(void)
 {
+       void __iomem *io_map_base;
        uint32_t cmdreg;
        uint64_t reg;
        extern int pci_probe_only;
@@ -253,12 +254,13 @@ static int __init sb1250_pcibios_init(void)
         * works correctly with most of Linux's drivers.
         * XXX ehs: Should this happen in PCI Device mode?
         */
-
-       set_io_port_base((unsigned long)
-                        ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536));
        isa_slot_offset = (unsigned long)
            ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024 * 1024);
 
+       io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024);
+       sb1250_controller.io_map_base = io_map_base;
+       set_io_port_base((unsigned long)io_map_base);
+
 #ifdef CONFIG_SIBYTE_HAS_LDT
        /*
         * Also check the LDT bridge's enable, just in case we didn't