All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Looijmans <mike.looijmans@topic.nl>
To: Joel Fernandes <joelf@ti.com>
Cc: alsa-devel@alsa-project.org, lars@metafoo.de
Subject: Re: Query on Audio DMA using DMAEngine
Date: Wed, 14 Aug 2013 16:10:19 +0200	[thread overview]
Message-ID: <520B8FCB.2080608@topic.nl> (raw)
In-Reply-To: <520B0D5F.2040909@ti.com>

On 08/14/2013 06:53 AM, Joel Fernandes wrote:
> On 08/13/2013 11:30 PM, Joel Fernandes wrote:
>> Hi Mike,
>>
>> On 07/02/2013 12:50 AM, Mike Looijmans wrote:
>> [..]
>>>
>>>> Either way I'm sure your multi-slot approach is superior, but I don't
>>>> see how
>>>> you can get away with not updating the DMA addresses on every IRQ with
>>>> the
>>>> current davinci-pcm or EDMA controller (Unless you use a complicated
>>>> mechanism
>>>> like ping-pong where the address updates take care of itself). If you
>>>> are using
>>>> a set of chained slots, you only have so many slots so you have to
>>>> continuously
>>>> change addresses of the slots at some point or the other for a large
>>>> transfer.
>>>
>>> I use a chain like this:
>>>
>>> DMA1 -> DMA2 -> DMA... -> DMA1
>>>
>>> This meant I had to use a DMA PARAM slot for every "period". The OMAP
>>> L138 has 128 of those slots, so it's no problem to use a bunch of them.
>>> Because the chain is cyclic, there is no need to update any DMA
>>> parameter while running. All that ALSA needs to do is empty the buffer
>>> before the cycle completes and the current position gets overwritten.
>>
>> [Joel] Replying to this thread after a long time but just wondering, how do you
>> guarantee in your implementation that DMA will not empty the buffer
>> faster than it is filled?
>
> I guess this is also what you've called in some threads as the overrun
> condition.

Indeed. Alsa monitors the "position" of the ring, and when the DMA 
passes the application's "cursor", it reports an underrun or overrun 
(depending on whether it's capture or playback).

There is no guarantee - only verification. The user's application must 
keep up, or suffer the consequenses. My customer has been using the 
modified driver to capture 16 channels of 32-bit data at 50kHz for quite 
a while now. Before the modification, it wasn't even possible to 
reliably capture more than 4 channels.

Mike.


Met vriendelijke groet / kind regards,

Mike Looijmans

TOPIC Embedded Systems
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: (+31) – (0)499 - 33.69.79
Telefax: (+31) - (0)499 - 33.69.70
E-mail: mike.looijmans@topic.nl
Website: www.topic.nl

Dit e-mail bericht en de eventueel daarbij behorende bijlagen zijn uitsluitend bestemd voor de geadresseerde, zoals die blijkt uit het e-mail bericht en/of de bijlagen. Er kunnen gegevens met betrekking tot een derde instaan. Indien u als niet-geadresseerde dit bericht en de bijlagen ontvangt, terwijl u niet bevoegd of gemachtigd bent om dit bericht namens de geadresseerde te ontvangen, wordt u verzocht de afzender hierover direct te informeren en het e-mail bericht met de bijlagen te vernietigen. Ieder gebruik van de inhoud van het e-mail bericht, waaronder de daarbij behorende bijlagen, door een ander dan de geadresseerde is onrechtmatig jegens ons dan wel de eventueel in het e-mail bericht of de bijlagen voorkomende andere personen. TOPIC Embedded Systems is niet aansprakelijk voor enigerlei schade voortvloeiend uit het gebruik en/of acceptatie van dit e-mail bericht of de daarbij behorende bijlagen.

The contents of this message, as well as any enclosures, are addressed personally to, and thus solely intended for the addressee. They may contain information regarding a third party. A recipient who is neither the addressee, nor empowered to receive this message on behalf of the addressee, is kindly requested to immediately inform the sender of receipt, and to destroy the message and the enclosures. Any use of the contents of this message and/or the enclosures by any other person than the addressee or person who is empowered to receive this message, is illegal towards the sender and/or the aforementioned third party. TOPIC Embedded Systems is not  liable for any damage as a result of the use and/or acceptance of this message and as well as any enclosures.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  reply	other threads:[~2013-08-14 14:10 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <083BC63EECB6FD41B8E81CF7FD87CC0F2E4F1488@DLEE08.ent.ti.com>
2013-06-30 12:06 ` Query on Audio DMA using DMAEngine Lars-Peter Clausen
2013-07-01  6:10   ` Mike Looijmans
2013-07-02  1:28     ` Joel Fernandes
2013-07-02  6:02       ` Mike Looijmans
2013-07-02 12:16         ` Mark Brown
2013-07-02 13:30           ` Mike Looijmans
2013-07-02 14:58             ` Mark Brown
2013-07-04 11:00       ` Clemens Ladisch
2013-07-02  3:33     ` Joel Fernandes
2013-07-02  5:50       ` Mike Looijmans
2013-07-02 12:13         ` Mark Brown
2013-07-02 13:40           ` Mike Looijmans
2013-07-03  9:09           ` Lars-Peter Clausen
2013-07-03  9:43             ` Mark Brown
2013-07-03 13:17               ` Mike Looijmans
     [not found]                 ` <51D4245F.8070307-Oq418RWZeHk@public.gmane.org>
2013-07-03 19:56                   ` Joel Fernandes
     [not found]               ` <20130703094307.GE27646-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2013-07-03 17:55                 ` [alsa-devel] " Joel Fernandes
     [not found]                   ` <51D46598.6070005-l0cyMroinI0@public.gmane.org>
2013-07-03 18:12                     ` Mark Brown
2013-07-04  5:56                       ` Mike Looijmans
2013-07-04 10:49                         ` Mark Brown
2013-07-03 18:18                   ` [alsa-devel] " Joel Fernandes
2013-07-04  6:06                   ` Mike Looijmans
2013-07-04 10:53                     ` Mark Brown
     [not found]                     ` <51D510EA.1030809-Oq418RWZeHk@public.gmane.org>
2013-07-04 10:59                       ` [alsa-devel] " Sekhar Nori
2013-08-14  4:30         ` Joel Fernandes
2013-08-14  4:53           ` Joel Fernandes
2013-08-14 14:10             ` Mike Looijmans [this message]
2013-08-14 12:06           ` Mark Brown
2013-07-02  1:04   ` Joel Fernandes
2013-07-03  9:07     ` Lars-Peter Clausen

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=520B8FCB.2080608@topic.nl \
    --to=mike.looijmans@topic.nl \
    --cc=alsa-devel@alsa-project.org \
    --cc=joelf@ti.com \
    --cc=lars@metafoo.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.