diff options
-rw-r--r-- | arch/arm/common/sa1111.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index c98ebae1aeac..6d0f553d1a2a 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c @@ -1183,6 +1183,7 @@ static unsigned char opdiv_table[] = { 1, 4, 2, 8 }; static unsigned int __sa1111_pll_clock(struct sa1111 *sachip) { + unsigned long rate = clk_get_rate(sachip->clk); unsigned int skcdr, fbdiv, ipdiv, opdiv; skcdr = readl_relaxed(sachip->base + SA1111_SKCDR); @@ -1191,7 +1192,7 @@ static unsigned int __sa1111_pll_clock(struct sa1111 *sachip) ipdiv = ((skcdr & 0x0f80) >> 7) + 2; opdiv = opdiv_table[(skcdr & 0x3000) >> 12]; - return 3686400 * fbdiv / (ipdiv * opdiv); + return rate * fbdiv / (ipdiv * opdiv); } /** |