linux/drivers/clk/qcom
Taniya Das 8b75a7c1e4 clk: qcom: gdsc: Set retain_ff before moving to HW CTRL
commit 25708f73ff upstream.

Enable the retain_ff_enable bit of GDSCR only if the GDSC is already ON.
Once the GDSCR moves to HW control, SW no longer can determine the state
of the GDSCR and setting the retain_ff bit could destroy all the register
contents we intended to save.
Therefore, move the retain_ff configuration before switching the GDSC to
HW trigger mode.

Cc: stable@vger.kernel.org
Fixes: 173722995c ("clk: qcom: gdsc: Add support to enable retention of GSDCR")
Signed-off-by: Taniya Das <quic_tdas@quicinc.com>
Reviewed-by: Imran Shaik <quic_imrashai@quicinc.com>
Tested-by: Imran Shaik <quic_imrashai@quicinc.com> # on QCS8300
Link: https://lore.kernel.org/r/20250214-gdsc_fixes-v1-1-73e56d68a80f@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-04-25 10:43:43 +02: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: a53pll/mux: Use unique clock name 2021-08-05 18:52:11 -07:00
apcs-sdx55.c clk: qcom: cleanup some dev_err_probe() calls 2021-06-01 16:34:02 -07:00
apss-ipq-pll.c clk: qcom: apss-ipq-pll: add support for IPQ8074 2022-09-26 21:40:11 -05:00
apss-ipq6018.c clk: qcom: apss-ipq6018: mark apcs_alias0_core_clk as critical 2022-09-26 21:40:10 -05:00
camcc-sc7180.c clk: qcom: camcc-sc7180: fix async resume during probe 2023-09-19 12:27:56 +02:00
camcc-sc7280.c clk: qcom: camcc-sc7280: Add parent dependency to all camera GDSCs 2024-08-03 08:49:17 +02:00
camcc-sdm845.c clk: qcom: camcc-sdm845: Fix topology around titan_top power domain 2022-06-30 18:34:54 -05: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: add camera clock controller driver for SM8450 SoC 2022-07-06 15:20:59 -05:00
clk-alpha-pll.c clk: qcom: clk-alpha-pll: fix alpha mode configuration 2025-02-21 13:49:41 +01:00
clk-alpha-pll.h clk: qcom: dispcc-sm8250: use special function for Lucid 5LPE PLL 2024-10-17 15:21:04 +02: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 helper functions for setting retain bits 2024-08-03 08:49:17 +02:00
clk-cpu-8996.c clk: qcom: cpu-8996: use constant mask for pmux 2022-09-26 11:12:45 -05:00
clk-hfpll.c clk: qcom: clk-hfpll: use poll_timeout macro 2022-06-27 15:41:37 -05: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: clk-krait: fix wrong div2 functions 2022-12-31 13:32:21 +01: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-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 rcg2 mux ops 2022-09-26 21:40:10 -05:00
clk-rcg2.c clk: qcom: Park shared RCGs upon registration 2024-08-03 08:49:21 +02: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: clk-rpm: convert to parent_data API 2022-07-18 19:13:27 -05:00
clk-rpmh.c clk: qcom: clk-rpmh: prevent integer overflow in recalc_rate 2025-02-21 13:49:41 +01:00
clk-smd-rpm.c clk: qcom: smd: Add SM6375 clocks 2022-09-27 12:07:17 -05: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: regmap-mux: fix parent clock lookup 2021-12-02 15:07:34 -08:00
common.h clk: qcom: regmap-mux: fix parent clock lookup 2021-12-02 15:07:34 -08:00
dispcc-qcm2290.c clk: qcom: dispcc-qcm2290: Fix GPLL0_OUT_DIV handling 2023-07-19 16:21:51 +02:00
dispcc-sc7180.c clk: qcom: dispcc: Update the transition delay for MDSS GDSC 2022-02-24 16:22:11 -08:00
dispcc-sc7280.c clk: qcom: dispcc: Update the transition delay for MDSS GDSC 2022-02-24 16:22:11 -08:00
dispcc-sdm845.c clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times 2024-03-26 18:20:49 -04:00
dispcc-sm6115.c clk: qcom: Add display clock controller driver for SM6115 2022-09-26 22:17:13 -05:00
dispcc-sm6125.c clk: qcom: Add display clock controller driver for SM6125 2022-03-09 08:53:30 -06:00
dispcc-sm6350.c clk: qcom: dispcc-sm6350: Add missing parent_map for a clock 2025-02-21 13:49:41 +01:00
dispcc-sm8250.c clk: qcom: dispcc-sm8250: use CLK_SET_RATE_PARENT for branch clocks 2024-10-17 15:21:58 +02:00
dispcc-sm8450.c clk: qcom: dispcc-sm8450: fix DisplayPort clocks 2024-06-12 11:03:29 +02:00
gcc-apq8084.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gcc-ipq806x.c clk: qcom: gcc-ipq806x: use parent_data for the last remaining entry 2022-12-31 13:32:08 +01:00
gcc-ipq4019.c clk: qcom: gcc-ipq4019: Remove unused variable 'ret' 2021-02-11 11:56:05 -08:00
gcc-ipq6018.c clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays 2024-04-03 15:19:29 +02:00
gcc-ipq8074.c clk: qcom: gcc-ipq8074: fix terminating of frequency table arrays 2024-04-03 15:19:29 +02:00
gcc-mdm9607.c clk: qcom: gcc-mdm9607: Fix cmd_rcgr offset for blsp1_uart6 rcg 2025-02-21 13:49:41 +01:00
gcc-mdm9615.c clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock 2023-09-19 12:27:57 +02:00
gcc-msm8660.c clk: qcom: gcc-msm8660: Drop hardcoded fixed board clocks 2022-10-14 13:39:09 -07:00
gcc-msm8909.c clk: qcom: gcc-msm8909: Increase delay for USB PHY reset 2022-09-13 22:07:25 -05:00
gcc-msm8916.c clk: qcom: gcc-msm8916: use parent_hws/_data instead of parent_names 2022-08-29 15:42:54 -05:00
gcc-msm8939.c clk: qcom: gcc-msm8939: use ARRAY_SIZE instead of specifying num_parents 2022-09-29 11:42:12 -05:00
gcc-msm8953.c clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock 2025-04-10 14:33:34 +02:00
gcc-msm8960.c clk: qcom: gcc-msm8960: use parent_hws/_data instead of parent_names 2022-09-13 21:58:34 -05:00
gcc-msm8974.c clk: qcom: gcc: Add support for Global Clock controller found on MSM8226 2021-06-27 17:00:50 -07:00
gcc-msm8976.c clk: qcom: gcc-msm8976: Add modem reset 2022-05-05 22:22:27 -05:00
gcc-msm8994.c clk: qcom: gcc-msm8994: use parent_hws for gpll0/4 2022-07-18 21:40:36 -05:00
gcc-msm8996.c clk: qcom: gcc-msm8996: Remove RPM bus clocks 2023-11-20 11:51:55 +01:00
gcc-msm8998.c clk: qcom: gcc-msm8998: add SSC-related clocks 2022-04-19 12:05:14 -05:00
gcc-qcm2290.c clk: qcom: gcc-qcm2290: Mark RCGs shared where applicable 2023-07-19 16:21:49 +02:00
gcc-qcs404.c clk: qcom: gcc-qcs404: fix initial rate of GPLL3 2024-12-14 19:54:13 +01:00
gcc-sc7180.c clk: qcom: gcc-sc7180: Fix up gcc_sdcc2_apps_clk_src 2023-09-13 09:42:45 +02:00
gcc-sc7280.c clk: qcom: gcc-sc7280: Update force mem core bit for UFS ICE clock 2024-08-03 08:49:17 +02:00
gcc-sc8180x.c clk: qcom: gcc-sc8180x: Add GPLL9 support 2024-10-17 15:22:08 +02:00
gcc-sc8280xp.c clk: qcom: gcc-sc8280xp: Add missing GDSCs 2023-09-13 09:42:45 +02:00
gcc-sdm660.c clk: qcom: gcc-sdm660: Use floor ops for SDCC1 clock 2022-08-29 15:55:57 -05:00
gcc-sdm845.c clk: qcom: gcc-sdm845: Do not use shared clk_ops for QUPs 2025-02-21 13:49:02 +01:00
gcc-sdx55.c clk: qcom: gcc-sdx55: use parent_hws where possible 2021-04-07 17:22:54 -07:00
gcc-sdx65.c clk: qcom: Add SDX65 GCC support 2021-12-16 13:17:22 -06:00
gcc-sm6115.c clk: qcom: gcc-sm6115: Mark RCGs shared where applicable 2023-05-11 23:03:34 +09:00
gcc-sm6125.c clk: qcom: sm6125-gcc: fix typos in comments 2022-03-15 15:48:38 -07:00
gcc-sm6350.c clk: qcom: gcc-sm6350: Add missing parent_map for two clocks 2025-02-21 13:49:41 +01:00
gcc-sm6375.c clk: qcom: gcc-sm6375: Ensure unsigned long type 2022-10-04 10:24:26 -07:00
gcc-sm8150.c clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src 2023-11-20 11:51:55 +01:00
gcc-sm8250.c clk: qcom: gcc-sm8250: Do not turn off PCIe GDSCs during gdsc_disable() 2024-10-17 15:21:59 +02:00
gcc-sm8350.c clk: qcom: gcc-sm8350: fix PCIe PIPE clocks handling 2023-05-11 23:03:35 +09:00
gcc-sm8450.c clk: qcom: gcc-sm8450: Do not turn off PCIe GDSCs during gdsc_disable() 2024-10-17 15:21:59 +02:00
gdsc.c clk: qcom: gdsc: Set retain_ff before moving to HW CTRL 2025-04-25 10:43:43 +02:00
gdsc.h clk: qcom: gdsc: Remove direct runtime PM calls 2022-11-04 11:53:49 -07:00
gpucc-msm8998.c clk: qcom: gpucc-msm8998: Remove unnecessary fallbacks to global clocks 2021-09-14 14:40:33 -07:00
gpucc-sc7180.c clk: qcom: gpucc-sc7180: drop unused enum entries 2021-04-07 17:22:51 -07:00
gpucc-sc7280.c clk: qcom: Update the force mem core bit for GPU clocks 2022-10-27 17:23:29 -07:00
gpucc-sc8280xp.c clk: qcom: Add SC8280XP GPU clock controller 2022-09-27 12:07:30 -05:00
gpucc-sdm660.c clk: qcom: gpucc-sdm660: use parent_hws instead of parent_data 2022-02-10 18:33:30 -06:00
gpucc-sdm845.c clk: qcom: gpucc-sdm845: get rid of the test clock 2021-04-07 17:22:53 -07:00
gpucc-sm6350.c clk: qcom: gpucc-sm6350: Fix clock source names 2023-09-13 09:42:45 +02:00
gpucc-sm8150.c clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config 2024-01-25 15:27:34 -08:00
gpucc-sm8250.c clk: qcom: gpucc-sm8250: use parent_hws where possible 2021-04-07 17:22:54 -07:00
gpucc-sm8350.c clk: qcom: gpucc-sm8350: Park RCG's clk source at XO during disable 2024-08-03 08:49:19 +02:00
hfpll.c clk: qcom: hfpll: use clk_parent_data to specify the parent 2019-12-18 22:07:52 -08:00
Kconfig clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM 2023-11-20 11:51:57 +01:00
kpss-xcc.c clk: qcom: kpss-xcc: convert to parent data API 2022-10-03 20:50:22 -07:00
krait-cc.c clk: qcom: clk-krait: add apq/ipq8064 errata workaround 2022-06-27 15:41:37 -05:00
lcc-ipq806x.c clk: qcom: lcc-ipq806x: use ARRAY_SIZE for num_parents 2022-09-26 11:18:56 -05:00
lcc-mdm9615.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
lcc-msm8960.c clk: qcom: lcc-msm8960: use parent_hws/_data instead of parent_names 2022-09-13 21:58:34 -05:00
lpass-gfm-sm8250.c clk: qcom: use devm_pm_runtime_enable and devm_pm_clk_create 2021-08-26 11:28:11 -07:00
lpassaudiocc-sc7280.c clk: qcom: lpassaudiocc-sc7280: Add required gdsc power domain clks in lpass_cc_sc7280_desc 2023-05-11 23:03:34 +09:00
lpasscc-sc7280.c clk: qcom: lpasscc-sc7280: fix missing resume during probe 2023-09-19 12:27:57 +02: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: lpass-sc7180: Fix pm_runtime usage 2022-12-31 13:32:21 +01:00
lpasscorecc-sc7280.c clk: qcom: lpass: Add support for resets & external mclk for SC7280 2022-09-13 09:48:30 -05:00
Makefile clk: qcom: Add global clock controller driver for SM6375 2022-09-27 22:25:57 -05:00
mmcc-apq8084.c clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays 2024-04-03 15:19:29 +02:00
mmcc-msm8960.c clk: qcom: mmcc-msm8960: use parent_hws/_data instead of parent_names 2022-09-13 21:58:35 -05:00
mmcc-msm8974.c clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays 2024-04-03 15:19:29 +02:00
mmcc-msm8994.c clk: qcom: mmcc-msm8994: Add MSM8992 support 2021-08-26 11:58:17 -07:00
mmcc-msm8996.c clk: qcom: mmcc-msm8996: use parent_hws/_data instead of parent_names 2022-06-25 15:18:15 -05:00
mmcc-msm8998.c clk: qcom: mmcc-msm8998: fix venus clock issue 2024-06-12 11:03:29 +02:00
mmcc-sdm660.c clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock 2025-04-10 14:33:35 +02:00
mss-sc7180.c clk: qcom: mss-sc7180: fix missing resume during probe 2023-09-19 12:27:57 +02:00
q6sstop-qcs404.c clk: qcom: q6sstop-qcs404: fix missing resume during probe 2023-09-19 12:27:57 +02:00
reset.c clk: qcom: reset: Ensure write completion on reset de/assertion 2024-03-26 18:20:47 -04:00
reset.h clk: qcom: reset: support resetting multiple bits 2023-07-19 16:21:51 +02:00
turingcc-qcs404.c clk: qcom: turingcc-qcs404: fix missing resume during probe 2023-09-19 12:27:56 +02:00
videocc-sc7180.c clk: qcom: videocc-sc7180: use parent_hws instead of parent_data 2022-02-10 18:33:31 -06:00
videocc-sc7280.c clk: qcom: Add video clock controller driver for SC7280 2021-07-20 13:46:32 -07:00
videocc-sdm845.c clk: qcom: videocc-sdm845: get rid of the test clock 2021-04-07 17:22:53 -07:00
videocc-sm8150.c clk: qcom: videocc-sm8150: Add missing PLL config property 2024-01-25 15:27:36 -08:00
videocc-sm8250.c clk: qcom: Drop mmcx gdsc supply for dispcc and videocc 2022-07-18 16:35:03 -05:00