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>