]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clk: qcom: camcc-sm8250: Use clk_rcg2_shared_ops for some RCGs
authorJordan Crouse <jorcrous@amazon.com>
Wed, 22 Jan 2025 22:26:12 +0000 (22:26 +0000)
committerBjorn Andersson <andersson@kernel.org>
Sat, 8 Feb 2025 05:19:55 +0000 (23:19 -0600)
Update some RCGs on the sm8250 camera clock controller to use
clk_rcg2_shared_ops. The shared_ops ensure the RCGs get parked
to the XO during clock disable to prevent the clocks from locking up
when the GDSC is enabled. These mirror similar fixes for other controllers
such as commit e5c359f70e4b ("clk: qcom: camcc: Update the clock ops for
the SC7180").

Signed-off-by: Jordan Crouse <jorcrous@amazon.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Link: https://lore.kernel.org/r/20250122222612.32351-1-jorcrous@amazon.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/camcc-sm8250.c

index 34d2f17520dccadefe2f32b98a2d38e3eed97ce7..450ddbebd35f2769efa603cc2f385f9ef5f1e91a 100644 (file)
@@ -411,7 +411,7 @@ static struct clk_rcg2 cam_cc_bps_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -433,7 +433,7 @@ static struct clk_rcg2 cam_cc_camnoc_axi_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -454,7 +454,7 @@ static struct clk_rcg2 cam_cc_cci_0_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -469,7 +469,7 @@ static struct clk_rcg2 cam_cc_cci_1_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -490,7 +490,7 @@ static struct clk_rcg2 cam_cc_cphy_rx_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -511,7 +511,7 @@ static struct clk_rcg2 cam_cc_csi0phytimer_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -526,7 +526,7 @@ static struct clk_rcg2 cam_cc_csi1phytimer_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -556,7 +556,7 @@ static struct clk_rcg2 cam_cc_csi3phytimer_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -571,7 +571,7 @@ static struct clk_rcg2 cam_cc_csi4phytimer_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -586,7 +586,7 @@ static struct clk_rcg2 cam_cc_csi5phytimer_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -611,7 +611,7 @@ static struct clk_rcg2 cam_cc_fast_ahb_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -634,7 +634,7 @@ static struct clk_rcg2 cam_cc_fd_core_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -649,7 +649,7 @@ static struct clk_rcg2 cam_cc_icp_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -673,7 +673,7 @@ static struct clk_rcg2 cam_cc_ife_0_clk_src = {
                .parent_data = cam_cc_parent_data_2,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_2),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -710,7 +710,7 @@ static struct clk_rcg2 cam_cc_ife_0_csid_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -734,7 +734,7 @@ static struct clk_rcg2 cam_cc_ife_1_clk_src = {
                .parent_data = cam_cc_parent_data_3,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_3),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -749,7 +749,7 @@ static struct clk_rcg2 cam_cc_ife_1_csid_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -771,7 +771,7 @@ static struct clk_rcg2 cam_cc_ife_lite_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -786,7 +786,7 @@ static struct clk_rcg2 cam_cc_ife_lite_csid_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -810,7 +810,7 @@ static struct clk_rcg2 cam_cc_ipe_0_clk_src = {
                .parent_data = cam_cc_parent_data_4,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_4),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -825,7 +825,7 @@ static struct clk_rcg2 cam_cc_jpeg_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -847,7 +847,7 @@ static struct clk_rcg2 cam_cc_mclk0_clk_src = {
                .parent_data = cam_cc_parent_data_1,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -862,7 +862,7 @@ static struct clk_rcg2 cam_cc_mclk1_clk_src = {
                .parent_data = cam_cc_parent_data_1,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -877,7 +877,7 @@ static struct clk_rcg2 cam_cc_mclk2_clk_src = {
                .parent_data = cam_cc_parent_data_1,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -892,7 +892,7 @@ static struct clk_rcg2 cam_cc_mclk3_clk_src = {
                .parent_data = cam_cc_parent_data_1,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -907,7 +907,7 @@ static struct clk_rcg2 cam_cc_mclk4_clk_src = {
                .parent_data = cam_cc_parent_data_1,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -922,7 +922,7 @@ static struct clk_rcg2 cam_cc_mclk5_clk_src = {
                .parent_data = cam_cc_parent_data_1,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_1),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };
 
@@ -993,7 +993,7 @@ static struct clk_rcg2 cam_cc_slow_ahb_clk_src = {
                .parent_data = cam_cc_parent_data_0,
                .num_parents = ARRAY_SIZE(cam_cc_parent_data_0),
                .flags = CLK_SET_RATE_PARENT,
-               .ops = &clk_rcg2_ops,
+               .ops = &clk_rcg2_shared_ops,
        },
 };