summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authortmm <tmm@FreeBSD.org>2002-04-02 17:27:35 +0000
committertmm <tmm@FreeBSD.org>2002-04-02 17:27:35 +0000
commit198af052bfedfa75cbd8076265820f108a0da6a2 (patch)
treedb4c7f62708ef92b813634c943bac9ea5c12947c /sys/sparc64
parent2d73e086605f9b8f2758d8fe0a9ecf0681fd1b90 (diff)
downloadFreeBSD-src-198af052bfedfa75cbd8076265820f108a0da6a2.zip
FreeBSD-src-198af052bfedfa75cbd8076265820f108a0da6a2.tar.gz
Do not try to set up the PCI bus B error interrupt on "sabre"s, since
it is only available on "psycho"s. The same applies to the power management interrupt, which is not enabled by default though.
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/pci/psycho.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/sys/sparc64/pci/psycho.c b/sys/sparc64/pci/psycho.c
index 49109df..f62eceb 100644
--- a/sys/sparc64/pci/psycho.c
+++ b/sys/sparc64/pci/psycho.c
@@ -507,23 +507,25 @@ psycho_attach(device_t dev)
psycho_set_intr(sc, 1, dev, PSR_CE_INT_MAP, 0, psycho_ce);
psycho_set_intr(sc, 2, dev, PSR_PCIAERR_INT_MAP, INTR_FAST,
psycho_bus_a);
- psycho_set_intr(sc, 3, dev, PSR_PCIBERR_INT_MAP, INTR_FAST,
- psycho_bus_b);
psycho_set_intr(sc, 4, dev, PSR_POWER_INT_MAP, INTR_FAST,
psycho_powerfail);
+ /* Psycho-specific initialization. */
+ if (sc->sc_mode == PSYCHO_MODE_PSYCHO) {
+ /*
+ * Sabres do not have the following two interrupts.
+ */
+ psycho_set_intr(sc, 3, dev, PSR_PCIBERR_INT_MAP,
+ INTR_FAST, psycho_bus_b);
#ifdef PSYCHO_MAP_WAKEUP
- /*
- * On some models, this is mapped to the same interrupt as
- * pciberr by default, so leave it alone for now since
- * psycho_wakeup() doesn't do anything useful anyway.
- */
- psycho_set_intr(sc, 5, dev, PSR_PWRMGT_INT_MAP, 0,
- psycho_wakeup);
+ /*
+ * psycho_wakeup() doesn't do anything useful right
+ * now.
+ */
+ psycho_set_intr(sc, 5, dev, PSR_PWRMGT_INT_MAP, 0,
+ psycho_wakeup);
#endif /* PSYCHO_MAP_WAKEUP */
-
- /* Initialize the counter-timer if we handle a psycho. */
- if (sc->sc_mode == PSYCHO_MODE_PSYCHO) {
+ /* Initialize the counter-timer. */
sparc64_counter_init(sc->sc_bustag, sc->sc_bushandle,
PSR_TC0);
}
OpenPOWER on IntegriCloud