summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/pcib_if.m
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2005-04-13 16:30:30 +0000
committerimp <imp@FreeBSD.org>2005-04-13 16:30:30 +0000
commitd66c1ecbfc3b0ed65298ca3d583b15065efdd1e3 (patch)
tree5d9f33c4f9870d81614b22c0455f52b7333f5adc /sys/dev/pci/pcib_if.m
parent3df6c3c17641edccd04e2117d77b04dc25914599 (diff)
downloadFreeBSD-src-d66c1ecbfc3b0ed65298ca3d583b15065efdd1e3.zip
FreeBSD-src-d66c1ecbfc3b0ed65298ca3d583b15065efdd1e3.tar.gz
Default to a interrupt router that returns an invalid interrupt.
Otherwise, busses that implement the pcib interface that forget to implement pcib_route_interrupt would return EIO, which the caller interprets as 'use interrupt 6'. This is likely the cause of much of the grief that we had when I enabled power modes for the cardbus bridge, since the card needed to reroute the interrupt to it and it was getting 6 which was d by the pccbb sanity checks.
Diffstat (limited to 'sys/dev/pci/pcib_if.m')
-rw-r--r--sys/dev/pci/pcib_if.m10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/pci/pcib_if.m b/sys/dev/pci/pcib_if.m
index c9f480e..92d7cd6 100644
--- a/sys/dev/pci/pcib_if.m
+++ b/sys/dev/pci/pcib_if.m
@@ -30,6 +30,14 @@
INTERFACE pcib;
+CODE {
+ static int
+ null_route_interrupt(device_t pcib, device_t dev, int pin)
+ {
+ return (PCI_INVALID_IRQ);
+ }
+};
+
#
# Return the number of slots on the attached PCI bus.
#
@@ -78,4 +86,4 @@ METHOD int route_interrupt {
device_t pcib;
device_t dev;
int pin;
-};
+} default null_route_interrupt;
OpenPOWER on IntegriCloud