[alsa-devel] [PATCH] ASoC: DaVinci: Added support for cpu clocking I2S
Raffaele Recalcati
lamiaposta71 at gmail.com
Wed Jun 30 10:52:30 CEST 2010
2010/6/28 Troy Kisky <troy.kisky at boundarydevices.com>
> Raffaele Recalcati wrote:
> > + if (dev->i2s_fast_clock) {
> > + clk_div = 256;
> can you have
> f = (freq / params->rate_num) * params->rate_den;
> > + do {
> > + framesize = (freq / (--clk_div)) /
> > + params->rate_num *
> > + params->rate_den;
> and
> framesize = f / (--clk_div);
> > + } while (((framesize < 33) || (framesize > 4095))
> &&
> > + (clk_div));
> > + clk_div--;
> looks like clk_div can go negative here, should the above while say
> (clk_div > 1)
>
> + } while (((framesize < 33) || (framesize > 4095)) &&
> + (clk_div));
only if clk_div not null stay inside the while.
> + clk_div--;
and here can at minumum be 0, not negative.
> > + srgr |= DAVINCI_MCBSP_SRGR_FPER(framesize - 1);
> > + } else {
> > + /* symmetric waveforms */
> > + clk_div = freq / (mcbsp_word_length * 16) /
> > + params->rate_num * params->rate_den;
> > + srgr |= DAVINCI_MCBSP_SRGR_FPER(mcbsp_word_length *
> > + 16 - 1);
> > + }
> > + clk_div &= 0xFF;
> > + srgr |= clk_div;
>
so, dividing for (CLKGDV + 1) it is ok.
Raffaele
More information about the Alsa-devel
mailing list