diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2001-04-23 02:40:52 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2001-04-23 02:40:52 +0000 |
commit | 2f18d058ec50e7b888effd21d8e10e6f98712293 (patch) | |
tree | 4d9aef3cf6725723b2d3affa7cea4e01cfa2bfbf /sys/arch | |
parent | d562c485e90138def15237a8dd2ac5d74e06d75f (diff) |
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.
Diffstat (limited to 'sys/arch')
-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; |