[alsa-devel] [RFC] [PATCH] ASoC: OMAP: full duplex mode fix

Janusz Krzysztofik jkrzyszt at tis.icnet.pl
Mon Aug 3 16:00:32 CEST 2009

Jarkko Nikula wrote:
> On Mon, 3 Aug 2009 03:32:04 +0200
> Janusz Krzysztofik <jkrzyszt at tis.icnet.pl> wrote:
>> This patch tries to correct the problem of full duplex mode not working
>> over a single McBSP based CPU DAI.
>> Created against linux-2.6.31-rc5.
>> Tested on Amstrad Delta.
> Do you have some specific test case how to trigger this? I haven't
> seen this on 2420 or 34xx (e.g. with 'arecord -d 1 -f dat |aplay') but
> I have no doubt that this can happen on 1510. At least this doesn't
> cause any harm on Beagle so I'm fine with the fix.

I made more testing on my OMAP1510 and found out that I could get your 
example usage working without my patch, but only if started like this:

	arecord -D hw:0,0 -f S16_LE|aplay -D hw:0,0

If I start the same with "-D hw:0,0" omitted from aplay, it doesn't work 
any longer, waiting forever. It definitelly doesn't work if I start 
capture and playback one after another, no matter which one goes first 
(record while playing or play while recording). So it looks like 
starting both streams simultaneously can do the job, but a short delay 
breaks it.

With my patch, it seems to work fine for me in all cases.

Jarkko, have you ever tried it on your OMAP2/3 with parallel playback 
and capture started one after another, not simultaneously?

Arun, can your snd-soc-osk9512 work on OMAP1610 in full duplex mode 
without any limitations?

If the problem appears to be OMAP1510 or AMS_DELTA specific, I can add a 
check for a machine or cpu type to avoid braking unaffected machines.


More information about the Alsa-devel mailing list