]> git.baikalelectronics.ru Git - kernel.git/commit
clk: qcom: smd-rpm: Add .recalc_rate hook for clk_smd_rpm_branch_ops
authorShawn Guo <shawn.guo@linaro.org>
Fri, 17 Sep 2021 03:04:32 +0000 (11:04 +0800)
committerStephen Boyd <sboyd@kernel.org>
Wed, 13 Oct 2021 22:20:22 +0000 (15:20 -0700)
commitfaa618528d4a948192b03bbedcfa7fe4d4cfa34a
tree75ca350fd1b05d74e31429ecb66dd3d87de9c97f
parente7fea09c62d13a39bdcf96e9a2d8ff1621290e84
clk: qcom: smd-rpm: Add .recalc_rate hook for clk_smd_rpm_branch_ops

As there is a `rate` field in clk_smd_rpm, clk_smd_rpm_recalc_rate() can
be used by branch clocks to report rate as well, rather than assuming
the rate is always same as parent clock.  This assumption doesn't hold
on platforms like QCM2290, where xo_board is 38.4MHz while bi_tcxo is
19.2MHz.

To get this work, XO buffered clocks need the following updates.

- Assign a correct rate rather than the fake one which is being used to
  generate binary value for clk_smd_rpm_req interface.

- Explicitly handle the clk_smd_rpm_req interface value for XO buffered
  clocks (.rpm_res_type being QCOM_SMD_RPM_CLK_BUF_A).

Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Link: https://lore.kernel.org/r/20210917030434.19859-2-shawn.guo@linaro.org
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
[sboyd@kernel.org: Do cpu_to_le32() again to keep sparse happy]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/qcom/clk-smd-rpm.c