summaryrefslogtreecommitdiffstats
path: root/sys/dev/trm
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2012-03-12 18:15:08 +0000
committerscottl <scottl@FreeBSD.org>2012-03-12 18:15:08 +0000
commit2e7ae86807f43c9ea4f0469949d9d219439d4746 (patch)
tree4ced951e8f3d5eebc9a6faba8d843d83ec452288 /sys/dev/trm
parent89dc636733d07508428d015c5099c0c98a11e8b8 (diff)
downloadFreeBSD-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.c24
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);
}
OpenPOWER on IntegriCloud