[alsa-devel] [PATCH] ASoC: wm8804: Allow fine-grained control of the PLL generation

Daniel Matuschek daniel at matuschek.net
Thu Jan 9 16:29:13 CET 2014


On 09.01.2014, at 15:27, Charles Keepax <ckeepax at opensource.wolfsonmicro.com> wrote:

> On Wed, Jan 08, 2014 at 10:36:53PM +0100, Daniel Matuschek wrote:
>> Signed-off-by: Daniel Matuschek <daniel at matuschek.net>
>> 
> 
> <snip>
> 
>> 			pll_div->freqmode = post_table[i].freqmode;
>> -			pll_div->mclkdiv = post_table[i].mclkdiv;
>> -			target *= post_table[i].div;
>> -			break;
>> +			if ((mclk_div == WM8804_MCLKDIV_DONTCARE) ||
>> +			    ((post_table[i].mclkdiv == 1) &&
>> +				(mclk_div == WM8804_MCLKDIV_1)) ||
>> +			    ((post_table[i].mclkdiv == 0) &&
>> +				(mclk_div == WM8804_MCLKDIV_0))) {
> 
> Would probably be nicer to update the post_table to use the new
> defines and directly compare.

Yes, this is an option.

> 
>> +				pll_div->mclkdiv = post_table[i].mclkdiv;
>> +				target *= post_table[i].div;
>> +				break;
>> +			}
>> 		}
>> 	}
>> 
>> @@ -388,7 +396,7 @@ static int wm8804_set_pll(struct snd_soc_dai *dai, int pll_id,
>> 		int ret;
>> 		struct pll_div pll_div;
>> 
>> -		ret = pll_factors(&pll_div, freq_out, freq_in);
>> +		ret = pll_factors(&pll_div, freq_out, freq_in, pll_id);
> 
> This does feel like a slight abuse of pll_id, it feels to me that
> using the set_clkdiv callback would be a little more natural from
> a user perspective.

Good idea, I will move it to set_clkdiv.

> 
>> 		if (ret)
>> 			return ret;
>> 
>> diff --git a/sound/soc/codecs/wm8804.h b/sound/soc/codecs/wm8804.h
>> index 8ec14f5..0365177 100644
>> --- a/sound/soc/codecs/wm8804.h
>> +++ b/sound/soc/codecs/wm8804.h
>> @@ -58,4 +58,11 @@
>> 
>> #define WM8804_CLKOUT_DIV			1
>> 
>> +#define WM8804_MCLKDIV_DONTCARE			0
>> +#define WM8804_MCLKDIV_0			1
>> +#define WM8804_MCLKDIV_1			2
>> +#define WM8804_PLL_MCLKDIV_DONTCARE		WM8804_MCLKDIV_DONTCARE
>> +#define WM8804_PLL_MCLKDIV_0			WM8804_MCLKDIV_0
>> +#define WM8804_PLL_MCLKDIV_1			WM8804_MCLKDIV_1
> 
> Do we really need two copies of these?

Not really ;-) I will remove the duplicates.



More information about the Alsa-devel mailing list