summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2012-03-12 19:29:35 +0000
committerscottl <scottl@FreeBSD.org>2012-03-12 19:29:35 +0000
commita0bfb3e1144a9ea426aa63807e11d0416ee2562d (patch)
treeef4c430962d44fc3002ab48dec204733b04ae37a
parent086b945161095994a02d90c5a819197e38c1404a (diff)
downloadFreeBSD-src-a0bfb3e1144a9ea426aa63807e11d0416ee2562d.zip
FreeBSD-src-a0bfb3e1144a9ea426aa63807e11d0416ee2562d.tar.gz
Final pass at having devices use their bus parent for dma tags. The
remaining drivers that haven't been converted have various problems or complexities that will be dealt with later. This list includes: hptrr, hptmv, hpt27xx - device aggregation across multiple parents drm - want to talk to the maintainer first tsec, sec - Openfirmware devices, not sure if changes are warranted fatm - Done except for unused testing code usb - want to talk to the maintainer first ce, cp, ctau, cx - Significant driver changes needed to convey parent info There are also devices tucked into architecture subtrees that I'll leave for the respective maintainers to deal with.
-rw-r--r--sys/dev/advansys/adv_eisa.c6
-rw-r--r--sys/dev/advansys/adv_isa.c3
-rw-r--r--sys/dev/ahb/ahb.c4
-rw-r--r--sys/dev/cesa/cesa.c4
-rw-r--r--sys/dev/en/midway.c4
-rw-r--r--sys/dev/wds/wd7000.c2
-rw-r--r--sys/dev/xen/blkfront/blkfront.c2
7 files changed, 11 insertions, 14 deletions
diff --git a/sys/dev/advansys/adv_eisa.c b/sys/dev/advansys/adv_eisa.c
index 6afdc5f..0daf351 100644
--- a/sys/dev/advansys/adv_eisa.c
+++ b/sys/dev/advansys/adv_eisa.c
@@ -171,9 +171,8 @@ adv_eisa_attach(device_t dev)
* Allocate a parent dmatag for all tags created
* by the MI portions of the advansys driver
*/
- /* XXX Should be a child of the PCI bus dma tag */
error = bus_dma_tag_create(
- /* parent */ NULL,
+ /* parent */ bus_get_dma_tag(dev),
/* alignment */ 1,
/* boundary */ 0,
/* lowaddr */ ADV_EISA_MAX_DMA_ADDR,
@@ -211,9 +210,8 @@ adv_eisa_attach(device_t dev)
* Allocate a parent dmatag for all tags created
* by the MI portions of the advansys driver
*/
- /* XXX Should be a child of the PCI bus dma tag */
error = bus_dma_tag_create(
- /* parent */ NULL,
+ /* parent */ bus_get_dma_tag(dev),
/* alignment */ 1,
/* boundary */ 0,
/* lowaddr */ ADV_EISA_MAX_DMA_ADDR,
diff --git a/sys/dev/advansys/adv_isa.c b/sys/dev/advansys/adv_isa.c
index 182ca54..2c7c98e 100644
--- a/sys/dev/advansys/adv_isa.c
+++ b/sys/dev/advansys/adv_isa.c
@@ -226,9 +226,8 @@ adv_isa_probe(device_t dev)
* Allocate a parent dmatag for all tags created
* by the MI portions of the advansys driver
*/
- /* XXX Should be a child of the ISA bus dma tag */
error = bus_dma_tag_create(
- /* parent */ NULL,
+ /* parent */ bus_get_dma_tag(dev),
/* alignemnt */ 1,
/* boundary */ 0,
/* lowaddr */ lowaddr,
diff --git a/sys/dev/ahb/ahb.c b/sys/dev/ahb/ahb.c
index 10ecd6d..96c09e5 100644
--- a/sys/dev/ahb/ahb.c
+++ b/sys/dev/ahb/ahb.c
@@ -292,7 +292,7 @@ ahbattach(device_t dev)
*/
/* DMA tag for mapping buffers into device visible space. */
/* XXX Should be a child of the EISA bus dma tag */
- if (bus_dma_tag_create( /* parent */ NULL,
+ if (bus_dma_tag_create( /* parent */ bus_get_dma_tag(dev),
/* alignment */ 1,
/* boundary */ 0,
/* lowaddr */ BUS_SPACE_MAXADDR_32BIT,
@@ -311,7 +311,7 @@ ahbattach(device_t dev)
ahb->init_level++;
/* DMA tag for our ccb structures and ha inquiry data */
- if (bus_dma_tag_create( /* parent */ NULL,
+ if (bus_dma_tag_create( /* parent */ bus_get_dma_tag(dev),
/* alignment */ 1,
/* boundary */ 0,
/* lowaddr */ BUS_SPACE_MAXADDR_32BIT,
diff --git a/sys/dev/cesa/cesa.c b/sys/dev/cesa/cesa.c
index 5d67fc6..9c758a4 100644
--- a/sys/dev/cesa/cesa.c
+++ b/sys/dev/cesa/cesa.c
@@ -157,7 +157,7 @@ cesa_alloc_dma_mem(struct cesa_softc *sc, struct cesa_dma_mem *cdm,
KASSERT(cdm->cdm_vaddr == NULL,
("%s(): DMA memory descriptor in use.", __func__));
- error = bus_dma_tag_create(NULL, /* parent */
+ error = bus_dma_tag_create(bus_get_dma_tag(sc->sc_dev), /* parent */
PAGE_SIZE, 0, /* alignment, boundary */
BUS_SPACE_MAXADDR_32BIT, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
@@ -1046,7 +1046,7 @@ cesa_attach(device_t dev)
}
/* Create DMA tag for processed data */
- error = bus_dma_tag_create(NULL, /* parent */
+ error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */
1, 0, /* alignment, boundary */
BUS_SPACE_MAXADDR_32BIT, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
diff --git a/sys/dev/en/midway.c b/sys/dev/en/midway.c
index c343db6..3b57ce3 100644
--- a/sys/dev/en/midway.c
+++ b/sys/dev/en/midway.c
@@ -2714,7 +2714,7 @@ en_dmaprobe(struct en_softc *sc)
* Allocate some DMA-able memory.
* We need 3 times the max burst size aligned to the max burst size.
*/
- err = bus_dma_tag_create(NULL, MIDDMA_MAXBURST, 0,
+ err = bus_dma_tag_create(bus_get_dma_tag(sc->dev), MIDDMA_MAXBURST, 0,
BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL,
3 * MIDDMA_MAXBURST, 1, 3 * MIDDMA_MAXBURST, 0,
NULL, NULL, &tag);
@@ -2927,7 +2927,7 @@ en_attach(struct en_softc *sc)
MGET(sc->padbuf, M_WAIT, MT_DATA);
bzero(sc->padbuf->m_data, MLEN);
- if (bus_dma_tag_create(NULL, 1, 0,
+ if (bus_dma_tag_create(bus_get_dma_tag(sc->dev), 1, 0,
BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL,
EN_TXSZ * 1024, EN_MAX_DMASEG, EN_TXSZ * 1024, 0,
NULL, NULL, &sc->txtag))
diff --git a/sys/dev/wds/wd7000.c b/sys/dev/wds/wd7000.c
index bad36e1..3dcd735 100644
--- a/sys/dev/wds/wd7000.c
+++ b/sys/dev/wds/wd7000.c
@@ -549,7 +549,7 @@ wds_attach(device_t dev)
goto bad;
/* now create the memory buffer */
- error = bus_dma_tag_create(NULL, /*alignment*/4,
+ error = bus_dma_tag_create(bus_get_dma_tag(dev), /*alignment*/4,
/*boundary*/0,
/*lowaddr*/BUS_SPACE_MAXADDR_24BIT,
/*highaddr*/ BUS_SPACE_MAXADDR,
diff --git a/sys/dev/xen/blkfront/blkfront.c b/sys/dev/xen/blkfront/blkfront.c
index a5e280d..3061a82 100644
--- a/sys/dev/xen/blkfront/blkfront.c
+++ b/sys/dev/xen/blkfront/blkfront.c
@@ -650,7 +650,7 @@ blkfront_initialize(struct xb_softc *sc)
sc->max_request_blocks = BLKIF_SEGS_TO_BLOCKS(sc->max_request_segments);
/* Allocate datastructures based on negotiated values. */
- error = bus_dma_tag_create(NULL, /* parent */
+ error = bus_dma_tag_create(bus_get_dma_tag(sc->xb_dev), /* parent */
512, PAGE_SIZE, /* algnmnt, boundary */
BUS_SPACE_MAXADDR, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
OpenPOWER on IntegriCloud