Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jul 2007 16:25:17 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-hackers@freebsd.org
Cc:        freebsd-usb@freebsd.org
Subject:   Re: New USB stack and Zero copy.
Message-ID:  <200707051625.17954.jhb@freebsd.org>
In-Reply-To: <200707050931.59256.hselasky@c2i.net>
References:  <200707040901.33019.hselasky@c2i.net> <20070704173531.GO1221@funkthat.com> <200707050931.59256.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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 
+0200:
> > > 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 
USB
> > > 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.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707051625.17954.jhb>