[alsa-devel] Proposal for more reliable audio DMA.

Jon Smirl jonsmirl at gmail.com
Thu Jun 25 06:26:16 CEST 2009

On Wed, Jun 24, 2009 at 5:11 PM, Takashi Iwai<tiwai at 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.

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.

Jon Smirl
jonsmirl at gmail.com

More information about the Alsa-devel mailing list