diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2009-05-21 16:26:16 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2009-05-21 16:26:16 +0000 |
commit | 6b517ac9c7d902cc4a2675055b234d29dca1ab46 (patch) | |
tree | db87f013e589508f79e06da4cd8ee503570336ca /sys/arch/sgi/xbow | |
parent | 17de17646f8e68cae61a0906428351c5e9571d69 (diff) |
Do not attempt the interrupt deadlock workaround on IP30 yet, since the
IP27 logic will obviously not work there.
Diffstat (limited to 'sys/arch/sgi/xbow')
-rw-r--r-- | sys/arch/sgi/xbow/xbridge.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/arch/sgi/xbow/xbridge.c b/sys/arch/sgi/xbow/xbridge.c index 3cf2bdd4565..aa28a9f078b 100644 --- a/sys/arch/sgi/xbow/xbridge.c +++ b/sys/arch/sgi/xbow/xbridge.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xbridge.c,v 1.19 2009/05/15 17:18:16 miod Exp $ */ +/* $OpenBSD: xbridge.c,v 1.20 2009/05/21 16:26:15 miod Exp $ */ /* * Copyright (c) 2008, 2009 Miodrag Vallat. @@ -214,7 +214,7 @@ xbridge_attach(struct device *parent, struct device *self, void *aux) 0, BRIDGE_PCI_MEM_SPACE_LENGTH - 1, M_DEVBUF, NULL, 0, EX_NOWAIT); - if (!ISSET(sc->sc_flags, XBRIDGE_FLAGS_XBRIDGE) && + if (ISSET(sc->sc_flags, XBRIDGE_FLAGS_XBRIDGE) || xaa->xaa_revision >= 4) { /* Unrestricted I/O mappings in the large window */ bcopy(xaa->xaa_long_tag, sc->sc_io_bus_space, @@ -721,9 +721,14 @@ xbridge_intr_handler(void *v) BRIDGE_INT_FORCE_PIN(xi->xi_intrbit), 1); } else { if (bus_space_read_4(sc->sc_iot, sc->sc_regh, - BRIDGE_ISR) & (1 << xi->xi_intrbit)) - IP27_RHUB_PI_S(nasid, 0, HUB_IR_CHANGE, - HUB_IR_SET | xi->xi_intrsrc); + BRIDGE_ISR) & (1 << xi->xi_intrbit)) { + if (sys_config.system_type == SGI_OCTANE) { + /* XXX what to do there? */ + } else { + IP27_RHUB_PI_S(nasid, 0, HUB_IR_CHANGE, + HUB_IR_SET | xi->xi_intrsrc); + } + } } return 1; |