diff options
Diffstat (limited to 'arch/mips64/sgi-ip27/ip27-pci.c')
-rw-r--r-- | arch/mips64/sgi-ip27/ip27-pci.c | 16 |
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 |