diff options
author | jhb <jhb@FreeBSD.org> | 2012-03-02 20:38:04 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2012-03-02 20:38:04 +0000 |
commit | d6e546f14a581a2fb495e470ff7bf73ec4282395 (patch) | |
tree | b50d96653ef1fad93fd23cd1c81a0d5719b09573 /sys/dev/cardbus | |
parent | 6d9202e45726f379f997128f531e4d8945656c74 (diff) | |
download | FreeBSD-src-d6e546f14a581a2fb495e470ff7bf73ec4282395.zip FreeBSD-src-d6e546f14a581a2fb495e470ff7bf73ec4282395.tar.gz |
- Add a bus_dma tag to each PCI bus that is a child of a Host-PCI bridge.
The tag enforces a single restriction that all DMA transactions must not
cross a 4GB boundary. Note that while this restriction technically only
applies to PCI-express, this change applies it to all PCI devices as it
is simpler to implement that way and errs on the side of caution.
- Add a softc structure for PCI bus devices to hold the bus_dma tag and
a new pci_attach_common() routine that performs actions common to the
attach phase of all PCI bus drivers. Right now this only consists of
a bootverbose printf and the allocate of a bus_dma tag if necessary.
- Adjust all PCI bus drivers to allocate a PCI bus softc and to call
pci_attach_common() from their attach routines.
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/cardbus')
-rw-r--r-- | sys/dev/cardbus/cardbus.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/cardbus/cardbus.c b/sys/dev/cardbus/cardbus.c index ea75770..608c1fe 100644 --- a/sys/dev/cardbus/cardbus.c +++ b/sys/dev/cardbus/cardbus.c @@ -316,6 +316,7 @@ static device_method_t cardbus_methods[] = { DEVMETHOD(device_resume, cardbus_resume), /* Bus interface */ + DEVMETHOD(bus_get_dma_tag, bus_generic_get_dma_tag), DEVMETHOD(bus_read_ivar, cardbus_read_ivar), DEVMETHOD(bus_driver_added, cardbus_driver_added), |