All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Luuk van Dijk <lvd@mndmttr.nl>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: full/half duplex support
Date: Fri, 19 Nov 2004 13:13:26 +0100	[thread overview]
Message-ID: <s5hd5yaavfd.wl@alsa2.suse.de> (raw)
In-Reply-To: <1100801204.490.4.camel@wonder>

At 18 Nov 2004 19:06:45 +0100,
Luuk van Dijk wrote:
> 
> On Thu, 2004-11-18 at 14:17, Takashi Iwai wrote:
> > At Mon, 15 Nov 2004 17:03:21 +0100,
> > Luuk van Dijk wrote:
> > > 
> > Sorry, the situation is not clear for me.
> > Do you mean substream as the ALSA term?
> 
> yes. 
> 
> > So, you have two or more substreams assigned to a single PCM device,
> > and the DMAs are free-running when the substreams are unused?
> 
> yes, one capture and one playback substream, both of 2,4,6 or 8
> channels.  when one of the two is not used the dma is free running and I
> disable its irq's.  the problem is: they have to be started and stopped
> simultaneously and cannot be paused.
> 
> i think the problem would be solved if the mid layer would just accept
> the current pointer, and adjust its communication to userspace based on
> that instead of trying to force the dma to sync with its idea of what it
> should be.  but I could be talking out of my *ss here, since I'm
> relatively new to alsa.  (this is my first alsa driver :-)

Hmm, I don't understand your proposal here.

AFAIUC, the problem is that the trigger callback is called twice, for
playback and capture, on the full-duplex mode.  Basically ALSA assumes
that the playback and the capture streams are accessible
independently, so no such restriction is implemented (yet).

If my understanding is right -- I'd recommend to add a code in the
trigger callback just to check whether another stream has been already
triggered, then simply ignore the second trigger call.
Also, it'd be better to provide the sync start option so that the
full-duplex app triggers only once.


Takashi


-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8

  reply	other threads:[~2004-11-19 12:13 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-15 16:03 full/half duplex support Luuk van Dijk
2004-11-18 13:17 ` Takashi Iwai
2004-11-18 18:06   ` Luuk van Dijk
2004-11-19 12:13     ` Takashi Iwai [this message]
2004-11-19 20:29       ` Luuk van Dijk
2004-11-22 11:35         ` Takashi Iwai

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=s5hd5yaavfd.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=lvd@mndmttr.nl \
    /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.