clk: imx: fix integer overflow in AV PLL round rate
authorEmil Lundmark <emil@limesaudio.com>
Wed, 12 Oct 2016 10:31:40 +0000 (12:31 +0200)
committerStephen Boyd <sboyd@codeaurora.org>
Wed, 2 Nov 2016 00:07:54 +0000 (17:07 -0700)
commit5c2f117a22e46a4afee6ddee29b653a7a2a6b41f
treea752154c1f8464c9beb7cfc07333bfa4d52bbcff
parent06b113e9f28f8657715919087a3f54b77d1634ed
clk: imx: fix integer overflow in AV PLL round rate

Since 'parent_rate * mfn' may overflow 32 bits, the result should be
stored using 64 bits.

The problem was discovered when trying to set the rate of the audio PLL
(pll4_post_div) on an i.MX6Q. The desired rate was 196.608 MHz, but
the actual rate returned was 192.000570 MHz. The round rate function should
have been able to return 196.608 MHz, i.e., the desired rate.

Fixes: ba7f4f557eb6 ("clk: imx: correct AV PLL rate formula")
Cc: Anson Huang <b20788@freescale.com>
Signed-off-by: Emil Lundmark <emil@limesaudio.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
drivers/clk/imx/clk-pllv3.c