summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorKanoj Sarcar <kanoj@engr.sgi.com>2000-08-31 01:58:45 +0000
committerKanoj Sarcar <kanoj@engr.sgi.com>2000-08-31 01:58:45 +0000
commit691ce1627151a0ceba3f30252f0aa79d8d8b06c1 (patch)
tree7e11a014c7dbb7257bbb7e7a73c0ba4b86e7f55d /arch
parent1e5e4189137e2bae18ea0763bbaf9e6f2ddaf817 (diff)
No more hardcoded serial port addresses. Get the serial driver probing
addresses for ports. Serial driver changes are being sent to Linus.
Diffstat (limited to 'arch')
-rw-r--r--arch/mips64/sgi-ip27/ip27-pci.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/mips64/sgi-ip27/ip27-pci.c b/arch/mips64/sgi-ip27/ip27-pci.c
index eaf944943..e9cd1d8e4 100644
--- a/arch/mips64/sgi-ip27/ip27-pci.c
+++ b/arch/mips64/sgi-ip27/ip27-pci.c
@@ -316,6 +316,22 @@ pci_fixup_ioc3(struct pci_dev *d)
}
pci_disable_swapping(d);
+
+ /*
+ * The serial driver will try to probe for serial ports
+ * later on. MENET boards dbe out unrecoverably on sio space
+ * access to the 4th ioc3. (The first 3 iocs work okay, they
+ * have kbd/ms ports; all have ethernet ports). Catch this
+ * case now and disable the serial driver from looking at
+ * these ioc3s. Identify MENET cards by seeing if an ioc3 is
+ * at slot 3.
+ */
+ if (PCI_SLOT(d->devfn) == 3) {
+ struct list_head *p;
+ list_for_each(p, &d->bus->devices) {
+ list_entry(p, struct pci_dev, bus_list)->device = 0;
+ }
+ }
}
static void __init