diff options
author | tmm <tmm@FreeBSD.org> | 2002-04-02 17:27:35 +0000 |
---|---|---|
committer | tmm <tmm@FreeBSD.org> | 2002-04-02 17:27:35 +0000 |
commit | 198af052bfedfa75cbd8076265820f108a0da6a2 (patch) | |
tree | db4c7f62708ef92b813634c943bac9ea5c12947c /sys/sparc64/pci | |
parent | 2d73e086605f9b8f2758d8fe0a9ecf0681fd1b90 (diff) | |
download | FreeBSD-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/pci')
-rw-r--r-- | sys/sparc64/pci/psycho.c | 26 |
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); } |