When calculating the mcpcia irq, include bus pin to account for devices

behind a PCI-PCI bridge.  Fixes PR#25831 (and the duplicate PR#26031).
Verified by Chuck Silvers.
This commit is contained in:
mhitch 2004-07-06 04:15:50 +00:00
parent ee2f9a6e6f
commit a01c5c07dc

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_kn300.c,v 1.24 2002/05/15 16:57:42 thorpej Exp $ */
/* $NetBSD: pci_kn300.c,v 1.25 2004/07/06 04:15:50 mhitch Exp $ */
/*
* Copyright (c) 1998 by Matthew Jacob
@ -32,7 +32,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: pci_kn300.c,v 1.24 2002/05/15 16:57:42 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_kn300.c,v 1.25 2004/07/06 04:15:50 mhitch Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -154,7 +154,7 @@ dec_kn300_intr_map(pa, ihp)
if (ccp->cc_mid == 5 && device == 1) {
mcpcia_irq = 16;
} else if (device >= 2 && device <= 5) {
mcpcia_irq = (device - 2) * 4;
mcpcia_irq = (device - 2) * 4 + bus - 1;
} else {
printf("dec_kn300_intr_map: weird device number %d\n", device);
return(1);