powerpc/PCI: split PHB part out of pcibios_map_io_space()
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>
This commit is contained in:
Родитель
a46770f5b9
Коммит
49a6cba4eb
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче