New USB stack and Zero copy.
jhb at freebsd.org
Thu Jul 5 21:22:06 UTC 2007
On Thursday 05 July 2007 03:31:59 am Hans Petter Selasky wrote:
> On Wednesday 04 July 2007 19:35, John-Mark Gurney wrote:
> > Hans Petter Selasky wrote this message on Wed, Jul 04, 2007 at 09:01
> > > Also: How is the easiest way to load memory pages into DMA ? And I want
> > > that the loadig works like this, that when the page must be bounced it
> > > should not allocate a bounce buffer, hence I already have a bounce
> > > buffer. I only need to know which pages I can forward directly to the
> > > hardware, and the rest I will bounce somewhere else.
> > Why do you not want to let bus_dma do the bouncing for you? If it's
> > to save a copy to another buffer, why don't you load the final buffer
> > into bus_dma?
> Because if I let bus_dma do the bounching, I cannot do this while holding a
> mutex, hence allocating DMA'able memory on the fly is not so good.
This is not a hard problem to solve, every other driver using bus_dma solves
it. Just make sure your driver is in a sane state and drop the lock while
you let bus_dmamap_load() map/copy things for you.
More information about the freebsd-usb