diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2008-06-09 12:20:03 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2008-06-16 10:14:46 -0400 |
commit | d0f9cbd4b29c3d208d6b31519cbb940d98d61e7d (patch) | |
tree | aa31354685e635297254720c5df28f3d1e5a8138 /arch/mips/pci/pci-sb1250.c | |
parent | 6b7d0b2fb6da3f6182f2bd162bf02ed4aed1813f (diff) |
[MIPS] SB1250: Initialize io_map_base
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>
Diffstat (limited to 'arch/mips/pci/pci-sb1250.c')
-rw-r--r-- | arch/mips/pci/pci-sb1250.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c index 42e4d2c800fa..2a09ad91ec8c 100644 --- a/arch/mips/pci/pci-sb1250.c +++ b/arch/mips/pci/pci-sb1250.c | |||
@@ -207,6 +207,7 @@ struct pci_controller sb1250_controller = { | |||
207 | 207 | ||
208 | static int __init sb1250_pcibios_init(void) | 208 | static int __init sb1250_pcibios_init(void) |
209 | { | 209 | { |
210 | void __iomem *io_map_base; | ||
210 | uint32_t cmdreg; | 211 | uint32_t cmdreg; |
211 | uint64_t reg; | 212 | uint64_t reg; |
212 | extern int pci_probe_only; | 213 | extern int pci_probe_only; |
@@ -253,12 +254,13 @@ static int __init sb1250_pcibios_init(void) | |||
253 | * works correctly with most of Linux's drivers. | 254 | * works correctly with most of Linux's drivers. |
254 | * XXX ehs: Should this happen in PCI Device mode? | 255 | * XXX ehs: Should this happen in PCI Device mode? |
255 | */ | 256 | */ |
256 | |||
257 | set_io_port_base((unsigned long) | ||
258 | ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536)); | ||
259 | isa_slot_offset = (unsigned long) | 257 | isa_slot_offset = (unsigned long) |
260 | ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024 * 1024); | 258 | ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024 * 1024); |
261 | 259 | ||
260 | io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024); | ||
261 | sb1250_controller.io_map_base = io_map_base; | ||
262 | set_io_port_base((unsigned long)io_map_base); | ||
263 | |||
262 | #ifdef CONFIG_SIBYTE_HAS_LDT | 264 | #ifdef CONFIG_SIBYTE_HAS_LDT |
263 | /* | 265 | /* |
264 | * Also check the LDT bridge's enable, just in case we didn't | 266 | * Also check the LDT bridge's enable, just in case we didn't |