diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-08-14 23:10:00 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-08-14 23:10:00 -0400 |
| commit | 4c0e176dd5e4c44dd60f398518f75eedbe1a65f3 (patch) | |
| tree | 07aea7539f78f221c6fc535a94a07befa2afdb63 /arch/ppc64/kernel/pci.c | |
| parent | f241be74b803dcf9d70c9978292946370654320f (diff) | |
| parent | 2ba84684e8cf6f980e4e95a2300f53a505eb794e (diff) | |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/ppc64/kernel/pci.c')
| -rw-r--r-- | arch/ppc64/kernel/pci.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/pci.c b/arch/ppc64/kernel/pci.c index ae6f579d3fa..d0d55c7908e 100644 --- a/arch/ppc64/kernel/pci.c +++ b/arch/ppc64/kernel/pci.c @@ -108,8 +108,28 @@ void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region region->end = res->end - offset; } +void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, + struct pci_bus_region *region) +{ + unsigned long offset = 0; + struct pci_controller *hose = pci_bus_to_host(dev->bus); + + if (!hose) + return; + + if (res->flags & IORESOURCE_IO) + offset = (unsigned long)hose->io_base_virt - pci_io_base; + + if (res->flags & IORESOURCE_MEM) + offset = hose->pci_mem_offset; + + res->start = region->start + offset; + res->end = region->end + offset; +} + #ifdef CONFIG_HOTPLUG EXPORT_SYMBOL(pcibios_resource_to_bus); +EXPORT_SYMBOL(pcibios_bus_to_resource); #endif /* |
