svn commit: r249723 - in stable/9/sys/dev: ata pci
Konstantin Belousov
kib at FreeBSD.org
Sun Apr 21 12:17:00 UTC 2013
Author: kib
Date: Sun Apr 21 12:16:59 2013
New Revision: 249723
URL: http://svnweb.freebsd.org/changeset/base/249723
Log:
MFC r249476:
Esnure that PCI bus BUS_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.
Modified:
stable/9/sys/dev/ata/ata-pci.c
stable/9/sys/dev/pci/vga_pci.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/dev/ (props changed)
Modified: stable/9/sys/dev/ata/ata-pci.c
==============================================================================
--- stable/9/sys/dev/ata/ata-pci.c Sun Apr 21 11:12:44 2013 (r249722)
+++ stable/9/sys/dev/ata/ata-pci.c Sun Apr 21 12:16:59 2013 (r249723)
@@ -572,6 +572,13 @@ ata_pci_child_location_str(device_t dev,
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),
@@ -594,6 +601,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
};
Modified: stable/9/sys/dev/pci/vga_pci.c
==============================================================================
--- stable/9/sys/dev/pci/vga_pci.c Sun Apr 21 11:12:44 2013 (r249722)
+++ stable/9/sys/dev/pci/vga_pci.c Sun Apr 21 12:16:59 2013 (r249723)
@@ -393,6 +393,13 @@ vga_pci_msix_count(device_t dev, device_
return (pci_msix_count(dev));
}
+static bus_dma_tag_t
+vga_pci_get_dma_tag(device_t bus, device_t child)
+{
+
+ return (bus_get_dma_tag(bus));
+}
+
static device_method_t vga_pci_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, vga_pci_probe),
@@ -410,6 +417,7 @@ static device_method_t vga_pci_methods[]
DEVMETHOD(bus_release_resource, vga_pci_release_resource),
DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
+ DEVMETHOD(bus_get_dma_tag, vga_pci_get_dma_tag),
/* PCI interface */
DEVMETHOD(pci_read_config, vga_pci_read_config),
More information about the svn-src-stable-9
mailing list