]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
powerpc/PCI: split PHB part out of pcibios_map_io_space()
authorBjorn Helgaas <bhelgaas@google.com>
Fri, 28 Oct 2011 22:27:38 +0000 (16:27 -0600)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Mon, 12 Dec 2011 20:52:57 +0000 (12:52 -0800)
No functional change.  This is so we can use pcibios_phb_map_io_space()
before we have a struct pci_bus.

v2: fix map io phb typo

CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
arch/powerpc/kernel/pci_64.c

index bcf4bf9e72d9d658d8ed3dbb0f9d10677d0c8277..3318d39b7d4c34b8c8fe3815eed7aa1fb5a0e09c 100644 (file)
@@ -131,30 +131,13 @@ EXPORT_SYMBOL_GPL(pcibios_unmap_io_space);
 
 #endif /* CONFIG_HOTPLUG */
 
-int __devinit pcibios_map_io_space(struct pci_bus *bus)
+static int __devinit pcibios_map_phb_io_space(struct pci_controller *hose)
 {
        struct vm_struct *area;
        unsigned long phys_page;
        unsigned long size_page;
        unsigned long io_virt_offset;
-       struct pci_controller *hose;
-
-       WARN_ON(bus == NULL);
-
-       /* If this not a PHB, nothing to do, page tables still exist and
-        * thus HPTEs will be faulted in when needed
-        */
-       if (bus->self) {
-               pr_debug("IO mapping for PCI-PCI bridge %s\n",
-                        pci_name(bus->self));
-               pr_debug("  virt=0x%016llx...0x%016llx\n",
-                        bus->resource[0]->start + _IO_BASE,
-                        bus->resource[0]->end + _IO_BASE);
-               return 0;
-       }
 
-       /* Get the host bridge */
-       hose = pci_bus_to_host(bus);
        phys_page = _ALIGN_DOWN(hose->io_base_phys, PAGE_SIZE);
        size_page = _ALIGN_UP(hose->pci_io_size, PAGE_SIZE);
 
@@ -198,11 +181,30 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
 
        return 0;
 }
+
+int __devinit pcibios_map_io_space(struct pci_bus *bus)
+{
+       WARN_ON(bus == NULL);
+
+       /* If this not a PHB, nothing to do, page tables still exist and
+        * thus HPTEs will be faulted in when needed
+        */
+       if (bus->self) {
+               pr_debug("IO mapping for PCI-PCI bridge %s\n",
+                        pci_name(bus->self));
+               pr_debug("  virt=0x%016llx...0x%016llx\n",
+                        bus->resource[0]->start + _IO_BASE,
+                        bus->resource[0]->end + _IO_BASE);
+               return 0;
+       }
+
+       return pcibios_map_phb_io_space(pci_bus_to_host(bus));
+}
 EXPORT_SYMBOL_GPL(pcibios_map_io_space);
 
 void __devinit pcibios_setup_phb_io_space(struct pci_controller *hose)
 {
-       pcibios_map_io_space(hose->bus);
+       pcibios_map_phb_io_space(hose);
 }
 
 #define IOBASE_BRIDGE_NUMBER   0