[alsa-devel] [PATCH v2] ASoC: da7210: Add support for PLL and SRM
Ashish Chavan
ashish.chavan at kpitcummins.com
Mon Jan 23 13:09:21 CET 2012
On Mon, 2012-01-23 at 11:21 +0000, Mark Brown wrote:
> On Mon, Jan 23, 2012 at 03:37:21PM +0530, Ashish Chavan wrote:
>
> > +/* PLL out frequency values */
> > +#define FOUT_2822400 2822400
> > +#define FOUT_3072000 3072000
>
> It's difficult to see what these defines are adding.
Yes, true. Anyways, converting if-else in to switch will make them
unnecessary.
>
> > +static const u32 da7210_fout_2822400_div[][DIV_CNT + 1] = {
> > + { 12000000, 0xE8, 0x6C, 0x2, }, /* MCLK=12Mhz Fs=44.1Khz */
>
> You're still using magic numbers to find the dividers, and clearly the
> same rate comment should apply to the whole table not specific entries.
OK, will define a new constant for column count and update comment.
>
> > + /* In PLL master mode, use master mode PLL dividers */
> > + if (fout == FOUT_2822400) {
>
>
> > + } else if (fout == FOUT_3072000) {
>
> This looks like a switch statement and...
Yes, will make it a switch instead of if-else.
>
> > + for (row_idx = 0; row_idx < FREF_CNT; row_idx++) {
>
> ARRAY_SIZE()
>
> > + if (fref == da7210_fout_3072000_div[row_idx]
> > + [FREF_IDX]) {
> > + pll_div1 =
> > + da7210_fout_3072000_div[row_idx]
> > + [DIV1_IDX];
>
> ...this code is shared between both branches (as well as the SRM case)
> and should be factored out between them.
>
We are picking values from three different tables in three cases. Even
if we factor out this code, we will need a switch or if-else to identify
correct table. As we are already checking those conditions, I put the
code there. Can you please elaborate a bit, in case if I misunderstood
your point?
More information about the Alsa-devel
mailing list