diff options
author | 2001-04-23 02:40:51 +0000 | |
---|---|---|
committer | 2001-04-23 02:40:51 +0000 | |
commit | 87dea03ec9c2bd3cb061fca5066734948c299a29 (patch) | |
tree | 7408d4df2e798ed21d6ce9ef8796e60df26edb97 | |
parent | fasion -> fashion; spotted by ericj@ (diff) | |
download | wireguard-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.c | 5 |
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; |