linux/drivers/clk/qcom
Md Sadre Alam 72ceafb587 clk: qcom: gcc-ipq9574: Add BRANCH_HALT_VOTED flag
The crypto_ahb and crypto_axi clks are hardware voteable.
This means that the halt bit isn't reliable because some
other voter in the system, e.g. TrustZone, could be keeping
the clk enabled when the kernel turns it off from clk_disable().
Make these clks use voting mode by changing the halt check to
BRANCH_HALT_VOTED and toggle the voting bit in the voting register
instead of directly controlling the branch by writing to the branch
register. This fixes stuck clk warnings seen on ipq9574 and saves
power by actually turning the clk off.

Also changes the CRYPTO_AHB_CLK_ENA & CRYPTO_AXI_CLK_ENA
offset to 0xb004 from 0x16014.

Cc: stable@vger.kernel.org
Fixes: f6b2bd9cb2 ("clk: qcom: gcc-ipq9574: Enable crypto clocks")
Signed-off-by: Md Sadre Alam <quic_mdalam@quicinc.com>
Link: https://lore.kernel.org/r/20240509105405.1262369-1-quic_mdalam@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-05-28 16:32:47 -05:00
..
a7-pll.c clk: qcom: a7-pll: Add missing MODULE_DEVICE_TABLE 2021-04-09 11:20:52 -07:00
a53-pll.c clk: qcom: a53-pll: convert to use parent_data rather than parent_names 2022-09-13 16:49:15 -05:00
apcs-msm8916.c clk: qcom: Convert to platform remove callback returning void 2023-03-13 05:41:06 -07:00
apcs-msm8996.c clk: qcom: apcs-msm8986: Include bitfield.h for FIELD_PREP 2023-02-22 17:38:56 -08:00
apcs-sdx55.c clk: qcom: Convert to platform remove callback returning void 2023-03-13 05:41:06 -07:00
apss-ipq6018.c clk: qcom: apss-ipq6018: add the GPLL0 clock also as clock provider 2023-10-21 12:59:13 -07:00
apss-ipq-pll.c clk: qcom: apss-ipq-pll: remove 'config_ctl_hi_val' from Stromer pll configs 2024-05-28 16:31:16 -05:00
camcc-sc7180.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
camcc-sc7280.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
camcc-sc8280xp.c clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays 2024-03-02 12:40:37 -06:00
camcc-sdm845.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
camcc-sm6350.c clk: qcom: camcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
camcc-sm8250.c clk: qcom: camcc-sm8250: Fix topology around titan_top power domain 2022-06-30 18:34:55 -05:00
camcc-sm8450.c clk: qcom: camcc-sm8450: switch to parent_hws 2023-01-10 15:58:59 -06:00
camcc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
camcc-x1e80100.c clk: qcom: camcc-x1e80100: Fix missing DT_IFACE enum in x1e80100 camcc 2024-03-02 12:40:51 -06:00
clk-alpha-pll.c clk: qcom: clk-alpha-pll: set ALPHA_EN bit for Stromer Plus PLLs 2024-05-28 16:31:13 -05:00
clk-alpha-pll.h clk: qcom: apss-ipq-pll: move Huayra register map to 'clk_alpha_pll_regs' 2024-04-27 13:13:18 -05:00
clk-branch.c clk: qcom: branch: Add mem ops support for branch2 clocks 2023-12-07 08:47:05 -08:00
clk-branch.h clk: qcom: branch: Add a helper for setting the enable bit 2024-02-14 11:59:07 -06:00
clk-cbf-8996.c clk: qcom: clk-cbf-8996: use HUAYRA_APSS register map for cbf_pll 2024-04-27 13:13:18 -05:00
clk-cpu-8996.c clk: Annotate struct clk_hw_onecell_data with __counted_by 2023-08-22 13:51:26 -07:00
clk-hfpll.c clk: qcom: clk-hfpll: Configure l_val in init when required 2023-09-13 12:07:58 -07:00
clk-hfpll.h clk: qcom: clk-hfpll: Configure l_val in init when required 2023-09-13 12:07:58 -07:00
clk-krait.c clk: qcom: clk-krait: switch to .determine_rate 2023-03-13 16:38:24 -07:00
clk-krait.h clk: qcom: clk-krait: add apq/ipq8064 errata workaround 2022-06-27 15:41:37 -05: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-rcg2.c clk: qcom: clk-rcg2: add support for rcg2 freq multi ops 2024-04-27 13:01:14 -05:00
clk-rcg.c clk: qcom: clk-rcg: add clk_rcg_floor_ops ops 2022-03-08 16:19:31 -06:00
clk-rcg.h clk: qcom: clk-rcg2: add support for rcg2 freq multi ops 2024-04-27 13:01:14 -05: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 Revert "clk: qcom: regmap-mux: add pipe clk implementation" 2022-05-23 12:26:13 -05:00
clk-regmap-mux.h Revert "clk: qcom: regmap-mux: add pipe clk implementation" 2022-05-23 12:26:13 -05:00
clk-regmap-phy-mux.c clk: qcom: regmap: add PHY clock source implementation 2022-06-25 21:36:07 -05:00
clk-regmap-phy-mux.h clk: qcom: regmap: add PHY clock source implementation 2022-06-25 21:36:07 -05:00
clk-regmap.c clk: qcom: clk-regmap: Provide missing description for 'devm_clk_register_regmap()'s dev param 2021-02-10 19:42:51 -08:00
clk-regmap.h clk: define to_clk_regmap() as inline function 2020-10-28 16:34:44 -07:00
clk-rpm.c clk: qcom: rpm: Remove an unused field in struct rpm_cc 2024-04-20 12:56:58 -05:00
clk-rpmh.c clk: qcom: rpmh: Add support for X1E80100 rpmh clocks 2023-12-07 20:21:13 -08:00
clk-smd-rpm.c clk: qcom: smd-rpm: Restore msm8976 num_clk 2024-04-02 22:49:07 -05:00
clk-spmi-pmic-div.c clk: qcom: clk-spmi-pmic-div: Annotate struct spmi_pmic_div_clk_cc with __counted_by 2023-08-22 13:51:54 -07:00
common.c clk: qcom: clk-rcg2: add support for rcg2 freq multi ops 2024-04-27 13:01:14 -05:00
common.h clk: qcom: clk-rcg2: add support for rcg2 freq multi ops 2024-04-27 13:01:14 -05:00
dispcc-qcm2290.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sc7180.c clk: qcom: dispcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
dispcc-sc7280.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sc8280xp.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sdm845.c clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times 2024-02-16 11:43:05 -06:00
dispcc-sm6115.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sm6125.c clk: qcom: dispcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
dispcc-sm6350.c clk: qcom: dispcc-sm6350: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-sm6375.c clk: qcom: dispcc-*: switch to module_platform_driver 2024-02-07 12:14:47 -06:00
dispcc-sm8250.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
dispcc-sm8450.c clk: qcom: dispcc-sm8450: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-sm8550.c clk: qcom: dispcc-sm8550: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-sm8650.c clk: qcom: dispcc-sm8650: fix DisplayPort clocks 2024-04-27 13:14:56 -05:00
dispcc-x1e80100.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
ecpricc-qdu1000.c clk: qcom: Add ECPRICC driver support for QDU1000 and QRU1000 2023-12-07 08:47:05 -08:00
gcc-apq8084.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-ipq806x.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-ipq4019.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-ipq5018.c clk: qcom: gcc-ipq5018: fix register offset for GCC_UBI0_AXI_ARES reset 2024-03-03 20:00:49 -08:00
gcc-ipq5332.c clk: qcom: ipq5332: drop the CLK_SET_RATE_PARENT flag from GPLL clocks 2023-10-21 12:59:13 -07:00
gcc-ipq6018.c clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays 2024-03-02 12:40:20 -06:00
gcc-ipq8074.c clk: qcom: gcc-ipq8074: rework nss_port5/6 clock to multiple conf 2024-04-27 13:01:14 -05:00
gcc-ipq9574.c clk: qcom: gcc-ipq9574: Add BRANCH_HALT_VOTED flag 2024-05-28 16:32:47 -05:00
gcc-mdm9607.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-mdm9615.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-msm8660.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8909.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8916.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8917.c clk: qcom: fix module autoloading 2024-04-10 22:02:15 -05:00
gcc-msm8939.c clk: qcom: gcc-msm8939: Add missing CSI2 related clocks 2023-12-07 08:04:41 -08:00
gcc-msm8953.c clk: qcom: fix module autoloading 2024-04-10 22:02:15 -05:00
gcc-msm8960.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
gcc-msm8974.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
gcc-msm8976.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8994.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-msm8996.c clk: qcom: gcc-msm8996: Remove RPM bus clocks 2023-09-19 20:02:31 -07:00
gcc-msm8998.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-qcm2290.c clk: qcom: gcc-qcm2290: Mark RCGs shared where applicable 2023-05-24 21:47:16 -07:00
gcc-qcs404.c clk: qcom: gcc-qcs404: fix duplicate initializer warning 2023-01-30 08:41:06 -06:00
gcc-qdu1000.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gcc-sa8775p.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc7180.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc7280.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc8180x.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sc8280xp.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sdm660.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-sdm845.c clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd 2024-01-23 09:38:32 -06:00
gcc-sdx55.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sdx65.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sdx75.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm4450.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm6115.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-sm6125.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gcc-sm6350.c clk: qcom: gcc-sm6350: Fix gpll6* & gpll7 parents 2024-05-28 16:30:23 -05:00
gcc-sm6375.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm7150.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8150.c clk: qcom: gcc-sm8150: De-register gcc_cpuss_ahb_clk_src 2024-04-21 12:10:56 -05:00
gcc-sm8250.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8350.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8450.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-sm8650.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gcc-x1e80100.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gdsc.c clk: qcom: gdsc: treat optional supplies as optional 2024-04-02 22:47:07 -05:00
gdsc.h clk: qcom: gdsc: Remove direct runtime PM calls 2022-11-04 11:53:49 -07:00
gpucc-msm8998.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
gpucc-sa8775p.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sc7180.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sc7280.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gpucc-sc8280xp.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gpucc-sdm660.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sdm845.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm6115.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm6125.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm6350.c clk: qcom: gpucc-sm6350: Fix clock source names 2023-07-09 20:53:09 -07:00
gpucc-sm6375.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm8150.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm8250.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm8350.c clk: qcom: gpucc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
gpucc-sm8450.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
gpucc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
gpucc-sm8650.c clk: qcom: gpucc-sm8650: Add test_ctl parameters to PLL config 2023-12-19 14:12:41 -06:00
gpucc-x1e80100.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
hfpll.c clk: qcom: hfpll: Add QCS404-specific compatible 2024-04-23 14:14:47 -05:00
Kconfig clk: qcom: Fix SM_GPUCC_8650 dependencies 2024-05-07 21:10:17 -05:00
kpss-xcc.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
krait-cc.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
lcc-ipq806x.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
lcc-msm8960.c Merge branch 'clk-qcom' into clk-next 2023-08-30 14:39:58 -07:00
lpass-gfm-sm8250.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
lpassaudiocc-sc7280.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
lpasscc-sc7280.c clk: qcom: lpasscc-sc7280: fix missing resume during probe 2023-07-18 07:58:50 -07:00
lpasscc-sc8280xp.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
lpasscc-sdm845.c clk: qcom: lpasscc-sdm845: explicitly include clk-provider.h 2021-12-20 23:14:50 -06:00
lpasscorecc-sc7180.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
lpasscorecc-sc7280.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
Makefile clk: qcom: drop the SC7180 Modem subsystem clock driver 2024-02-16 11:17:16 -06:00
mmcc-apq8084.c clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays 2024-03-02 12:40:42 -06:00
mmcc-msm8960.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
mmcc-msm8974.c clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays 2024-03-02 12:40:46 -06:00
mmcc-msm8994.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
mmcc-msm8996.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
mmcc-msm8998.c clk: qcom: mmcc-msm8998: fix venus clock issue 2024-04-27 13:15:30 -05:00
mmcc-sdm660.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
q6sstop-qcs404.c clk: qcom: q6sstop-qcs404: fix missing resume during probe 2023-07-18 07:58:50 -07:00
reset.c clk: qcom: reset: Ensure write completion on reset de/assertion 2024-02-07 12:14:19 -06:00
reset.h clk: qcom: reset: Increase max reset delay 2024-02-06 14:53:26 -06:00
tcsrcc-sm8550.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
tcsrcc-sm8650.c clk: qcom: add the SM8650 TCSR Clock Controller driver 2023-12-07 08:11:29 -08:00
tcsrcc-x1e80100.c clk: qcom: Add TCSR clock driver for x1e80100 2024-02-06 11:13:19 -06:00
turingcc-qcs404.c clk: qcom: turingcc-qcs404: fix missing resume during probe 2023-07-18 07:58:50 -07:00
videocc-sc7180.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sc7280.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sdm845.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sm8150.c clk: qcom: videocc-*: switch to module_platform_driver 2024-02-07 12:14:48 -06:00
videocc-sm8250.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
videocc-sm8350.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
videocc-sm8450.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00
videocc-sm8550.c clk: qcom: Use qcom_branch_set_clk_en() 2024-02-14 11:59:07 -06:00