Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: qcom: gcc-qcs615: Update the SDCC clock to use shared_floor_ops

Fix "gcc_sdcc2_apps_clk_src: rcg didn't update its configuration" during
boot. This happens due to the floor_ops tries to update the rcg
configuration even if the clock is not enabled.
The shared_floor_ops ensures that the RCG is safely parked and the new
parent configuration is cached in the parked_cfg when the clock is off.

Ensure to use the ops for the other SDCC clock instances as well.

Fixes: 39d6dcf67fe9 ("clk: qcom: gcc: Add support for QCS615 GCC clocks")
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20251029-sdcc_rcg2_shared_ops-v3-1-ecf47d9601d1@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Taniya Das and committed by
Bjorn Andersson
0820c937 415aad75

+3 -3
+3 -3
drivers/clk/qcom/gcc-qcs615.c
··· 784 784 .name = "gcc_sdcc1_apps_clk_src", 785 785 .parent_data = gcc_parent_data_1, 786 786 .num_parents = ARRAY_SIZE(gcc_parent_data_1), 787 - .ops = &clk_rcg2_floor_ops, 787 + .ops = &clk_rcg2_shared_floor_ops, 788 788 }, 789 789 }; 790 790 ··· 806 806 .name = "gcc_sdcc1_ice_core_clk_src", 807 807 .parent_data = gcc_parent_data_0, 808 808 .num_parents = ARRAY_SIZE(gcc_parent_data_0), 809 - .ops = &clk_rcg2_floor_ops, 809 + .ops = &clk_rcg2_shared_floor_ops, 810 810 }, 811 811 }; 812 812 ··· 830 830 .name = "gcc_sdcc2_apps_clk_src", 831 831 .parent_data = gcc_parent_data_8, 832 832 .num_parents = ARRAY_SIZE(gcc_parent_data_8), 833 - .ops = &clk_rcg2_floor_ops, 833 + .ops = &clk_rcg2_shared_floor_ops, 834 834 }, 835 835 }; 836 836