clk: qcom: clk-krait: fix wrong div2 functions

Message ID 20221108215625.30186-1-ansuelsmth@gmail.com
State New
Headers
Series clk: qcom: clk-krait: fix wrong div2 functions |

Commit Message

Christian Marangi Nov. 8, 2022, 9:56 p.m. UTC
  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>
---
 drivers/clk/qcom/clk-krait.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Bjorn Andersson Dec. 2, 2022, 8:58 p.m. UTC | #1
On Tue, 8 Nov 2022 22:56:25 +0100, Christian Marangi wrote:
> 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.
> 
> 
> [...]

Applied, thanks!

[1/1] clk: qcom: clk-krait: fix wrong div2 functions
      commit: d676d3a3717cf726d3affedbe5ba98fc4ccad7b3

Best regards,
  

Patch

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);