]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - arch/arm/mach-versatile/pci.c
Merge tag 'split-asm_system_h-for-linus-20120328' of git://git.kernel.org/pub/scm...
[linux-2.6.git] / arch / arm / mach-versatile / pci.c
index 70f875c9370185a8d511ead2940af9001adf6e40..a6e23f4645289675cf3be0501e90650772064b62 100644 (file)
@@ -24,7 +24,6 @@
 
 #include <mach/hardware.h>
 #include <asm/irq.h>
-#include <asm/system.h>
 #include <asm/mach/pci.h>
 
 /*
@@ -191,7 +190,7 @@ static struct resource pre_mem = {
        .flags  = IORESOURCE_MEM | IORESOURCE_PREFETCH,
 };
 
-static int __init pci_versatile_setup_resources(struct resource **resource)
+static int __init pci_versatile_setup_resources(struct list_head *resources)
 {
        int ret = 0;
 
@@ -215,13 +214,13 @@ static int __init pci_versatile_setup_resources(struct resource **resource)
        }
 
        /*
-        * bus->resource[0] is the IO resource for this bus
-        * bus->resource[1] is the mem resource for this bus
-        * bus->resource[2] is the prefetch mem resource for this bus
+        * the IO resource for this bus
+        * the mem resource for this bus
+        * the prefetch mem resource for this bus
         */
-       resource[0] = &io_mem;
-       resource[1] = &non_mem;
-       resource[2] = &pre_mem;
+       pci_add_resource_offset(resources, &io_mem, sys->io_offset);
+       pci_add_resource_offset(resources, &non_mem, sys->mem_offset);
+       pci_add_resource_offset(resources, &pre_mem, sys->mem_offset);
 
        goto out;
 
@@ -250,7 +249,7 @@ int __init pci_versatile_setup(int nr, struct pci_sys_data *sys)
 
        if (nr == 0) {
                sys->mem_offset = 0;
-               ret = pci_versatile_setup_resources(sys->resource);
+               ret = pci_versatile_setup_resources(&sys->resources);
                if (ret < 0) {
                        printk("pci_versatile_setup: resources... oops?\n");
                        goto out;
@@ -306,11 +305,15 @@ int __init pci_versatile_setup(int nr, struct pci_sys_data *sys)
 
 struct pci_bus * __init pci_versatile_scan_bus(int nr, struct pci_sys_data *sys)
 {
-       return pci_scan_bus(sys->busnr, &pci_versatile_ops, sys);
+       return pci_scan_root_bus(NULL, sys->busnr, &pci_versatile_ops, sys,
+                                &sys->resources);
 }
 
 void __init pci_versatile_preinit(void)
 {
+       pcibios_min_io = 0x44000000;
+       pcibios_min_mem = 0x50000000;
+
        __raw_writel(VERSATILE_PCI_MEM_BASE0 >> 28, PCI_IMAP0);
        __raw_writel(VERSATILE_PCI_MEM_BASE1 >> 28, PCI_IMAP1);
        __raw_writel(VERSATILE_PCI_MEM_BASE2 >> 28, PCI_IMAP2);