Date: Sun, 27 May 2001 15:22:03 -0700 (PDT) From: Andrew Gallatin <gallatin@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/pci pci.c src/sys/alpha/pci pcibus.c Message-ID: <200105272222.f4RMM3v91968@freefall.freebsd.org>
index | next in thread | raw e-mail
gallatin 2001/05/27 15:22:03 PDT
Modified files:
sys/dev/pci pci.c
sys/alpha/pci pcibus.c
Log:
finally fix intr routing on alphas such as the as500 after months of
breakage:
- call PCIB_ROUTE_INTERRUPT() regardless of how valid the intline looks.
Some alphas leave garbage in the intline and leave the intr mapping
to OS platform support routines that map slots/buses to intlines
- Down in the alpha pci code, first try platform.pci_intr_route() and
if it doesn't exist or returns garbage, just read the intline out of
config space.
tested on AS500 (garbage in intline) and UP1000 (PC-like, intline is valid)
Note that a nice little hack like the APIC_IO section of pci_cfgregread()
is not workable. This is because the calling interface for
alpha_pci_route_interrupt() requires us to figure out the bus/slot/etc
from a device_t. At pci_read_device() time, we don't have a device_t
for the bus/slot/func in question.
Revision Changes Path
1.177 +6 -2 src/sys/dev/pci/pci.c
1.29 +8 -3 src/sys/alpha/pci/pcibus.c
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105272222.f4RMM3v91968>
