Commit 612fe81a authored by Paul Walmsley's avatar Paul Walmsley Committed by Tony Lindgren

omap2 clock: stop using clk->src_offset in omap2_clk_set_rate()

Stop using clk->rate_offset in omap2_clk_set_rate(); use what we get
from the clksel code instead.
Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 2f3ac766
......@@ -781,17 +781,14 @@ static u32 omap2_clksel_get_divisor(struct clk *clk)
static int omap2_clk_set_rate(struct clk *clk, unsigned long rate)
{
int ret = -EINVAL;
u32 div_off, field_mask, field_val, reg_val, validrate;
u32 new_div = 0;
u32 field_mask, field_val, reg_val, new_div = 0;
unsigned long validrate;
void __iomem *div_addr;
if (!(clk->flags & CONFIG_PARTICIPANT) && (clk->flags & RATE_CKCTL)) {
if (clk == &dpll_ck)
return omap2_reprogram_dpll(clk, rate);
/* Isolate control register */
div_off = clk->rate_offset;
validrate = omap2_clksel_round_rate(clk, rate, &new_div);
if (validrate != rate)
return ret;
......@@ -806,7 +803,7 @@ static int omap2_clk_set_rate(struct clk *clk, unsigned long rate)
reg_val = cm_read_reg(div_addr);
reg_val &= ~field_mask;
reg_val |= (field_val << div_off);
reg_val |= (field_val << mask_to_shift(field_mask));
cm_write_reg(reg_val, div_addr);
wmb();
clk->rate = clk->parent->rate / new_div;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment