1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-20 11:11:24 +00:00
freebsd/sys/dev
John Baldwin 2ccfc93222 Overhaul the ACPI PCI bridge driver a bit:
- Add an ACPI PCI-PCI bridge driver (the previous driver just handled
  Host-PCI bridges) that is a PCI driver that is a subclass of the generic
  PCI-PCI bridge driver.  It overrides probe, attach, read_ivar, and
  pci_route_interrupt.
  - The probe routine only succeeds if our parent is an ACPI PCI bus which
    we test for by seeing if we can read our ACPI_HANDLE as an ivar.
  - The attach routine saves a copy of our handle and calls the new
    acpi_pcib_attach_common() function described below.
  - The read_ivar routine handles normal PCI-PCI bridge ivars and adds an
    ivar to return the ACPI_HANDLE of the bus this bridge represents.
  - The route_interrupt routine fetches the _PRT (PCI Interrupt Routing
    Table) from the bridge device's softc and passes it off to
    acpi_pcib_route_interrupt() to route the interrupt.
- Split the old ACPI Host-PCI bridge driver into two pieces.  Part of
  the attach routine and most of the route_interrupt routine remain in
  acpi_pcib.c and are shared by both ACPI PCI bridge drivers.
  - The attach routine verifies the PCI bridge is present, reads in
    the _PRT for the bridge, and attaches the child PCI bus.
  - The route_interrupt routine uses the passed in _PRT to route a PCI
    interrupt.
  The rest of the driver is the ACPI Host-PCI bridge specific bits that
  live in acpi_pcib_acpi.c.
  - We no longer duplicate pcib_maxslots but use it directly.
  - The driver now uses the pcib devclass instead of its own devclass.
    This means that PCI busses are now only children of pcib devices.
  - Allow the ACPI_HANDLE for the child PCI bus to be read as an ivar
    of the child bus.
  - Fetch the _PRT for routing PCI interrupts directly from our softc
    instead of walking the devclass to find ourself and then fetch our
    own softc.

With this change and the new ACPI PCI bus driver, ACPI can now properly
route interrupts for devices behind PCI-PCI bridges.  That is, the
Itanium2 with like 10 PCI busses can now boot ok and route all the PCI
interrupts.  Hopefully this will also fix problems people are having with
CardBus bridges behind PCI-PCI bridges not properly routing interrupts
when ACPI is used.

Tested on:	i386, ia64
2002-08-26 18:30:27 +00:00
..
aac In continuation of early fileop credential changes, modify fo_ioctl() to 2002-08-17 02:36:16 +00:00
acpica Overhaul the ACPI PCI bridge driver a bit: 2002-08-26 18:30:27 +00:00
advansys
agp o Retire vm_page_zero_fill() and vm_page_zero_fill_area(). Ever since 2002-08-25 00:22:31 +00:00
aha Fix new gcc-3.1 warnings. I think this gets GENERIC compiling cleanly 2002-05-24 05:21:36 +00:00
ahb Fix new gcc-3.1 warnings. I think this gets GENERIC compiling cleanly 2002-05-24 05:21:36 +00:00
aic
aic7xxx Allow the ahc and ahd drivers to be built as modules. This also 2002-08-01 01:36:39 +00:00
amd
amr
an Fix location and name of if_an_pci.c in comment. 2002-07-27 21:28:40 +00:00
ar Directives may not be used inside a macro argument, so don't. 2002-05-09 18:01:19 +00:00
asr Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
ata Fix buffer length. 2002-08-19 18:52:23 +00:00
atkbdc Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
awi Use __FreeBSD_version to test what things to use 2002-05-31 03:27:34 +00:00
bge Recognize the Altima AC9100 chip, which is used in current versions 2002-07-26 03:47:08 +00:00
bktr Remove abuse of NBKTR - this was always a NOP on freebsd. We never 2002-07-21 05:19:03 +00:00
buslogic Remove #if 0'ed abuse of NPCI 2002-07-21 05:16:56 +00:00
cardbus pccbb -> cbb 2002-08-15 08:02:23 +00:00
ccd Fixed printf format errors. Most of them are 64-bit daddr_t casualties. 2002-05-25 11:05:07 +00:00
ciss Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
cm
cnw
cs
ct Quick, low impact band-aide to unbreak the build. Added && 0 so we 2002-06-01 08:29:12 +00:00
cy
dc style: 2002-08-23 23:49:02 +00:00
de Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
dec
dgb
digi Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
dpt
drm In continuation of early fileop credential changes, modify fo_ioctl() to 2002-08-17 02:36:16 +00:00
ed Add ALLIED TELESIS,K.K. LA-ISA V2 ISA PnP ID. 2002-07-26 17:33:58 +00:00
eisa - Use the __BUS_ACCESSOR macro for EISA_ACCESSOR instead 2002-08-20 12:32:06 +00:00
em TX/RX descriptor/buffer management changes. 2002-08-21 23:44:15 +00:00
en
ep Fix build breakage on my pccard related commit. 2002-05-31 01:08:49 +00:00
ex
exca MFp4: 2002-07-26 08:01:08 +00:00
fb Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
fdc After some comments from bde, rewrite the loops to avoid turning the 2002-05-14 21:28:45 +00:00
fe
fxp Increase size of ifnet.if_flags from 16 bits (short) to 32 bits (int). To avoid 2002-08-18 07:05:00 +00:00
gem Fix warning. 2002-07-24 01:09:38 +00:00
gfb
gx Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
hea - Remove DMA_* macros as only one, DMA_GET_ADDR, was used. 2002-06-24 05:03:44 +00:00
hfa Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
hme Call bpf_mtap() on output, to catch outgoing packets for e.g. tcpdump . 2002-07-30 21:47:14 +00:00
ic
ichsmb Add PCI ID for ICH4 SMBus controller. 2002-08-12 16:22:12 +00:00
ida
ie
iicbus
iir Don't include <stddef.h> "For offsetof". This is not even wrong in 2002-05-13 14:11:33 +00:00
isp Define ISP_DMA_ADDR_T to be a bus_addr_t, not a u_int32_t. 2002-08-22 16:14:19 +00:00
ispfw Add SBus firmware (compiled in only for sparc systems). 2002-07-11 01:55:15 +00:00
joy Fix typo in the BSD copyright: s/withough/without/ 2002-06-02 20:05:59 +00:00
kbd Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
lge Cleanup after my de-__P (remove leading whitespace before prototype args). 2002-07-06 16:34:32 +00:00
lmc Remove #include <pci.h> - there is no abuse of NPCI here 2002-07-21 05:16:14 +00:00
lnc
mc146818
mca
mcd
md Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
mii Revert change to detect multiply PHYs in mii code. There might be cases 2002-08-16 23:19:16 +00:00
mk48txx
mlx
mly Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
mpt Do some minor cleanups found during backport to RELENG_4. 2002-08-23 06:56:31 +00:00
mse
musycc
my Add missing unlock 2002-05-30 23:41:51 +00:00
ncv Quick, low impact band-aide to unbreak the build. Added && 0 so we 2002-05-31 23:39:04 +00:00
nge Add support for SX cards using TBI such as Netgear GA621. 2002-08-08 18:33:28 +00:00
nmdm
nsp Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
null Modernise the cdevsw WRT to (unused) kqueue. 2002-08-02 11:24:43 +00:00
ofw Basic OpenFirmware disk driver. It will attach to anything in OpenFirmware 2002-04-15 10:54:22 +00:00
pccard pccbb -> cbb 2002-08-15 08:02:23 +00:00
pccbb Fix typos: s/O2Mirco/O2Micro/ 2002-08-24 07:46:08 +00:00
pcf
pci Overhaul the ACPI PCI bridge driver a bit: 2002-08-26 18:30:27 +00:00
pcic Make oldcard and newcard kernel module work. 2002-05-30 17:38:00 +00:00
pdq Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
ppbus Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
ppc
pst Fix args for contigmalloc, cosmetics. 2002-08-18 12:20:33 +00:00
puc Add an entry for Avlab's low profile 4 serial port card. 2002-08-22 10:40:00 +00:00
random Upgrade the random device to use a "real" hash instead of building 2002-07-15 13:58:35 +00:00
ray Fix warnings. 2002-06-01 18:50:35 +00:00
rc Off-by-128 error in the cuam* device node numbers. 2002-05-20 05:12:56 +00:00
rp
sab Ported to FreeBSD. 2002-08-04 18:41:27 +00:00
sbni printf() formats fixes 2002-08-06 17:00:02 +00:00
scd Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
sf style: 2002-08-23 23:49:02 +00:00
si Do not try and probe random PNP devices, This Is Bad. 2002-07-27 08:46:28 +00:00
sio Add missing quotes around ID string in __FBSDID(). 2002-07-16 16:20:44 +00:00
sk style: 2002-08-23 23:49:02 +00:00
smbus
sn Don't bogusly depend on pcic. pccard should be enough. 2002-08-08 15:52:55 +00:00
snc
snp
sound Add suspend and resume support. 2002-08-25 02:00:49 +00:00
speaker
sr Don't abuse __FreeBSD__ as version number. Since it was >= 3, remove 2002-07-21 04:25:30 +00:00
stg Quick, low impact band-aide to unbreak the build. Added && 0 so we 2002-05-31 23:39:04 +00:00
streams
sym Move the new byte order function prototypes from <sys/param.h> to 2002-04-26 22:48:23 +00:00
syscons Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
tdfx In continuation of early fileop credential changes, modify fo_ioctl() to 2002-08-17 02:36:16 +00:00
tga
ti style: put return types on a line by themselves. 2002-08-24 00:02:03 +00:00
twe Replace (ab)uses of "NULL" where "0" is really meant. 2002-08-22 21:24:01 +00:00
tx Stop trying to align malloc()ed memory. Rely on malloc() instead, just like 2002-08-19 20:36:08 +00:00
txp
usb Replace various spelling with FALLTHROUGH which is lint()able 2002-08-25 13:23:09 +00:00
vinum Don't use "NULL" when "0" is really meant. 2002-08-21 23:39:52 +00:00
vr style: put return types on a line by themselves. 2002-08-24 00:02:03 +00:00
vx Increase size of ifnet.if_flags from 16 bits (short) to 32 bits (int). To avoid 2002-08-18 07:05:00 +00:00
wds
wi When setting the WI_RID_ENCRYPTION mode, we have to conditionally 2002-08-21 05:57:37 +00:00
wl Fix typo in the BSD copyright: s/withough/without/ 2002-06-02 20:05:59 +00:00
xe Three minor changes: 2002-07-22 21:24:12 +00:00