diff options
author | imp <imp@FreeBSD.org> | 2005-04-13 16:30:30 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2005-04-13 16:30:30 +0000 |
commit | d66c1ecbfc3b0ed65298ca3d583b15065efdd1e3 (patch) | |
tree | 5d9f33c4f9870d81614b22c0455f52b7333f5adc /sys/dev/pci/pcib_if.m | |
parent | 3df6c3c17641edccd04e2117d77b04dc25914599 (diff) | |
download | FreeBSD-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.m | 10 |
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; |