aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/lemote/lm2e/pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/lemote/lm2e/pci.c')
-rw-r--r--arch/mips/lemote/lm2e/pci.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/mips/lemote/lm2e/pci.c b/arch/mips/lemote/lm2e/pci.c
index c1e41f15cc7e..8be03a8e1ad4 100644
--- a/arch/mips/lemote/lm2e/pci.c
+++ b/arch/mips/lemote/lm2e/pci.c
@@ -30,19 +30,20 @@
30#include <linux/kernel.h> 30#include <linux/kernel.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/mips-boards/bonito64.h> 32#include <asm/mips-boards/bonito64.h>
33#include <asm/mach-lemote/pci.h>
33 34
34extern struct pci_ops bonito64_pci_ops; 35extern struct pci_ops bonito64_pci_ops;
35 36
36static struct resource loongson2e_pci_mem_resource = { 37static struct resource loongson2e_pci_mem_resource = {
37 .name = "LOONGSON2E PCI MEM", 38 .name = "LOONGSON2E PCI MEM",
38 .start = 0x14000000UL, 39 .start = LOONGSON2E_PCI_MEM_START,
39 .end = 0x1fffffffUL, 40 .end = LOONGSON2E_PCI_MEM_END,
40 .flags = IORESOURCE_MEM, 41 .flags = IORESOURCE_MEM,
41}; 42};
42 43
43static struct resource loongson2e_pci_io_resource = { 44static struct resource loongson2e_pci_io_resource = {
44 .name = "LOONGSON2E PCI IO MEM", 45 .name = "LOONGSON2E PCI IO MEM",
45 .start = 0x00004000UL, 46 .start = LOONGSON2E_PCI_IO_START,
46 .end = IO_SPACE_LIMIT, 47 .end = IO_SPACE_LIMIT,
47 .flags = IORESOURCE_IO, 48 .flags = IORESOURCE_IO,
48}; 49};
@@ -82,6 +83,12 @@ static void __init ict_pcimap(void)
82static int __init pcibios_init(void) 83static int __init pcibios_init(void)
83{ 84{
84 ict_pcimap(); 85 ict_pcimap();
86
87 loongson2e_pci_controller.io_map_base =
88 (unsigned long) ioremap(LOONGSON2E_IO_PORT_BASE,
89 loongson2e_pci_io_resource.end -
90 loongson2e_pci_io_resource.start + 1);
91
85 register_pci_controller(&loongson2e_pci_controller); 92 register_pci_controller(&loongson2e_pci_controller);
86 93
87 return 0; 94 return 0;