Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755219AbaAIO1w (ORCPT ); Thu, 9 Jan 2014 09:27:52 -0500 Received: from opensource.wolfsonmicro.com ([80.75.67.52]:54399 "EHLO opensource.wolfsonmicro.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752454AbaAIO1s (ORCPT ); Thu, 9 Jan 2014 09:27:48 -0500 Date: Thu, 9 Jan 2014 14:27:45 +0000 From: Charles Keepax To: Daniel Matuschek Cc: alsa-devel@alsa-project.org, Liam Girdwood , Dimitris.Papastamos@Wolfsonmicro.com, Mark Brown , Jaroslav Kysela , Takashi Iwai , Grant Likely , Rob Herring , patches@opensource.wolfsonmicro.com, linux-kernel@vger.kernel.org, devicetree-discuss@lists.ozlabs.org Subject: Re: [alsa-devel] [PATCH] ASoC: wm8804: Allow fine-grained control of the PLL generation Message-ID: <20140109142745.GB6110@opensource.wolfsonmicro.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.17+20080114 (2008-01-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 08, 2014 at 10:36:53PM +0100, Daniel Matuschek wrote: > Signed-off-by: Daniel Matuschek > > 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. > + 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. > 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? Thanks, Charles -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/