From: Takashi Iwai <tiwai@suse.de>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linux-mips@linux-mips.org, alsa-devel@alsa-project.org,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Becky Bruce <beckyb@kernel.crashing.org>,
Wu Zhangjin <wuzhangjin@gmail.com>,
Ralf Baechle <ralf@linux-mips.org>, Andreas Mohr <andi@lisas.de>,
Kumar Gala <galak@gate.crashing.org>
Subject: Re: [PATCH 0/5] PCM mmap (temporary) fixes for non-coherent architectures
Date: Fri, 15 Jan 2010 08:32:23 +0100 [thread overview]
Message-ID: <s5hska7lt6g.wl%tiwai@suse.de> (raw)
In-Reply-To: <1263538249.724.405.camel@pasglop>
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
WARNING: multiple messages have this Message-ID (diff)
From: Takashi Iwai <tiwai@suse.de>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
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>
Subject: Re: [PATCH 0/5] PCM mmap (temporary) fixes for non-coherent architectures
Date: Fri, 15 Jan 2010 08:32:23 +0100 [thread overview]
Message-ID: <s5hska7lt6g.wl%tiwai@suse.de> (raw)
In-Reply-To: <1263538249.724.405.camel@pasglop>
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
next prev parent reply other threads:[~2010-01-15 7:32 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-26 15:13 [PATCH 0/5] PCM mmap (temporary) fixes for non-coherent architectures Takashi Iwai
2009-11-26 15:13 ` Takashi Iwai
2009-11-26 15:13 ` [PATCH 1/5] ALSA: pcm - Use dma_mmap_coherent() if available Takashi Iwai
2009-11-26 15:13 ` Takashi Iwai
2009-11-26 15:13 ` [PATCH 2/5] ALSA: pcm - define snd_pcm_default_page_ops() Takashi Iwai
2009-11-26 15:13 ` Takashi Iwai
2009-11-26 15:13 ` [PATCH 3/5] ALSA: pcm - fix page conversion on non-coherent MIPS arch Takashi Iwai
2009-11-26 15:13 ` Takashi Iwai
2009-11-26 15:13 ` [PATCH 4/5] ALSA: pcm - fix page conversion on non-coherent PPC arch Takashi Iwai
2009-11-26 15:13 ` Takashi Iwai
2009-11-26 15:13 ` [PATCH 5/5] ALSA: Remove old DMA-mmap code from arm/devdma.c Takashi Iwai
2009-11-26 15:13 ` Takashi Iwai
2009-11-26 16:56 ` [PATCH 4/5] ALSA: pcm - fix page conversion on non-coherent PPC arch Takashi Iwai
2009-11-26 16:56 ` Takashi Iwai
2009-11-26 21:14 ` Benjamin Herrenschmidt
2009-11-26 21:14 ` Benjamin Herrenschmidt
2009-11-26 20:51 ` Benjamin Herrenschmidt
2009-11-26 20:51 ` Benjamin Herrenschmidt
2009-11-27 9:18 ` Takashi Iwai
2009-11-27 9:18 ` Takashi Iwai
2009-11-27 3:52 ` [PATCH 3/5] ALSA: pcm - fix page conversion on non-coherent MIPS arch Wu Zhangjin
2009-11-27 9:26 ` Takashi Iwai
2009-11-27 9:26 ` Takashi Iwai
2009-11-27 8:46 ` Ralf Baechle
2009-11-27 8:46 ` Ralf Baechle
2009-11-27 9:20 ` Takashi Iwai
2009-11-27 9:20 ` Takashi Iwai
2010-01-01 19:31 ` [PATCH 0/5] PCM mmap (temporary) fixes for non-coherent architectures Andreas Mohr
2010-01-12 7:02 ` Takashi Iwai
2010-01-12 7:02 ` Takashi Iwai
2010-01-13 9:07 ` Takashi Iwai
2010-01-13 9:07 ` Takashi Iwai
2010-01-14 7:46 ` Andreas Mohr
2010-01-14 7:46 ` Andreas Mohr
2010-01-14 7:54 ` Takashi Iwai
2010-01-14 7:54 ` Takashi Iwai
2010-01-15 3:28 ` Benjamin Herrenschmidt
2010-01-15 3:28 ` Benjamin Herrenschmidt
2010-01-15 6:43 ` Takashi Iwai
2010-01-15 6:43 ` Takashi Iwai
2010-01-15 6:50 ` Benjamin Herrenschmidt
2010-01-15 6:50 ` Benjamin Herrenschmidt
2010-01-15 7:32 ` Takashi Iwai [this message]
2010-01-15 7:32 ` Takashi Iwai
2010-01-13 9:28 ` Andreas Mohr
2010-01-13 9:28 ` Andreas Mohr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5hska7lt6g.wl%tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=andi@lisas.de \
--cc=beckyb@kernel.crashing.org \
--cc=benh@kernel.crashing.org \
--cc=galak@gate.crashing.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
--cc=tsbogend@alpha.franken.de \
--cc=wuzhangjin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.