diff mbox series

ASoC: wm8962: fix lambda value

Message ID 1576065442-19763-1-git-send-email-shengjiu.wang@nxp.com
State Accepted
Commit 556672d75ff486e0b6786056da624131679e0576
Headers show
Series ASoC: wm8962: fix lambda value | expand

Commit Message

Shengjiu Wang Dec. 11, 2019, 11:57 a.m. UTC
According to user manual, it is required that FLL_LAMBDA > 0
in all cases (Integer and Franctional modes).

Fixes: 9a76f1ff6e29 ("ASoC: Add initial WM8962 CODEC driver")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>

---
 sound/soc/codecs/wm8962.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.21.0

Comments

Mark Brown Dec. 12, 2019, 4:53 p.m. UTC | #1
On Thu, Dec 12, 2019 at 04:48:35PM +0000, Charles Keepax wrote:
> On Wed, Dec 11, 2019 at 07:57:22PM +0800, Shengjiu Wang wrote:

> > According to user manual, it is required that FLL_LAMBDA > 0

> > in all cases (Integer and Franctional modes).


> How well tested is this change, and is it addressing an issue you

> have observed? I agree this does better fit the datasheet just a

> little nervous as its an older part that has seen a lot of usage.


I've got a feeling that requirement might've been added in later
versions of the datasheet...
Shengjiu Wang Dec. 13, 2019, 3:09 a.m. UTC | #2
Hi

On Fri, Dec 13, 2019 at 12:54 AM Mark Brown <broonie@kernel.org> wrote:
>

> On Thu, Dec 12, 2019 at 04:48:35PM +0000, Charles Keepax wrote:

> > On Wed, Dec 11, 2019 at 07:57:22PM +0800, Shengjiu Wang wrote:

> > > According to user manual, it is required that FLL_LAMBDA > 0

> > > in all cases (Integer and Franctional modes).

>

> > How well tested is this change, and is it addressing an issue you

> > have observed? I agree this does better fit the datasheet just a

> > little nervous as its an older part that has seen a lot of usage.

>

> I've got a feeling that requirement might've been added in later

> versions of the datasheet...


We encounter an issue that when Integer mode, the lambda=theta=0,
the output sound is slower than expected. After change lambda=1
the issue is gone.

Best regards
Wang Shengjiu
Charles Keepax Dec. 13, 2019, 10:56 a.m. UTC | #3
On Fri, Dec 13, 2019 at 11:09:09AM +0800, Shengjiu Wang wrote:
> Hi

> 

> On Fri, Dec 13, 2019 at 12:54 AM Mark Brown <broonie@kernel.org> wrote:

> >

> > On Thu, Dec 12, 2019 at 04:48:35PM +0000, Charles Keepax wrote:

> > > On Wed, Dec 11, 2019 at 07:57:22PM +0800, Shengjiu Wang wrote:

> > > > According to user manual, it is required that FLL_LAMBDA > 0

> > > > in all cases (Integer and Franctional modes).

> >

> > > How well tested is this change, and is it addressing an issue you

> > > have observed? I agree this does better fit the datasheet just a

> > > little nervous as its an older part that has seen a lot of usage.

> >

> > I've got a feeling that requirement might've been added in later

> > versions of the datasheet...

> 

> We encounter an issue that when Integer mode, the lambda=theta=0,

> the output sound is slower than expected. After change lambda=1

> the issue is gone.

> 


Cool alright if there is a real issue here, then we should be
getting it fixed.

Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>


Thanks,
Charles
Fabio Estevam Dec. 13, 2019, 12:05 p.m. UTC | #4
Hi Shengjiu,

On Fri, Dec 13, 2019 at 12:10 AM Shengjiu Wang <shengjiu.wang@gmail.com> wrote:

> We encounter an issue that when Integer mode, the lambda=theta=0,

> the output sound is slower than expected. After change lambda=1

> the issue is gone.


This is important information and it would be nice to have it included
in the commit log.

Thanks
diff mbox series

Patch

diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 3e5c69fbc33a..d9d59f45833f 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -2788,7 +2788,7 @@  static int fll_factors(struct _fll_div *fll_div, unsigned int Fref,
 
 	if (target % Fref == 0) {
 		fll_div->theta = 0;
-		fll_div->lambda = 0;
+		fll_div->lambda = 1;
 	} else {
 		gcd_fll = gcd(target, fratio * Fref);
 
@@ -2858,7 +2858,7 @@  static int wm8962_set_fll(struct snd_soc_component *component, int fll_id, int s
 		return -EINVAL;
 	}
 
-	if (fll_div.theta || fll_div.lambda)
+	if (fll_div.theta)
 		fll1 |= WM8962_FLL_FRAC;
 
 	/* Stop the FLL while we reconfigure */