summaryrefslogtreecommitdiffstats
path: root/arch
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 /arch
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.
Diffstat (limited to 'arch')
-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;