From: Niklas Cassel <niklas.cassel@linaro.org> To: Andy Gross <agross@kernel.org>, Bjorn Andersson <bjorn.andersson@linaro.org> Cc: linux-arm-msm@vger.kernel.org, amit.kucheria@linaro.org, sboyd@kernel.org, Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>, Niklas Cassel <niklas.cassel@linaro.org>, Michael Turquette <mturquette@baylibre.com>, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 4/7] clk: qcom: hfpll: CLK_IGNORE_UNUSED Date: Mon, 25 Nov 2019 14:59:06 +0100 [thread overview] Message-ID: <20191125135910.679310-5-niklas.cassel@linaro.org> (raw) In-Reply-To: <20191125135910.679310-1-niklas.cassel@linaro.org> From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org> When COMMON_CLK_DISABLED_UNUSED is set, in an effort to save power and to keep the software model of the clock in line with reality, the framework transverses the clock tree and disables those clocks that were enabled by the firmware but have not been enabled by any device driver. If CPUFREQ is enabled, early during the system boot, it might attempt to change the CPU frequency ("set_rate"). If the HFPLL is selected as a provider, it will then change the rate for this clock. As boot continues, clk_disable_unused_subtree will run. Since it wont find a valid counter (enable_count) for a clock that is actually enabled it will attempt to disable it which will cause the CPU to stop. Notice that in this driver, calls to check whether the clock is enabled are routed via the is_enabled callback which queries the hardware. The following commit, rather than marking the clock critical and forcing the clock to be always enabled, addresses the above scenario making sure the clock is not disabled but it continues to rely on the firmware to enable the clock. Co-developed-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Niklas Cassel <niklas.cassel@linaro.org> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> --- Changes since v2: -None drivers/clk/qcom/hfpll.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/clk/qcom/hfpll.c b/drivers/clk/qcom/hfpll.c index e64c0fd82fe4..225c675f6779 100644 --- a/drivers/clk/qcom/hfpll.c +++ b/drivers/clk/qcom/hfpll.c @@ -56,6 +56,13 @@ static int qcom_hfpll_probe(struct platform_device *pdev) .parent_names = (const char *[]){ "xo" }, .num_parents = 1, .ops = &clk_ops_hfpll, + /* + * rather than marking the clock critical and forcing the clock + * to be always enabled, we make sure that the clock is not + * disabled: the firmware remains responsible of enabling this + * clock (for more info check the commit log) + */ + .flags = CLK_IGNORE_UNUSED, }; int ret; -- 2.23.0
next prev parent reply other threads:[~2019-11-25 13:59 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-25 13:59 [PATCH v3 0/7] Clock changes to support cpufreq on QCS404 Niklas Cassel 2019-11-25 13:59 ` [PATCH v3 2/7] clk: qcom: gcc: limit GPLL0_AO_OUT operating frequency Niklas Cassel 2019-12-19 6:24 ` Stephen Boyd 2019-11-25 13:59 ` [PATCH v3 3/7] clk: qcom: hfpll: register as clock provider Niklas Cassel 2019-12-19 6:24 ` Stephen Boyd 2019-11-25 13:59 ` Niklas Cassel [this message] 2019-12-19 6:25 ` [PATCH v3 4/7] clk: qcom: hfpll: CLK_IGNORE_UNUSED Stephen Boyd 2019-11-25 13:59 ` [PATCH v3 5/7] clk: qcom: hfpll: use clk_parent_data to specify the parent Niklas Cassel 2019-12-19 6:25 ` Stephen Boyd 2019-11-25 13:59 ` [PATCH v3 6/7] clk: qcom: apcs-msm8916: silently error out on EPROBE_DEFER Niklas Cassel 2019-12-19 6:25 ` Stephen Boyd 2019-11-25 13:59 ` [PATCH v3 7/7] clk: qcom: apcs-msm8916: use clk_parent_data to specify the parent Niklas Cassel 2019-12-19 6:23 ` Stephen Boyd 2019-12-20 17:22 ` Bjorn Andersson 2019-12-20 17:56 ` Niklas Cassel 2019-12-24 2:16 ` Stephen Boyd 2019-12-27 2:26 ` Bjorn Andersson 2019-12-30 18:04 ` Stephen Boyd 2020-01-03 7:47 ` Bjorn Andersson 2019-12-18 12:16 ` [PATCH v3 0/7] Clock changes to support cpufreq on QCS404 Niklas Cassel
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=20191125135910.679310-5-niklas.cassel@linaro.org \ --to=niklas.cassel@linaro.org \ --cc=agross@kernel.org \ --cc=amit.kucheria@linaro.org \ --cc=bjorn.andersson@linaro.org \ --cc=jorge.ramirez-ortiz@linaro.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mturquette@baylibre.com \ --cc=sboyd@kernel.org \ --subject='Re: [PATCH v3 4/7] clk: qcom: hfpll: CLK_IGNORE_UNUSED' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).