1
0
Fork 0
alistair23-linux/drivers/clk/qcom
Bryan O'Donoghue b543c35951 clk: qcom: msm8916: Fix the address location of pll->config_reg
[ Upstream commit f47ab3c2f5 ]

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-24 17:50:09 +02:00
..
Kconfig clk: qcom: msm8916: Don't build by default 2019-08-07 21:29:48 -07:00
Makefile clk: qcom: gcc: Add global clock controller driver for SM8150 2019-08-07 15:12:05 -07:00
a53-pll.c clk: qcom: Add A53 PLL support 2018-01-02 10:00:24 -08:00
apcs-msm8916.c clk: apcs-msm8916: simplify probe cleanup by using devm 2018-12-05 09:22:33 -08:00
camcc-sdm845.c clk: qcom: Add camera clock controller driver for SDM845 2018-08-30 18:27:06 -07:00
clk-alpha-pll.c clk: qcom: clk-alpha-pll: Add support for Trion PLLs 2019-08-07 15:12:05 -07:00
clk-alpha-pll.h clk: qcom: clk-alpha-pll: Add support for Trion PLLs 2019-08-07 15:12:05 -07:00
clk-branch.c clk: qcom: branch: Add AON clock ops 2019-04-11 13:34:21 -07:00
clk-branch.h clk: qcom: branch: Add AON clock ops 2019-04-11 13:34:21 -07:00
clk-hfpll.c clk: qcom: Add support for High-Frequency PLLs (HFPLLs) 2018-10-17 13:14:37 -07:00
clk-hfpll.h clk: qcom: Add support for High-Frequency PLLs (HFPLLs) 2018-10-17 13:14:37 -07:00
clk-krait.c clk: qcom: Add safe switch hook for krait mux clocks 2018-10-17 13:15:05 -07:00
clk-krait.h clk: qcom: Add safe switch hook for krait mux clocks 2018-10-17 13:15:05 -07:00
clk-pll.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-pll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-rcg.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-rcg.h clk: qcom: clk-rcg2: Introduce a cfg offset for RCGs 2019-02-21 14:18:12 -08:00
clk-rcg2.c clk: qcom: rcg2: Don't crash if our parent can't be found; return an error 2020-02-24 08:36:32 +01:00
clk-regmap-divider.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-regmap-divider.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02: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: Use the correct style for SPDX License Identifier 2019-05-01 13:01:13 -07:00
clk-regmap-mux.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-regmap-mux.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02: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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
clk-rpmh.c We have a small collection of core framework updates this time, mostly around 2019-09-20 15:45:07 -07:00
clk-smd-rpm.c clk: qcom: smd: Add missing bimc clock 2020-02-24 08:36:38 +01:00
clk-spmi-pmic-div.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
common.c clk: qcom: Allow constant ratio freq tables for rcg 2020-01-04 19:17:20 +01:00
common.h clk: qcom: define probe by index API as common API 2019-08-08 08:20:01 -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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-ipq806x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-ipq4019.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-ipq8074.c clk: qcom: gcc: Use floor ops for SDCC clocks 2019-09-09 04:39:12 -07:00
gcc-mdm9615.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-msm8660.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-msm8916.c clk: qcom: msm8916: Fix the address location of pll->config_reg 2020-06-24 17:50:09 +02:00
gcc-msm8960.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-msm8974.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-msm8994.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
gcc-msm8996.c This round of clk driver and framework updates is heavy on the driver update 2019-07-17 10:07:48 -07:00
gcc-msm8998.c clk: qcom: gcc: Use floor ops for SDCC clocks 2019-09-09 04:39:12 -07:00
gcc-qcs404.c clk: qcom: gcc-qcs404: Use floor ops for sdcc clks 2019-09-09 04:38:22 -07:00
gcc-sdm660.c clk: qcom: gcc: Use floor ops for SDCC clocks 2019-09-09 04:39:12 -07:00
gcc-sdm845.c clk: qcom: gcc-sdm845: Add missing flag to votable GDSCs 2020-01-23 08:22:27 +01:00
gcc-sm8150.c clk: qcom: gcc: Fix parent for gpll0_out_even 2020-06-03 08:21:23 +02:00
gdsc.c This round of clk driver and framework updates is heavy on the driver update 2019-07-17 10:07:48 -07:00
gdsc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
gpucc-sdm845.c clk: qcom: gpu_cc_gmu_clk_src has 5 parents, not 6 2018-11-28 13:24:45 -08:00
hfpll.c clk: qcom: Add HFPLL driver 2018-10-17 13:14:40 -07:00
kpss-xcc.c clk: qcom: Add KPSS ACC/GCC driver 2018-10-17 13:14:54 -07:00
krait-cc.c clk: qcom: Add safe switch hook for krait mux clocks 2018-10-17 13:15:05 -07:00
lcc-ipq806x.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lcc-mdm9615.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lcc-msm8960.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lpasscc-sdm845.c clk: qcom: define probe by index API as common API 2019-08-08 08:20:01 -07:00
mmcc-apq8084.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
mmcc-msm8960.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
mmcc-msm8974.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
mmcc-msm8996.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
reset.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
reset.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
turingcc-qcs404.c clk: qcom: fix QCS404 TuringCC regmap 2019-09-09 09:05:22 -07:00
videocc-sdm845.c clk: qcom: Move frequency table macro to common file 2018-07-06 16:45:51 -07:00