On Sunday, January 27, 2013 3:58:47 AM, Mark Brown wrote:
On Sat, Jan 26, 2013 at 03:17:01PM +0100, Benoît Thébaudeau wrote:
On Saturday, January 26, 2013 9:55:14 AM, Mark Brown wrote: I've only tested with I²S (imx-ssi). But for all the available DAI modes, the data sheet gives the encoding for both stereo channels (from p. 21), and nowhere it says that mono is an option for DAI:
I2S isn't really relevant here, it's not possible to clock I2S as a mono interface.
I will retest with DSP modes if you prefer.
Yes, please.
I have now tested all the DAI formats compatible with both imx-ssi and tlv320aic3x, i.e.: - I2S | NB_NF | CBM_CFM, - DSP_A | IB_NF | CBM_CFM, - DSP_B | IB_NF | CBM_CFM, - LEFT_J | NB_NF | CBM_CFM.
In all cases, stereo works just fine.
As to mono, setting .channels_min to 2 also always works fine (as expected, but not interesting here).
For mono with .channels_min = 1 (i.e. without this patch), I have tried with:
1) snd_soc_dai_set_tdm_slot(cpu_dai, 0xffffffc, 0xffffffc, 2, 0); -> all DAI formats: wrong sample rate for L/R, playing twice too fast
2) snd_soc_dai_set_tdm_slot(cpu_dai, 0xffffffe, 0xffffffe, 1, 0); -> all DAI formats: nothing on R, wrong sample rate for L, playing twice too fast, plus loud noise superimposed for LEFT_J
So, I don't see how to avoid this patch.
I will send a reworded update.
Best regards, Benoît