| From 760934ec2366900a91a957e456744d67e1735c44 Mon Sep 17 00:00:00 2001 |
| From: Shengjiu Wang <shengjiu.wang@nxp.com> |
| Date: Wed, 11 Dec 2019 19:57:22 +0800 |
| Subject: [PATCH] ASoC: wm8962: fix lambda value |
| |
| commit 556672d75ff486e0b6786056da624131679e0576 upstream. |
| |
| 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> |
| Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> |
| Link: https://lore.kernel.org/r/1576065442-19763-1-git-send-email-shengjiu.wang@nxp.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| 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 */ |
| -- |
| 2.7.4 |
| |