On Wed, Jun 30, 2010 at 03:47:56PM +0200, Raffaele Recalcati wrote:
+static int davinci_i2s_dai_set_clkdiv(struct snd_soc_dai *cpu_dai, + int div_id, int div) +{ + struct davinci_mcbsp_dev *dev = cpu_dai->private_data; + int srgr; + + dev->clk_div = div; + return 0; +}
As previously mentioned this should check the div_id argument.
+ switch (master) { + case SND_SOC_DAIFMT_CBS_CFS:
...
+ case SND_SOC_DAIFMT_CBM_CFS:
...
+ default: + /* Clock and frame sync given from external sources */
The two remaining options (_CBM_CFM and _CBS_CFM) are different, your description matches _CBM_CFM.
+ if (master == SND_SOC_DAIFMT_CBS_CFS || + master == SND_SOC_DAIFMT_CBS_CFM) {
Switch statement again.
+ if (master == SND_SOC_DAIFMT_CBS_CFS || + master == SND_SOC_DAIFMT_CBS_CFM) { + rcr |= DAVINCI_MCBSP_RCR_RFRLEN1(0); + xcr |= DAVINCI_MCBSP_XCR_XFRLEN1(0); + } else {
...and another. Please fix all these.