lkml.org 
[lkml]   [2011]   [Oct]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH v2 08/29] powerpc/PCI: split PHB part out of pcibios_map_io_space()
    From
    Date
    No functional change.  This is so we can use pcibios_phb_map_io_space()
    before we have a struct pci_bus.

    CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    ---
    arch/powerpc/kernel/pci_64.c | 40 +++++++++++++++++++++-------------------
    1 files changed, 21 insertions(+), 19 deletions(-)

    diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
    index ab34046..4401425 100644
    --- a/arch/powerpc/kernel/pci_64.c
    +++ b/arch/powerpc/kernel/pci_64.c
    @@ -130,30 +130,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);

    @@ -197,11 +180,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_phb_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


    \
     
     \ /
      Last update: 2011-10-14 06:35    [W:3.270 / U:1.580 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site