diff options
author | 2002-05-30 15:52:09 +0000 | |
---|---|---|
committer | 2002-05-30 15:52:09 +0000 | |
commit | ff51c22acc466d35d245248c2f543e5117319254 (patch) | |
tree | 7c93af62943277f64c7ecb86745a6dece050eae4 | |
parent | vt8233 is supported (diff) | |
download | wireguard-openbsd-ff51c22acc466d35d245248c2f543e5117319254.tar.xz wireguard-openbsd-ff51c22acc466d35d245248c2f543e5117319254.zip |
iff pcibios is enabled, record _every_ established pci interrupt
for it will not get reprogrammed for isa later.
should help lost and hanging pci interrupts.
testing by fries@, krw@, mordin@, philipp@ and others
-rw-r--r-- | sys/arch/i386/pci/pci_intr_fixup.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/arch/i386/pci/pci_intr_fixup.c b/sys/arch/i386/pci/pci_intr_fixup.c index da519ee0cf8..465d1bec5c8 100644 --- a/sys/arch/i386/pci/pci_intr_fixup.c +++ b/sys/arch/i386/pci/pci_intr_fixup.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pci_intr_fixup.c,v 1.23 2002/05/06 18:44:39 mickey Exp $ */ +/* $OpenBSD: pci_intr_fixup.c,v 1.24 2002/05/30 15:52:09 mickey Exp $ */ /* $NetBSD: pci_intr_fixup.c,v 1.10 2000/08/10 21:18:27 soda Exp $ */ /* @@ -501,6 +501,10 @@ pci_intr_route_link(pc, ihp) if (pcibios_flags & PCIBIOS_INTR_FIXUP) return 1; + if (ihp->line != 0 && + ihp->line != I386_PCI_INTERRUPT_LINE_NO_CONNECTION) + pcibios_pir_header.exclusive_irq |= (1 << ihp->line); + l = ihp->link; if (!l || pciintr_icu_tag == NULL) return (1); @@ -570,7 +574,7 @@ pci_intr_post_fixup() printf("pci_intr_post_fixup: PCI IRQs:"); for (l = SIMPLEQ_FIRST(&pciintr_link_map_list); l != NULL; l = SIMPLEQ_NEXT(l, list)) - if (l->fixup_stage == 0 && + if (l->fixup_stage == 0 && l->irq != 0 && l->irq != I386_PCI_INTERRUPT_LINE_NO_CONNECTION) { if (pcibios_flags & PCIBIOS_INTRDEBUG) printf(" %d", l->irq); |