From: Jerome Brunet <jbrunet@baylibre.com>
To: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>
Cc: Jerome Brunet <jbrunet@baylibre.com>,
linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 3/8] clk: fix determine rate error with pass-through clock
Date: Wed, 14 Feb 2018 14:43:35 +0100 [thread overview]
Message-ID: <20180214134340.17242-4-jbrunet@baylibre.com> (raw)
In-Reply-To: <20180214134340.17242-1-jbrunet@baylibre.com>
If we try to determine the rate of a pass-through clock (a clock which
does not implement .round_rate() nor .determine_rate()),
clk_core_round_rate_nolock() will directly forward the call to the
parent clock. In the particular case where the pass-through actually
does not have a parent, clk_core_round_rate_nolock() will directly
return 0 with the requested rate still set to the initial request
structure. This is interpreted as if the rate could be exactly achieved
while it actually cannot be adjusted.
This become a real problem when this particular pass-through clock is
the parent of a mux with the flag CLK_SET_RATE_PARENT set. The
pass-through clock will always report an exact match, get picked and
finally error when the rate is actually getting set.
This is fixed by setting the rate inside the req to 0 when core is NULL
in clk_core_round_rate_nolock() (same as in __clk_determine_rate() when
hw is NULL)
Fixes: 0f6cc2b8e94d ("clk: rework calls to round and determine rate callbacks")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
drivers/clk/clk.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index 0f686a9dac3e..a4b4e4d6df5e 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -1125,8 +1125,10 @@ static int clk_core_round_rate_nolock(struct clk_core *core,
{
lockdep_assert_held(&prepare_lock);
- if (!core)
+ if (!core) {
+ req->rate = 0;
return 0;
+ }
clk_core_init_rate_req(core, req);
--
2.14.3
next prev parent reply other threads:[~2018-02-14 13:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-14 13:43 [PATCH v2 0/8] clk: helpers and fixes Jerome Brunet
2018-02-14 13:43 ` [PATCH v2 1/8] clk: divider: export clk_div_mask() helper Jerome Brunet
2018-02-14 13:43 ` [PATCH v2 2/8] clk: mux: add helper function for index/value translation Jerome Brunet
2018-02-14 13:43 ` Jerome Brunet [this message]
2018-02-14 13:43 ` [PATCH v2 4/8] clk: migrate the count of orphaned clocks at init Jerome Brunet
[not found] ` <CGME20180215125542eucas1p218f5797e7254c28d9a6437d579220e52@eucas1p2.samsung.com>
2018-02-15 12:55 ` Marek Szyprowski
[not found] ` <CGME20180305090647eucas1p14c01d34dd2eef3eaab8752bf90591c4c@eucas1p1.samsung.com>
2018-03-05 9:06 ` Marek Szyprowski
2018-02-15 21:01 ` Heiko Stübner
2018-03-12 5:54 ` Michael Turquette
2018-02-14 13:43 ` [PATCH v2 5/8] clk: call the clock init() callback before any other ops callback Jerome Brunet
2018-02-14 13:43 ` [PATCH v2 6/8] clk: fix mux clock documentation Jerome Brunet
2018-02-14 13:43 ` [PATCH v2 7/8] clk: divider: read-only divider can propagate rate change Jerome Brunet
2018-02-19 17:30 ` [v2,7/8] " David Lechner
2018-02-14 13:43 ` [PATCH v2 8/8] clk: qcom: use divider_ro_round_rate helper Jerome Brunet
2018-03-11 22:31 ` [PATCH v2 0/8] clk: helpers and fixes Michael Turquette
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=20180214134340.17242-4-jbrunet@baylibre.com \
--to=jbrunet@baylibre.com \
--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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®