diff options
author | scottl <scottl@FreeBSD.org> | 2012-03-12 18:15:08 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2012-03-12 18:15:08 +0000 |
commit | 2e7ae86807f43c9ea4f0469949d9d219439d4746 (patch) | |
tree | 4ced951e8f3d5eebc9a6faba8d843d83ec452288 /sys/dev/trm | |
parent | 89dc636733d07508428d015c5099c0c98a11e8b8 (diff) | |
download | FreeBSD-src-2e7ae86807f43c9ea4f0469949d9d219439d4746.zip FreeBSD-src-2e7ae86807f43c9ea4f0469949d9d219439d4746.tar.gz |
More conversions of drivers to use the PCI parent DMA tag.
Diffstat (limited to 'sys/dev/trm')
-rw-r--r-- | sys/dev/trm/trm.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/sys/dev/trm/trm.c b/sys/dev/trm/trm.c index e7d5aad..765d5ea 100644 --- a/sys/dev/trm/trm.c +++ b/sys/dev/trm/trm.c @@ -3415,6 +3415,22 @@ trm_init(u_int16_t unit, device_t dev) pACB->tag = rman_get_bustag(pACB->iores); pACB->bsh = rman_get_bushandle(pACB->iores); if (bus_dma_tag_create( + /*parent_dmat*/ bus_get_dma_tag(dev), + /*alignment*/ 1, + /*boundary*/ 0, + /*lowaddr*/ BUS_SPACE_MAXADDR, + /*highaddr*/ BUS_SPACE_MAXADDR, + /*filter*/ NULL, + /*filterarg*/ NULL, + /*maxsize*/ BUS_SPACE_MAXSIZE_32BIT, + /*nsegments*/ BUS_SPACE_UNRESTRICTED, + /*maxsegsz*/ BUS_SPACE_MAXSIZE_32BIT, + /*flags*/ 0, + /*lockfunc*/ NULL, + /*lockarg*/ NULL, + /* dmat */ &pACB->parent_dmat) != 0) + goto bad; + if (bus_dma_tag_create( /*parent_dmat*/ pACB->parent_dmat, /*alignment*/ 1, /*boundary*/ 0, @@ -3458,7 +3474,9 @@ trm_init(u_int16_t unit, device_t dev) TRM_MAX_SRB_CNT * sizeof(TRM_SRB), trm_mapSRB, pACB, /* flags */0); /* Create, allocate, and map DMA buffers for autosense data */ - if (bus_dma_tag_create(/*parent_dmat*/NULL, /*alignment*/1, + if (bus_dma_tag_create( + /*parent_dmat*/pACB->parent_dmat, + /*alignment*/1, /*boundary*/0, /*lowaddr*/BUS_SPACE_MAXADDR_32BIT, /*highaddr*/BUS_SPACE_MAXADDR, @@ -3495,7 +3513,7 @@ trm_init(u_int16_t unit, device_t dev) } bzero(pACB->pFreeSRB, TRM_MAX_SRB_CNT * sizeof(TRM_SRB)); if (bus_dma_tag_create( - /*parent_dmat*/NULL, + /*parent_dmat*/pACB->parent_dmat, /*alignment*/ 1, /*boundary*/ 0, /*lowaddr*/ BUS_SPACE_MAXADDR, @@ -3546,6 +3564,8 @@ bad: bus_dma_tag_destroy(pACB->srb_dmat); if (pACB->buffer_dmat) bus_dma_tag_destroy(pACB->buffer_dmat); + if (pACB->parent_dmat) + bus_dma_tag_destroy(pACB->parent_dmat); return (NULL); } |