summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortmm <tmm@FreeBSD.org>2002-12-06 13:16:52 +0000
committertmm <tmm@FreeBSD.org>2002-12-06 13:16:52 +0000
commit3036bdcf9beb740c8bafae2b18c785736eb70ff1 (patch)
tree7baffe4fbb1d044d303e9e3abc9d804bb6a478a8
parente008bfac8f005993754d4bf92901329c9ad54ff3 (diff)
downloadFreeBSD-src-3036bdcf9beb740c8bafae2b18c785736eb70ff1.zip
FreeBSD-src-3036bdcf9beb740c8bafae2b18c785736eb70ff1.tar.gz
Exclude yet more interrupt mapping registers from the OBIO INO search,
namely the ones for the timers, error handling and power management. The registers for the timers, power management and PCI bus b errors are reserved on Sabres (US-IIi) and can lead to false matches there. Since all of them are never used for devices on the bus, they can be omitted safely. Approved by: re
-rw-r--r--sys/sparc64/pci/psycho.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/sparc64/pci/psycho.c b/sys/sparc64/pci/psycho.c
index 79e2f09..939018e 100644
--- a/sys/sparc64/pci/psycho.c
+++ b/sys/sparc64/pci/psycho.c
@@ -580,7 +580,7 @@ psycho_attach(device_t dev)
PSYCHO_WRITE8(sc, map, INTMAP_ENABLE(mr, PCPU_GET(mid)));
}
for (map = PSR_SCSI_INT_MAP, clr = PSR_SCSI_INT_CLR, n = 0;
- map < PSR_FFB0_INT_MAP; map += 8, clr += 8, n++) {
+ map <= PSR_SERIAL_INT_MAP; map += 8, clr += 8, n++) {
mr = PSYCHO_READ8(sc, map);
#ifdef PSYCHO_DEBUG
device_printf(dev, "intr map (obio) %d: %#lx, clr: %#lx\n", n,
@@ -674,7 +674,7 @@ psycho_find_intrmap(struct psycho_softc *sc, int ino, bus_addr_t *intrmapptr,
/* Hunt thru obio first */
diag = PSYCHO_READ8(sc, PSR_OBIO_INT_DIAG);
for (intrmap = PSR_SCSI_INT_MAP, intrclr = PSR_SCSI_INT_CLR;
- intrmap < PSR_FFB0_INT_MAP; intrmap += 8, intrclr += 8,
+ intrmap <= PSR_SERIAL_INT_MAP; intrmap += 8, intrclr += 8,
diag >>= 2) {
im = PSYCHO_READ8(sc, intrmap);
if (INTINO(im) == ino) {
OpenPOWER on IntegriCloud