From 2f18d058ec50e7b888effd21d8e10e6f98712293 Mon Sep 17 00:00:00 2001 From: Theo de Raadt Date: Mon, 23 Apr 2001 02:40:52 +0000 Subject: 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. --- sys/arch/i386/pci/via82c586.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'sys/arch/i386/pci') 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; -- cgit v1.2.3