summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Carlsson <md1ulfc@mdstud.chalmers.se>2000-06-01 03:58:46 +0000
committerUlf Carlsson <md1ulfc@mdstud.chalmers.se>2000-06-01 03:58:46 +0000
commit972b8e7479f7c5aa88648ea9d43bf7be7483b6fa (patch)
tree4ea319d612ab68411327b7080f83815c2d21513f
parent0c9b84482a485a0233a209182366897df8e59ca0 (diff)
Add the node offset to the IOC3 to the PCI resource
address for all IOC3 devices. We will now be able to reach IOC3 cards on other nodes than the first one.
-rw-r--r--arch/mips64/sgi-ip27/ip27-pci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/mips64/sgi-ip27/ip27-pci.c b/arch/mips64/sgi-ip27/ip27-pci.c
index c0a88050d..5065156ab 100644
--- a/arch/mips64/sgi-ip27/ip27-pci.c
+++ b/arch/mips64/sgi-ip27/ip27-pci.c
@@ -300,6 +300,7 @@ pci_enable_swapping(struct pci_dev *dev)
static void __init
pci_fixup_ioc3(struct pci_dev *d)
{
+ unsigned int bus_id = (unsigned) d->bus->number;
int i;
/* IOC3 only decodes 0x20 bytes of the config space, so we end up
@@ -308,6 +309,9 @@ pci_fixup_ioc3(struct pci_dev *d)
use INTA. */
printk("PCI: Fixing base addresses for IOC3 device %s\n", d->slot_name);
+ d->resource[0].start |= NODE_OFFSET(bus_to_nid[bus_id]);
+ d->resource[0].end |= NODE_OFFSET(bus_to_nid[bus_id]);
+
for (i = 1; i <= PCI_ROM_RESOURCE; i++) {
d->resource[i].start = 0UL;
d->resource[i].end = 0UL;