kernel-fxtec-pro1x/drivers/clk/qcom
Bryan O'Donoghue 4dfedcd457 clk: qcom: msm8916: Fix the address location of pll->config_reg
[ Upstream commit f47ab3c2f5338828a67e89d5f688d2cef9605245 ]

During the process of debugging a processor derived from the msm8916 which
we found the new processor was not starting one of its PLLs.

After tracing the addresses and writes that downstream was doing and
comparing to upstream it became obvious that we were writing to a different
register location than downstream when trying to configure the PLL.

This error is also present in upstream msm8916.

As an example clk-pll.c::clk_pll_recalc_rate wants to write to
pll->config_reg updating the bit-field POST_DIV_RATIO. That bit-field is
defined in PLL_USER_CTL not in PLL_CONFIG_CTL. Taking the BIMC PLL as an
example

lm80-p0436-13_c_qc_snapdragon_410_processor_hrd.pdf

0x01823010 GCC_BIMC_PLL_USER_CTL
0x01823014 GCC_BIMC_PLL_CONFIG_CTL

This pattern is repeated for gpll0, gpll1, gpll2 and bimc_pll.

This error is likely not apparent since the bootloader will already have
initialized these PLLs.

This patch corrects the location of config_reg from PLL_CONFIG_CTL to
PLL_USER_CTL for all relevant PLLs on msm8916.

Fixes commit 3966fab8b6 ("clk: qcom: Add MSM8916 Global Clock Controller support")

Cc: Georgi Djakov <georgi.djakov@linaro.org>
Cc: Andy Gross <agross@kernel.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Link: https://lkml.kernel.org/r/20200329124116.4185447-1-bryan.odonoghue@linaro.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-25 15:32:47 +02:00
..
a53-pll.c clk: qcom: Add A53 PLL support 2018-01-02 10:00:24 -08:00
apcs-msm8916.c clk: qcom: msm8916: Fix return value check in qcom_apcs_msm8916_clk_probe() 2018-03-12 15:14:24 -07:00
clk-alpha-pll.c clk: qcom: Update SPDX headers for common files 2018-07-25 09:23:33 -07:00
clk-alpha-pll.h clk: qcom: Update SPDX headers for common files 2018-07-25 09:23:33 -07:00
clk-branch.c clk: qcom: Update SPDX headers for common files 2018-07-25 09:23:33 -07:00
clk-branch.h clk: qcom: Update SPDX headers for common files 2018-07-25 09:23:33 -07:00
clk-pll.c clk: qcom: Enable FSM mode for votable alpha PLLs 2016-11-01 18:39:17 -07:00
clk-pll.h clk: qcom: Add support for SR2 PLLs 2015-07-07 17:19:58 -07:00
clk-rcg.c clk: qcom: Fix pre-divider usage for pixel RCG 2016-02-29 12:57:06 -08:00
clk-rcg.h clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
clk-rcg2.c clk: qcom: rcg: Return failure for RCG update 2020-04-13 10:45:15 +02:00
clk-regmap-divider.c clk: qcom: use divider_ro_round_rate helper 2018-03-12 15:10:27 -07:00
clk-regmap-divider.h clk: qcom: add read-only divider operations 2017-12-21 16:03:19 -08:00
clk-regmap-mux-div.c clk: qcom: Add regmap mux-div clocks support 2018-01-02 10:00:24 -08:00
clk-regmap-mux-div.h clk: qcom: Add regmap mux-div clocks support 2018-01-02 10:00:24 -08:00
clk-regmap-mux.c clk: qcom: add parent map for regmap mux 2017-12-21 16:03:22 -08:00
clk-regmap-mux.h clk: qcom: add parent map for regmap mux 2017-12-21 16:03:22 -08:00
clk-regmap.c clk: qcom: Update SPDX headers for common files 2018-07-25 09:23:33 -07:00
clk-regmap.h clk: qcom: Update SPDX headers for common files 2018-07-25 09:23:33 -07:00
clk-rpm.c clk: qcom: rpmcc: Add support to XO buffered clocks 2018-03-19 14:40:26 -07:00
clk-rpmh.c clk: qcom: clk-rpmh: Add QCOM RPMh clock driver 2018-07-16 10:25:04 -07:00
clk-smd-rpm.c clk: qcom: smd-rpm: Migrate to devm_of_clk_add_hw_provider() 2018-03-16 15:52:39 -07:00
clk-spmi-pmic-div.c treewide: Use struct_size() for devm_kmalloc() and friends 2018-06-06 11:15:43 -07:00
common.c clk: qcom: Allow constant ratio freq tables for rcg 2020-01-04 19:12:51 +01:00
common.h clk: qcom: Update SPDX headers for common files 2018-07-25 09:23:33 -07:00
dispcc-sdm845.c clk: qcom: Add display clock controller driver for SDM845 2018-08-01 08:08:12 -07:00
gcc-apq8084.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
gcc-ipq806x.c clk: qcom: drop CLK_SET_RATE_GATE from sdc clocks 2018-06-19 10:02:28 -07:00
gcc-ipq4019.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
gcc-ipq8074.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
gcc-mdm9615.c clk: qcom: drop CLK_SET_RATE_GATE from sdc clocks 2018-06-19 10:02:28 -07:00
gcc-msm8660.c clk: qcom: drop CLK_SET_RATE_GATE from sdc clocks 2018-06-19 10:02:28 -07:00
gcc-msm8916.c clk: qcom: msm8916: Fix the address location of pll->config_reg 2020-06-25 15:32:47 +02:00
gcc-msm8960.c clk: qcom: drop CLK_SET_RATE_GATE from sdc clocks 2018-06-19 10:02:28 -07:00
gcc-msm8974.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
gcc-msm8994.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
gcc-msm8996.c clk: qcom: Fix -Wunused-const-variable 2020-01-27 14:50:58 +01:00
gcc-msm8998.c clk: qcom: Skip halt checks on gcc_pcie_0_pipe_clk for 8998 2020-01-27 14:50:38 +01:00
gcc-sdm845.c clk: qcom: gcc-sdm845: Add missing flag to votable GDSCs 2020-01-23 08:21:26 +01:00
gdsc.c Merge branch 'clk-qcom-sdm845' into clk-next 2018-06-04 12:34:51 -07:00
gdsc.h Merge branch 'clk-qcom-sdm845' into clk-next 2018-06-04 12:34:51 -07:00
Kconfig Merge branches 'clk-actions-s700', 'clk-exynos-unused', 'clk-qcom-dispcc-845', 'clk-scmi-round' and 'clk-cs2000-spdx' into clk-next 2018-08-14 23:00:15 -07:00
lcc-ipq806x.c clk: qcom: lcc-ipq806x: Fixup overriding val in regmap_read call 2016-11-01 17:44:09 -07:00
lcc-mdm9615.c clk: mdm9615: Add support for MDM9615 Clock Controllers 2016-08-15 15:51:21 -07:00
lcc-msm8960.c Revert "clk: qcom: Specify LE device endianness" 2016-02-12 14:24:24 -08:00
Makefile Merge branches 'clk-actions-s700', 'clk-exynos-unused', 'clk-qcom-dispcc-845', 'clk-scmi-round' and 'clk-cs2000-spdx' into clk-next 2018-08-14 23:00:15 -07:00
mmcc-apq8084.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
mmcc-msm8960.c clk: qcom: Remove CLK_IS_ROOT 2016-03-04 12:53:53 -08:00
mmcc-msm8974.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00
mmcc-msm8996.c The new and exciting feature this time around is in the clk core. 2018-08-15 21:41:21 -07:00
reset.c clk: qcom: Make reset_control_ops const 2016-03-29 16:30:26 -07:00
reset.h clk: qcom: Make reset_control_ops const 2016-03-29 16:30:26 -07:00
videocc-sdm845.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00