summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2022-11-08 22:56:25 +0100
committerBjorn Andersson <andersson@kernel.org>2022-12-01 17:26:37 -0600
commitd676d3a3717cf726d3affedbe5ba98fc4ccad7b3 (patch)
tree95ee9a434ab66151ea0a3397c55b2b46b57f5e8d
parent09be1a39e685d8c5edd471fd1cac9a8f8280d2de (diff)
downloadlwn-d676d3a3717cf726d3affedbe5ba98fc4ccad7b3.tar.gz
lwn-d676d3a3717cf726d3affedbe5ba98fc4ccad7b3.zip
clk: qcom: clk-krait: fix wrong div2 functions
Currently div2 value is applied to the wrong bits. This is caused by a bug in the code where the shift is done only for lpl, for anything else the mask is not shifted to the correct bits. Fix this by correctly shift if lpl is not supported. Fixes: 4d7dc77babfe ("clk: qcom: Add support for Krait clocks") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20221108215625.30186-1-ansuelsmth@gmail.com
-rw-r--r--drivers/clk/qcom/clk-krait.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/clk/qcom/clk-krait.c b/drivers/clk/qcom/clk-krait.c
index 45da736bd5f4..293a9dfa7151 100644
--- a/drivers/clk/qcom/clk-krait.c
+++ b/drivers/clk/qcom/clk-krait.c
@@ -114,6 +114,8 @@ static int krait_div2_set_rate(struct clk_hw *hw, unsigned long rate,
if (d->lpl)
mask = mask << (d->shift + LPL_SHIFT) | mask << d->shift;
+ else
+ mask <<= d->shift;
spin_lock_irqsave(&krait_clock_reg_lock, flags);
val = krait_get_l2_indirect_reg(d->offset);