All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Hancock <hancockrwd@gmail.com>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: Takashi Iwai <tiwai@suse.de>,
	alsa-devel mailing list <alsa-devel@alsa-project.org>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	James Courtier-Dutton <james.dutton@gmail.com>
Subject: Re: Proposal for more reliable audio DMA.
Date: Wed, 24 Jun 2009 23:36:02 -0600	[thread overview]
Message-ID: <4A430CC2.9050003@gmail.com> (raw)
In-Reply-To: <9e4733910906242126v30add6d5r150f992aed6694dd@mail.gmail.com>

On 06/24/2009 10:26 PM, Jon Smirl wrote:
> On Wed, Jun 24, 2009 at 5:11 PM, Takashi Iwai<tiwai@suse.de>  wrote:
>>> The problem is knowing which sample in the background music to start
>>> mixing the low latency laser blast into.
>> That's why querying the accurate hwptr is important in PA.
>
> I'm still not convinced that all of this logic should be exposed to
> PA. Exposing these details is what makes ALSA hard to use. We should
> be able to better isolate user space from this. If mixing were moved
> into the kernel these details could be hidden.  The in-kernel code
> could then be customized for various sound DMA hardware. This would
> also go a long ways toward getting rid of latency issues by removing
> the need for real-time response from PA.

Mixing really does not belong in the kernel. Moving it there doesn't 
remove any complication or problem, it just moves it to a different 
place where it's more difficult to program and less debuggable. Most 
OSes (Windows included) are moving in the direction of moving mixing out 
of the kernel, not into it.

For what PulseAudio is trying to do, it needs this kind of information 
because it wants to be able to rewrite the buffer the card is reading 
out of at any time, and it needs to be able to know how far along in the 
buffer the card has read so it knows where it can start rewriting. It's 
somewhat complicated for sure, but most normal applications don't have 
to deal with these kinds of details.

>
> My hardware doesn't have the capability of querying the hwptr and the
> hwptr speed is not linear because of the FIFO and burst transfers.
> Non-linear speed means I can't use a clock to estimate hwptr. I do
> however have the capability of directing the DMA into a new buffer.
> Another thing I could try is setting up DMA descriptor chain blocks
> for every 16 bytes. These descriptors get marked as they are used and
> they don't have to cause an interrupt.
>
> We are evaluating a processor change from PPC to ARM so all of this
> may change for me.
>

  reply	other threads:[~2009-06-25  5:35 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-24 16:28 Proposal for more reliable audio DMA Mark Brown
2009-06-24 19:07 ` Jon Smirl
2009-06-24 21:11   ` Takashi Iwai
2009-06-25  4:26     ` Jon Smirl
2009-06-25  5:36       ` Robert Hancock [this message]
2009-06-25 14:20         ` Jon Smirl
2009-06-25 23:26           ` Robert Hancock
2009-06-25 10:25   ` Mark Brown
  -- strict thread matches above, loose matches on Subject: below --
2009-06-21  2:06 Jon Smirl
2009-06-22 16:27 ` James Courtier-Dutton
2009-06-22 16:43   ` Jon Smirl
2009-06-23  9:54     ` Mark Brown
2009-06-24 14:10       ` Jon Smirl
2009-06-24 14:39         ` Takashi Iwai
2009-06-24 15:14           ` Jon Smirl
2009-06-24 15:24             ` Takashi Iwai
2009-06-24 16:07               ` Jon Smirl
2009-06-25 15:26             ` James Courtier-Dutton

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=4A430CC2.9050003@gmail.com \
    --to=hancockrwd@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=james.dutton@gmail.com \
    --cc=jonsmirl@gmail.com \
    --cc=tiwai@suse.de \
    /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.