OSDN Git Service

clk: qcom: gcc-msm8916: use ARRAY_SIZE instead of specifying num_parents
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Mon, 4 Jul 2022 17:24:49 +0000 (20:24 +0300)
committerBjorn Andersson <andersson@kernel.org>
Mon, 29 Aug 2022 20:42:53 +0000 (15:42 -0500)
Use ARRAY_SIZE() instead of manually specifying num_parents. This makes
adding/removing entries to/from parent_data easy and errorproof.

This conversion fixes an issue present since the first version of this
driver. For the gp1_clk_src, gp2_clk_src and gp3_clk_src it was
impossible to select sleep_clk as a prent of the clock, since
num_parents was limited to 3 rather than 4. Switching to use num_parents
automatically makes sleep_clk available for selection.

Fixes: 3966fab8b6ab ("clk: qcom: Add MSM8916 Global Clock Controller support")
Cc: Georgi Djakov <djakov@kernel.org>
Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Acked-by: Georgi Djakov <djakov@kernel.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220704172453.838303-4-dmitry.baryshkov@linaro.org
drivers/clk/qcom/gcc-msm8916.c

index 9a46794..265df21 100644 (file)
@@ -371,7 +371,7 @@ static struct clk_rcg2 pcnoc_bfdcd_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "pcnoc_bfdcd_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -383,7 +383,7 @@ static struct clk_rcg2 system_noc_bfdcd_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "system_noc_bfdcd_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -403,7 +403,7 @@ static struct clk_rcg2 camss_ahb_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "camss_ahb_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -424,7 +424,7 @@ static struct clk_rcg2 apss_ahb_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "apss_ahb_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -443,7 +443,7 @@ static struct clk_rcg2 csi0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi0_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -456,7 +456,7 @@ static struct clk_rcg2 csi1_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi1_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -484,7 +484,7 @@ static struct clk_rcg2 gfx3d_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gfx3d_clk_src",
                .parent_names = gcc_xo_gpll0a_gpll1_gpll2a,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_gpll1_gpll2a),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -511,7 +511,7 @@ static struct clk_rcg2 vfe0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "vfe0_clk_src",
                .parent_names = gcc_xo_gpll0_gpll2,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll2),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -530,7 +530,7 @@ static struct clk_rcg2 blsp1_qup1_i2c_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup1_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -559,7 +559,7 @@ static struct clk_rcg2 blsp1_qup1_spi_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup1_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -572,7 +572,7 @@ static struct clk_rcg2 blsp1_qup2_i2c_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup2_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -586,7 +586,7 @@ static struct clk_rcg2 blsp1_qup2_spi_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup2_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -599,7 +599,7 @@ static struct clk_rcg2 blsp1_qup3_i2c_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup3_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -613,7 +613,7 @@ static struct clk_rcg2 blsp1_qup3_spi_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup3_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -626,7 +626,7 @@ static struct clk_rcg2 blsp1_qup4_i2c_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup4_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -640,7 +640,7 @@ static struct clk_rcg2 blsp1_qup4_spi_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup4_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -653,7 +653,7 @@ static struct clk_rcg2 blsp1_qup5_i2c_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup5_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -667,7 +667,7 @@ static struct clk_rcg2 blsp1_qup5_spi_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup5_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -680,7 +680,7 @@ static struct clk_rcg2 blsp1_qup6_i2c_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup6_i2c_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -694,7 +694,7 @@ static struct clk_rcg2 blsp1_qup6_spi_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_qup6_spi_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -727,7 +727,7 @@ static struct clk_rcg2 blsp1_uart1_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_uart1_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -741,7 +741,7 @@ static struct clk_rcg2 blsp1_uart2_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "blsp1_uart2_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -760,7 +760,7 @@ static struct clk_rcg2 cci_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "cci_clk_src",
                .parent_names = gcc_xo_gpll0a,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -793,7 +793,7 @@ static struct clk_rcg2 camss_gp0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "camss_gp0_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -807,7 +807,7 @@ static struct clk_rcg2 camss_gp1_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "camss_gp1_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -827,7 +827,7 @@ static struct clk_rcg2 jpeg0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "jpeg0_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -848,7 +848,7 @@ static struct clk_rcg2 mclk0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "mclk0_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -862,7 +862,7 @@ static struct clk_rcg2 mclk1_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "mclk1_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -881,7 +881,7 @@ static struct clk_rcg2 csi0phytimer_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi0phytimer_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -894,7 +894,7 @@ static struct clk_rcg2 csi1phytimer_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "csi1phytimer_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -914,7 +914,7 @@ static struct clk_rcg2 cpp_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "cpp_clk_src",
                .parent_names = gcc_xo_gpll0_gpll2,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll2),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -935,7 +935,7 @@ static struct clk_rcg2 crypto_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "crypto_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -976,7 +976,7 @@ static struct clk_rcg2 gp1_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gp1_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -990,7 +990,7 @@ static struct clk_rcg2 gp2_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gp2_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1004,7 +1004,7 @@ static struct clk_rcg2 gp3_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "gp3_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1a_sleep,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1a_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1016,7 +1016,7 @@ static struct clk_rcg2 byte0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "byte0_clk_src",
                .parent_names = gcc_xo_gpll0a_dsibyte,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_dsibyte),
                .ops = &clk_byte2_ops,
                .flags = CLK_SET_RATE_PARENT,
        },
@@ -1035,7 +1035,7 @@ static struct clk_rcg2 esc0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "esc0_clk_src",
                .parent_names = gcc_xo_dsibyte,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_dsibyte),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1060,7 +1060,7 @@ static struct clk_rcg2 mdp_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "mdp_clk_src",
                .parent_names = gcc_xo_gpll0_dsiphy,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_dsiphy),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1073,7 +1073,7 @@ static struct clk_rcg2 pclk0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "pclk0_clk_src",
                .parent_names = gcc_xo_gpll0a_dsiphy,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_dsiphy),
                .ops = &clk_pixel_ops,
                .flags = CLK_SET_RATE_PARENT,
        },
@@ -1092,7 +1092,7 @@ static struct clk_rcg2 vsync_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "vsync_clk_src",
                .parent_names = gcc_xo_gpll0a,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1110,7 +1110,7 @@ static struct clk_rcg2 pdm2_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "pdm2_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1135,7 +1135,7 @@ static struct clk_rcg2 sdcc1_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "sdcc1_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_floor_ops,
        },
 };
@@ -1160,7 +1160,7 @@ static struct clk_rcg2 sdcc2_apps_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "sdcc2_apps_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_floor_ops,
        },
 };
@@ -1180,7 +1180,7 @@ static struct clk_rcg2 apss_tcu_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "apss_tcu_clk_src",
                .parent_names = gcc_xo_gpll0a_gpll1_gpll2,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0a_gpll1_gpll2),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1203,7 +1203,7 @@ static struct clk_rcg2 bimc_gpu_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "bimc_gpu_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .flags = CLK_GET_RATE_NOCACHE,
                .ops = &clk_rcg2_ops,
        },
@@ -1222,7 +1222,7 @@ static struct clk_rcg2 usb_hs_system_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "usb_hs_system_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1248,7 +1248,7 @@ static struct clk_rcg2 ultaudio_ahbfabric_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_ahbfabric_clk_src",
                .parent_names = gcc_xo_gpll0_gpll1_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll1_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1327,7 +1327,7 @@ static struct clk_rcg2 ultaudio_lpaif_pri_i2s_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_lpaif_pri_i2s_clk_src",
                .parent_names = gcc_xo_gpll1_epi2s_emclk_sleep,
-               .num_parents = 5,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_epi2s_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1358,7 +1358,7 @@ static struct clk_rcg2 ultaudio_lpaif_sec_i2s_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_lpaif_sec_i2s_clk_src",
                .parent_names = gcc_xo_gpll1_esi2s_emclk_sleep,
-               .num_parents = 5,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_esi2s_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1389,7 +1389,7 @@ static struct clk_rcg2 ultaudio_lpaif_aux_i2s_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_lpaif_aux_i2s_clk_src",
                .parent_names = gcc_xo_gpll1_esi2s_emclk_sleep,
-               .num_parents = 5,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_esi2s_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1424,7 +1424,7 @@ static struct clk_rcg2 ultaudio_xo_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "ultaudio_xo_clk_src",
                .parent_names = gcc_xo_sleep,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1480,7 +1480,7 @@ static struct clk_rcg2 codec_digcodec_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "codec_digcodec_clk_src",
                .parent_names = gcc_xo_gpll1_emclk_sleep,
-               .num_parents = 4,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll1_emclk_sleep),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -1550,7 +1550,7 @@ static struct clk_rcg2 vcodec0_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "vcodec0_clk_src",
                .parent_names = gcc_xo_gpll0,
-               .num_parents = 2,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
                .ops = &clk_rcg2_ops,
        },
 };
@@ -2806,7 +2806,7 @@ static struct clk_rcg2 bimc_ddr_clk_src = {
        .clkr.hw.init = &(struct clk_init_data){
                .name = "bimc_ddr_clk_src",
                .parent_names = gcc_xo_gpll0_bimc,
-               .num_parents = 3,
+               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_bimc),
                .ops = &clk_rcg2_ops,
                .flags = CLK_GET_RATE_NOCACHE,
        },