summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2001-04-23 02:40:51 +0000
committerderaadt <deraadt@openbsd.org>2001-04-23 02:40:51 +0000
commit87dea03ec9c2bd3cb061fca5066734948c299a29 (patch)
tree7408d4df2e798ed21d6ce9ef8796e60df26edb97
parentfasion -> fashion; spotted by ericj@ (diff)
downloadwireguard-openbsd-87dea03ec9c2bd3cb061fca5066734948c299a29.tar.xz
wireguard-openbsd-87dea03ec9c2bd3cb061fca5066734948c299a29.zip
when we take a pci interrupt, upgrade it to level. but always ignore
changes which force to edge, because it appears that a lot of via bios do not contain a full list of level interrupts. when we set such an interrupt to edge, we spin and hang. i suggested this behaviour change, and this fix is by northpoint mickey.
-rw-r--r--sys/arch/i386/pci/via82c586.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/arch/i386/pci/via82c586.c b/sys/arch/i386/pci/via82c586.c
index acc26485817..35d7c9a4c56 100644
--- a/sys/arch/i386/pci/via82c586.c
+++ b/sys/arch/i386/pci/via82c586.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: via82c586.c,v 1.6 2001/01/25 00:07:41 mickey Exp $ */
+/* $OpenBSD: via82c586.c,v 1.7 2001/04/23 02:40:51 deraadt Exp $ */
/* $NetBSD: via82c586.c,v 1.2 2000/07/18 11:24:09 soda Exp $ */
/*-
@@ -253,10 +253,9 @@ via82c586_set_trigger(v, irq, trigger)
reg = pci_conf_read(ph->ph_pc, ph->ph_tag,
VP3_CFG_PIRQ_REG);
shift = vp3_cfg_trigger_shift[i];
+ /* XXX we only upgrade the trigger here */
if (trigger == IST_LEVEL)
reg &= ~(VP3_CFG_TRIGGER_MASK << shift);
- else
- reg |= (VP3_CFG_TRIGGER_EDGE << shift);
pci_conf_write(ph->ph_pc, ph->ph_tag,
VP3_CFG_PIRQ_REG, reg);
break;