[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