Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: alsa-devel@alsa-project.org, "Liam Girdwood" <lrg@ti.com>,
	"Lambrecht Jürgen" <J.Lambrecht@TELEVIC.com>
Subject: Re: [PATCH] ASoC: Fix check for symmetric rate enforcement
Date: Wed, 17 Aug 2011 09:11:23 +0200	[thread overview]
Message-ID: <20110817071123.GF31404@pengutronix.de> (raw)
In-Reply-To: <20110817065014.GB12344@opensource.wolfsonmicro.com>

On Wed, Aug 17, 2011 at 03:50:16PM +0900, Mark Brown wrote:
> On Wed, Aug 17, 2011 at 08:27:53AM +0200, Sascha Hauer wrote:
> 
> > The ASoC core tries to not enforce symmetric rates when
> > two streams open simultaneously. It does so by checking
> > rtd->rate being zero. This works exactly once after booting
> > because it is not set to zero again when the streams close.
> > Fix this by clearing rtd->rate when no active stream is left.
> 
> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> 
> Applied, thanks.  Though I suspect that in practice this may actually be
> less robust due to the general raciness of the way we configure and
> start the streams - I seem to recall the code works this way semi
> deliberately so that we always have a rate selected; most systems only
> ever use one rate on symmetric audio interfaces.

I looked into it yesterday and I found no way to fix this properly :(

The original problem I had was subsequent calls of:

arecord -r 16000 | aplay
arecord -r 8000 | aplay

The first call after booting worked, but then strange things happen.
rtd->rate is still 16000 when arecord opens. Then aplay opens and
the ASoC core forces 16000Hz because of rtd->rate still being 16000.
arecord can change the rate to 8000Hz because the minmax constraint
was not present at open time. aplay then switches the rate back
to 16000Hz which results in an inconsistent state. I think this
is only one variant of the game.

With my patch applied we get the "Not enforcing symmetric rates.."
warning each time with arecord | aplay which is not nice either.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

  parent reply	other threads:[~2011-08-17  7:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-17  6:27 [PATCH] ASoC: Fix check for symmetric rate enforcement Sascha Hauer
2011-08-17  6:50 ` Mark Brown
2011-08-17  6:56   ` Mark Brown
2011-08-17  7:20     ` Sascha Hauer
2011-08-17  7:23       ` Mark Brown
2011-08-17  7:11   ` Sascha Hauer [this message]
2011-08-17  7:21     ` Mark Brown

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=20110817071123.GF31404@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=J.Lambrecht@TELEVIC.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=lrg@ti.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox