Date: Tue, 5 Sep 2006 21:11:50 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-arch@freebsd.org Cc: John-Mark Gurney <gurney_j@resnet.uoregon.edu>, freebsd-current@freebsd.org, Poul-Henning Kamp <phk@phk.freebsd.dk>, freebsd-drivers@freebsd.org Subject: Re: bus_get_dma_tag now necessary for drivers using bus_dma Message-ID: <200609052111.52304.hselasky@c2i.net> In-Reply-To: <44FDC278.3050902@samsco.org> References: <14026.1157478288@critter.freebsd.dk> <44FDC278.3050902@samsco.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 05 September 2006 20:31, Scott Long wrote:
> Poul-Henning Kamp wrote:
> > In message <20060905173334.GH9421@funkthat.com>, John-Mark Gurney writes:
> >>This means that for each call to bus_dma_tag_create, instead of passing
> >>a NULL pointer, you should call bus_get_dma_tag(yourdev) and use that
> >>as the parent tag. I committed some example code to various drivers,
> >>such as ahc, ata, em, and ohci.
> >
> > If there are never any exeptions to this requirement, why not
> > pass "yourdev" and have the magic hidden, rather than add 17
> > ritual characters to the API ?
>
> Drivers can have their own multi-level tag heirarchy. You'd have to
> create a new bus_dma_tag_create() variant that expected a device_t
> instead of a bus_dma_tag_t. This might be a good idea.
>
I think it is easier to share code with NetBSD if we use
"bus_get_dma_tag(yourdev)".
For example I use the following prototype on NetBSD and FreeBSD:
void *
usbd_mem_alloc(bus_dma_tag_t parent, u_int32_t size,
u_int8_t align_power);
--HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609052111.52304.hselasky>
