PERFORCE change 207047 for review
John Baldwin
jhb at FreeBSD.org
Tue Feb 28 20:18:02 UTC 2012
http://p4web.freebsd.org/@@207047?ac=10
Change 207047 by jhb at jhb_jhbbsd on 2012/02/28 20:17:48
Don't create DMA tags on PCI busses behind a PCI-PCI bridge.
Affected files ...
.. //depot/projects/pci/sys/dev/pci/pci.c#28 edit
Differences ...
==== //depot/projects/pci/sys/dev/pci/pci.c#28 (text+ko) ====
@@ -3175,15 +3175,18 @@
if (bootverbose)
device_printf(dev, "domain=%d, physical bus=%d\n",
domain, busno);
- error = bus_dma_tag_create(bus_get_dma_tag(dev), 1, PCI_DMA_BOUNDARY,
- BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL, BUS_SPACE_MAXSIZE,
- BUS_SPACE_UNRESTRICTED, BUS_SPACE_MAXSIZE, 0, NULL, NULL,
- &sc->sc_dma_tag);
- if (error)
- device_printf(dev, "Failed to create DMA tag: %d\n", error);
- else
- sc->sc_dma_tag_valid = 1;
-
+ if (device_get_devclass(device_get_parent(device_get_parent(dev))) !=
+ devclass_find("pci")) {
+ error = bus_dma_tag_create(bus_get_dma_tag(dev), 1,
+ PCI_DMA_BOUNDARY, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR,
+ NULL, NULL, BUS_SPACE_MAXSIZE, BUS_SPACE_UNRESTRICTED,
+ BUS_SPACE_MAXSIZE, 0, NULL, NULL, &sc->sc_dma_tag);
+ if (error)
+ device_printf(dev, "Failed to create DMA tag: %d\n",
+ error);
+ else
+ sc->sc_dma_tag_valid = 1;
+ }
return (0);
}
More information about the p4-projects
mailing list