diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 2002-05-30 15:52:10 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 2002-05-30 15:52:10 +0000 |
commit | 09c64776c23fe157e3df8582c8dbb279f8bb72e2 (patch) | |
tree | 4b4706af3d6bec2e968f0a4aff3286d88d7d4545 /sys | |
parent | 3cdc47b3f6927f8b2a7af91b372963403e1dbdac (diff) |
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
Diffstat (limited to 'sys')
-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); |