summaryrefslogtreecommitdiffstats
path: root/drivers/clk
diff options
context:
space:
mode:
authorLoc Ho <lho@apm.com>2015-11-19 12:20:30 -0700
committerLuis Henriques <luis.henriques@canonical.com>2016-02-02 19:23:10 +0000
commitba65b79dc8cbf331ba485df5a4986a2196555411 (patch)
treeb66faaa868d76faedebc2c7c0711c5f1c3523a2d /drivers/clk
parent8f9f34668f268593cda52cac80959dfebc6d78cb (diff)
downloadlinux-stable-ba65b79dc8cbf331ba485df5a4986a2196555411.tar.gz
linux-stable-ba65b79dc8cbf331ba485df5a4986a2196555411.tar.bz2
linux-stable-ba65b79dc8cbf331ba485df5a4986a2196555411.zip
clk: xgene: Fix divider with non-zero shift value
commit 1382ea631ddddb634850a3795527db0feeff5aaf upstream. The X-Gene clock driver missed the divider shift operation when set the divider value. Signed-off-by: Loc Ho <lho@apm.com> Fixes: 308964caeebc ("clk: Add APM X-Gene SoC clock driver") Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/clk-xgene.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/clk/clk-xgene.c b/drivers/clk/clk-xgene.c
index dd8a62d8f11f..1ec5fe8494a1 100644
--- a/drivers/clk/clk-xgene.c
+++ b/drivers/clk/clk-xgene.c
@@ -351,7 +351,8 @@ static int xgene_clk_set_rate(struct clk_hw *hw, unsigned long rate,
/* Set new divider */
data = xgene_clk_read(pclk->param.divider_reg +
pclk->param.reg_divider_offset);
- data &= ~((1 << pclk->param.reg_divider_width) - 1);
+ data &= ~((1 << pclk->param.reg_divider_width) - 1)
+ << pclk->param.reg_divider_shift;
data |= divider;
xgene_clk_write(data, pclk->param.divider_reg +
pclk->param.reg_divider_offset);