summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-04-14 14:02:34 +0000
committerkib <kib@FreeBSD.org>2013-04-14 14:02:34 +0000
commit0749739009c894564d14ddf50ccc39ae723ad30c (patch)
treed61640b36103df50ce39bec8bb652ea64ce53cc4 /sys/dev/ata
parentc7cb06a811249addb8c109bf748aba476b136fbc (diff)
downloadFreeBSD-src-0749739009c894564d14ddf50ccc39ae723ad30c.zip
FreeBSD-src-0749739009c894564d14ddf50ccc39ae723ad30c.tar.gz
Usnure that PCI bus BIS_GET_DMA_TAG() method sees the actual PCI
device which makes the request for dma tag, instead of some descendant of the PCI device, by creating a pass-through trampoline for vga_pci and ata_pci buses. Sponsored by: The FreeBSD Foundation Suggested by: jhb Discussed with: jhb, mav MFC after: 1 week
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/ata-pci.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c
index b3cf726..0f7e8af 100644
--- a/sys/dev/ata/ata-pci.c
+++ b/sys/dev/ata/ata-pci.c
@@ -571,6 +571,13 @@ ata_pci_child_location_str(device_t dev, device_t child, char *buf,
return (0);
}
+static bus_dma_tag_t
+ata_pci_get_dma_tag(device_t bus, device_t child)
+{
+
+ return (bus_get_dma_tag(bus));
+}
+
static device_method_t ata_pci_methods[] = {
/* device interface */
DEVMETHOD(device_probe, ata_pci_probe),
@@ -593,6 +600,7 @@ static device_method_t ata_pci_methods[] = {
DEVMETHOD(pci_write_config, ata_pci_write_config),
DEVMETHOD(bus_print_child, ata_pci_print_child),
DEVMETHOD(bus_child_location_str, ata_pci_child_location_str),
+ DEVMETHOD(bus_get_dma_tag, ata_pci_get_dma_tag),
DEVMETHOD_END
};
OpenPOWER on IntegriCloud