summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2001-01-27 05:02:40 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2001-01-27 05:02:40 +0000
commit3f2e4f790656923ac68fc15cb25869ef122a9e9e (patch)
treeee71830657249a3e8775066d11a1b9b0e57cdd6e /sys/dev
parent5c57fe9fedb6369715d919d0344f713e6fb24bbb (diff)
ignore swizzling on i386.
this is needed for interrupt mapping code to be able to program the device and the pci interrupt router for the interrupt.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/pci/pci.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 15c45120d1a..14e41423517 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci.c,v 1.15 1999/07/18 03:20:18 csapuntz Exp $ */
+/* $OpenBSD: pci.c,v 1.16 2001/01/27 05:02:39 mickey Exp $ */
/* $NetBSD: pci.c,v 1.31 1997/06/06 23:48:04 thorpej Exp $ */
/*
@@ -177,6 +177,16 @@ pciattach(parent, self, aux)
We don't support turning off I/O or memory
on broken hardware. <csapuntz@stanford.edu> */
pa.pa_flags = PCI_FLAGS_IO_ENABLED | PCI_FLAGS_MEM_ENABLED;
+#ifdef __i386__
+ /*
+ * on i386 we really need to know the device tag
+ * and not the pci bridge tag, in intr_map
+ * to be able to program the device and the
+ * pci interrupt router.
+ */
+ pa.pa_intrtag = tag;
+ pa.pa_intrswiz = 0;
+#else
if (bus == 0) {
pa.pa_intrswiz = 0;
pa.pa_intrtag = tag;
@@ -184,6 +194,7 @@ pciattach(parent, self, aux)
pa.pa_intrswiz = pba->pba_intrswiz + device;
pa.pa_intrtag = pba->pba_intrtag;
}
+#endif
pin = PCI_INTERRUPT_PIN(intr);
if (pin == PCI_INTERRUPT_PIN_NONE) {
/* no interrupt */