RFC bus_dma_tag_parent

Chuck Tuffli chuck_tuffli at agilent.com
Mon Nov 15 17:18:58 PST 2004

On Sat, Nov 13, 2004 at 01:13:05PM -0800, Matthew Dillon wrote:
. ..
>     Perhaps this is just a naming convention problem.  My take was that 
>     the purpose of bus_dma_tag_parent() was simply to retrieve the parent's
>     dma tag so it could be used as the first argument in a call to
>     bus_dma_tag_create().
>     e.g.
>     device {
> 	bus_dma_tag_t = bus_dma_tag_create(bus_dma_tag_parent(dev), align,
> 				boundary, lowaddr, highaddr, etc...);
>     }

yup, this is problem i was trying to fix

>     Now, there are certainly some restrictions to the current 
>     bus_dma_tag_create() function.  It does not give the parent(s) any
>     ability to modify the parameters to the device's new dma tag other
>     then through inheritance. 
>     If we want to give the parent(s) more control over how the child's tag
>     is created we would want to change bus_dma_tag_create() from a fixed
>     function in i386 to a DEVMETHOD.  I still believe we would also need
>     to have a bus_dma_tag_parent() DEVMETHOD, but the separation of 
>     functionality seems fairly clear to me.
[description of parent/create split]
>   Well, does that make any sense ?
>                                               -Matt

this makes sense to me. if there aren't other objections, i'll start
the documentation and implementation.

Chuck Tuffli
Agilent Technologies

More information about the Kernel mailing list