ASoC: nau8825: fix bug in FLL parameter
authorJohn Hsu <KCHSU0@nuvoton.com>
Tue, 13 Sep 2016 03:56:03 +0000 (11:56 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 14 Sep 2016 15:14:37 +0000 (16:14 +0100)
In the FLL parameter calculation, the FVCO should choose the maximum one.
The patch is to fix the bug about the wrong FVCO chosen.

Signed-off-by: John Hsu <KCHSU0@nuvoton.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
sound/soc/codecs/nau8825.c

index 5c9707ac4bbff20e1240d9961ea28bcc8d5af82f..cc32699f8e298d96c92d437e02780a639026bcc2 100644 (file)
@@ -1912,7 +1912,7 @@ static int nau8825_calc_fll_param(unsigned int fll_in, unsigned int fs,
        /* Calculate the FLL 10-bit integer input and the FLL 16-bit fractional
         * input based on FDCO, FREF and FLL ratio.
         */
-       fvco = div_u64(fvco << 16, fref * fll_param->ratio);
+       fvco = div_u64(fvco_max << 16, fref * fll_param->ratio);
        fll_param->fll_int = (fvco >> 16) & 0x3FF;
        fll_param->fll_frac = fvco & 0xFFFF;
        return 0;