linux-mips
[Top] [All Lists]

Re: [PATCH 0/5] PCM mmap (temporary) fixes for non-coherent architecture

To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [PATCH 0/5] PCM mmap (temporary) fixes for non-coherent architectures
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 15 Jan 2010 08:32:23 +0100
Cc: Andreas Mohr <andi@lisas.de>, alsa-devel@alsa-project.org, Ralf Baechle <ralf@linux-mips.org>, Wu Zhangjin <wuzhangjin@gmail.com>, Thomas Bogendoerfer <tsbogend@alpha.franken.de>, linux-mips@linux-mips.org, Kumar Gala <galak@gate.crashing.org>, Becky Bruce <beckyb@kernel.crashing.org>
In-reply-to: <1263538249.724.405.camel@pasglop>
References: <1259248388-20095-1-git-send-email-tiwai@suse.de> <20100101193130.GA21510@rhlx01.hs-esslingen.de> <s5haawj7qlv.wl%tiwai@suse.de> <s5hljg24bl7.wl%tiwai@suse.de> <1263526082.724.395.camel@pasglop> <s5hvdf3lvfi.wl%tiwai@suse.de> <1263538249.724.405.camel@pasglop>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.7 Emacs/23.1 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO)
At Fri, 15 Jan 2010 17:50:49 +1100,
Benjamin Herrenschmidt wrote:
> 
> On Fri, 2010-01-15 at 07:43 +0100, Takashi Iwai wrote:
> > 
> > > It -might- be worth looking at adding code to the USB stack to
> > propagate
> > > the parent device dma_ops down to USB devices... hard to tell.
> > 
> > Or we may simply need to drop the mmap support on such
> > architectures...
> 
> Nah, that would suck since that includes x86 nowadays :-)

Ah, no, I meant about non-coherent architectures that can't use
vmalloc pages as the intermediate buffer.  Dropping mmap for x86 would
be a big regression ;)

> I think you probably need to separate the struct device * used for DMA
> (it could be default be the same as the "main" struct device tho or it
> could default to NULL which means no mmap support).
> 
> USB could (if not already) provide an accessor to obtain the HC's struct
> device for such mappings. We'll have to discuss that with Alan Stern I
> suppose.
> 
> The USB Audio or similar drivers could then use that accessors to fill
> up Alsa's dma_device field to replace the "default".

The situation of usb-audio is, unfortunately, a bit more complex
because the driver needs a continuous ring-buffer.  The packet data
are copied from that intermediate buffer on demand.

This isn't efficient, but the continuous ring-buffer is demanded by
the current API design exported as mmap.


thanks,

Takashi

<Prev in Thread] Current Thread [Next in Thread>