Subject: [alsa-devel] [RFC v2 PATCH 1/1] ASoC: soc-core: symmetry checking for each DAIs separately

From: [email-masked] (Timur Tabi)
Date: Thu, 1 Sep 2011 15:35:35 -0500

Lars-Peter Clausen wrote:
> Try to add a small delay between the two commands. e.g. 'aplay -r 8000 ... &
> sleep 1; arecrod -r 16000 ...'. And of course the DAIs need to be configured to
> be asynchronous, otherwise you'll of course catch the error in the fsl_ssi driver.

Ok, I'm an idiot.  I just noticed that I don't support different sample rates
for playback and capture in my driver, because the CS4270 doesn't support it.
The P1022DS uses the WM8776, which does support it, but I never updated the driver.

Another oddity is that I have this code:

/* Are the RX and the TX clocks locked? */
if (of_find_property(np, "fsl,ssi-asynchronous", NULL))
	ssi_private->asynchronous = 1;
else
	ssi_private->cpu_dai_drv.symmetric_rates = 1;

and later I do this:

if (!ssi_private->asynchronous) {
	snd_pcm_hw_constraint_minmax(substream->runtime,
		SNDRV_PCM_HW_PARAM_SAMPLE_BITS,
		first_runtime->sample_bits,
		first_runtime->sample_bits);

So it looks like I'm confusing sample rate locking with sample size locking.  Ugh.

Anyway, I'm not in any position at the moment to verify this patch.  I need to
get my driver working with asynchronous sample rates first.

-- 
Timur Tabi
Linux kernel developer at Freescale