[alsa-devel] [PATCH 4/7] ASoC: Fix Zylonite voice interface stereo configurations

Daniel Mack daniel at caiaq.de
Wed Feb 25 17:06:17 CET 2009


On Wed, Feb 25, 2009 at 10:48:19AM +0000, Mark Brown wrote:
> We always run in the first timeslot of one.

I'm currently fiddling around with these bits in order to find a
suitable configuration where the codec is master, so this is
interesting. As the whole frame in I2S is 64 bits long and one FIFO
entry has 32 bits of audio data - how can you only deal with one
timeslot and still playback stereo?


> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
>  sound/soc/pxa/zylonite.c |    5 ++---
>  1 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/soc/pxa/zylonite.c b/sound/soc/pxa/zylonite.c
> index ec2fb76..0140a25 100644
> --- a/sound/soc/pxa/zylonite.c
> +++ b/sound/soc/pxa/zylonite.c
> @@ -127,9 +127,8 @@ static int zylonite_voice_hw_params(struct snd_pcm_substream *substream,
>  	if (ret < 0)
>  		return ret;
>  
> -	ret = snd_soc_dai_set_tdm_slot(cpu_dai,
> -				       params_channels(params),
> -				       params_channels(params));
> +	/* We're not really in network mode but the emulation wants this. */
> +	ret = snd_soc_dai_set_tdm_slot(cpu_dai, 1, 1);

As you set SND_SOC_DAIFMT_I2S, the MOD bit in SSCR0 is set which means
you are actually running in network mode, right?

This register really appears mazy to me - sorry if these are obvious
things I missed.

Daniel



More information about the Alsa-devel mailing list