Linux-Clk Archive on lore.kernel.org
 help / color / Atom feed
From: Rajendra Nayak <rnayak@codeaurora.org>
To: Stephen Boyd <sboyd@kernel.org>,
	Michael Turquette <mturquette@baylibre.com>
Cc: linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org
Subject: Re: [PATCH] clk: qcom: Don't overwrite 'cfg' in clk_rcg2_dfs_populate_freq()
Date: Wed, 29 Jan 2020 08:51:19 +0530
Message-ID: <3b8acaa8-8bc4-cc7f-51d1-2a1b4ff5374a@codeaurora.org> (raw)
In-Reply-To: <20200128193329.45635-1-sboyd@kernel.org>


On 1/29/2020 1:03 AM, Stephen Boyd wrote:
> 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: cc4f6944d0e3 ("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>
> ---

Tested-by: Rajendra Nayak <rnayak@codeaurora.org>

>   drivers/clk/qcom/clk-rcg2.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/clk/qcom/clk-rcg2.c b/drivers/clk/qcom/clk-rcg2.c
> index da045b200def..973ecf4f6bc5 100644
> --- a/drivers/clk/qcom/clk-rcg2.c
> +++ b/drivers/clk/qcom/clk-rcg2.c
> @@ -953,7 +953,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);
> @@ -963,12 +963,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);
> 

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation

  reply index

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-28 19:33 Stephen Boyd
2020-01-29  3:21 ` Rajendra Nayak [this message]
2020-02-03 19:19 ` Stephen Boyd

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3b8acaa8-8bc4-cc7f-51d1-2a1b4ff5374a@codeaurora.org \
    --to=rnayak@codeaurora.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=sboyd@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-Clk Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-clk/0 linux-clk/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-clk linux-clk/ https://lore.kernel.org/linux-clk \
		linux-clk@vger.kernel.org
	public-inbox-index linux-clk

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-clk


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git