mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-21 10:01:00 +00:00
clk: qcom: Don't overwrite 'cfg' in clk_rcg2_dfs_populate_freq()
[ Upstream commit21e157c62e
] The DFS frequency table logic overwrites 'cfg' while detecting the parent clk and then later on in clk_rcg2_dfs_populate_freq() we use that same variable to figure out the mode of the clk, either MND or not. Add a new variable to hold the parent clk bit so that 'cfg' is left untouched for use later. This fixes problems in detecting the supported frequencies for any clks in DFS mode. Fixes:cc4f6944d0
("clk: qcom: Add support for RCG to register for DFS") Reported-by: Rajendra Nayak <rnayak@codeaurora.org> Signed-off-by: Stephen Boyd <sboyd@kernel.org> Link: https://lkml.kernel.org/r/20200128193329.45635-1-sboyd@kernel.org Tested-by: Rajendra Nayak <rnayak@codeaurora.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
8ba34cdadb
commit
8d122cd0d2
1 changed files with 4 additions and 4 deletions
|
@ -952,7 +952,7 @@ static void clk_rcg2_dfs_populate_freq(struct clk_hw *hw, unsigned int l,
|
|||
struct clk_rcg2 *rcg = to_clk_rcg2(hw);
|
||||
struct clk_hw *p;
|
||||
unsigned long prate = 0;
|
||||
u32 val, mask, cfg, mode;
|
||||
u32 val, mask, cfg, mode, src;
|
||||
int i, num_parents;
|
||||
|
||||
regmap_read(rcg->clkr.regmap, rcg->cmd_rcgr + SE_PERF_DFSR(l), &cfg);
|
||||
|
@ -962,12 +962,12 @@ static void clk_rcg2_dfs_populate_freq(struct clk_hw *hw, unsigned int l,
|
|||
if (cfg & mask)
|
||||
f->pre_div = cfg & mask;
|
||||
|
||||
cfg &= CFG_SRC_SEL_MASK;
|
||||
cfg >>= CFG_SRC_SEL_SHIFT;
|
||||
src = cfg & CFG_SRC_SEL_MASK;
|
||||
src >>= CFG_SRC_SEL_SHIFT;
|
||||
|
||||
num_parents = clk_hw_get_num_parents(hw);
|
||||
for (i = 0; i < num_parents; i++) {
|
||||
if (cfg == rcg->parent_map[i].cfg) {
|
||||
if (src == rcg->parent_map[i].cfg) {
|
||||
f->src = rcg->parent_map[i].src;
|
||||
p = clk_hw_get_parent_by_index(&rcg->clkr.hw, i);
|
||||
prate = clk_hw_get_rate(p);
|
||||
|
|
Loading…
Reference in a new issue