summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'sys/alpha')
-rw-r--r--sys/alpha/pci/pcibus.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/alpha/pci/pcibus.c b/sys/alpha/pci/pcibus.c
index 71a3eb1..58363fa 100644
--- a/sys/alpha/pci/pcibus.c
+++ b/sys/alpha/pci/pcibus.c
@@ -40,6 +40,7 @@
#include <sys/sysctl.h>
#include <sys/rman.h>
+#include <pci/pcireg.h>
#include <pci/pcivar.h>
#include <machine/chipset.h>
#include <machine/cpuconf.h>
@@ -80,6 +81,8 @@ SYSCTL_LONG(_hw_chipset, OID_AUTO, hae_mask, CTLFLAG_RD, &chipset_hae_mask, 0,
int
alpha_pci_route_interrupt(device_t bus, device_t dev, int pin)
{
+ int intline = 255;
+
/*
* Validate requested pin number.
*/
@@ -87,8 +90,10 @@ alpha_pci_route_interrupt(device_t bus, device_t dev, int pin)
return(255);
if (platform.pci_intr_route)
- return(platform.pci_intr_route(bus, dev, pin));
- return(255);
+ intline = platform.pci_intr_route(bus, dev, pin);
+ if (intline == 255)
+ intline = pci_read_config(dev, PCIR_INTLINE, 1);
+ return intline;
}
#ifdef DEV_ISA
OpenPOWER on IntegriCloud